当前位置 : 主页 > 编程语言 > delphi >

如何在Delphi 2009中创建最近使用的文件列表?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个TActionManager和一个TActionMainMenuBar,我知道如何将每个MRU文件的TActionClientItem添加到主菜单栏.但是,我是否必须为列表中的每个MRU文件创建单独的操作?或者有没有办法只创建一个动
我有一个TActionManager和一个TActionMainMenuBar,我知道如何将每个MRU文件的TActionClientItem添加到主菜单栏.但是,我是否必须为列表中的每个MRU文件创建单独的操作?或者有没有办法只创建一个动作,并根据单击的MRU文件以某种方式将标记或其他内容传递给操作的OnExecute事件?

Delphi的帮助说:“有关MRU列表,示例代码和查找列表中操作的方法的更多信息,请参阅联机帮助中的FindItemByAction和FindItemByCaption.”但我找不到那些有用的主题,当然也没有示例代码.我真的想避免使用第三方组件来完成这项工作.

无论如何,每个菜单项都有一个单独的TAction,以便它们可以具有不同的Caption值.但是您不必拥有单独的OnExecute事件处理程序.事件处理程序将在其Sender参数中接收对该操作的引用.使用sender的Tag属性来引用保存文件名的列表. (不要使用Caption属性来发现要打开的文件;这会限制您做一些好事,比如添加加速器或缩短笨拙的路径.)

这就是文档假设您也要做的事情. FindItemByAction返回给定操作附加到的第一个项目.如果您将单个操作附加到所有MRU菜单项,则您将无法使用该功能告诉您选择了哪个菜单.另一方面,菜单项不会保存比相关动作更多的信息,所以我认为没有理由去寻找菜单项.只需直接使用操作中的信息即可.

网友评论