我有一个带有子菜单的应用程序,每个子菜单都有唯一的快捷方式。到目前为止,此子菜单是静态的,但通常需要在菜单中添加新位置并指定新的快捷方式。该应用程序有一个单元Clientdata,其中包含一个TActionManager,它包含按钮,菜单以及我提到的子菜单所需的操作。
所以我希望这个子菜单在运行时可以变换。所有地方都保存在数据库中。我认为子菜单应该仍然在动作管理器中有动作。
除此之外,所有操作都有一个快捷方式编辑器,因此每个用户都可以拥有自己的个人快捷方式。这些快捷方式保存在个人文件目录的文本文件中。
有3个地方应该改变。
我已经开始实施,但我不确定我是否在正确的轨道上。在数据模块中编辑场所列表时,ActionManager中的数据同步非常重要。我不确定如何在运行时添加,编辑ActionManager中的删除操作。我只在设计时完成了这个。
欢迎提出其他意见和可能的改进!
此致
答案 0 :(得分:3)
在运行时添加或删除操作有点倒退。您创建一个新的TContainedAction,然后将其ActionList属性设置为您的列表。要从列表中删除它,请设置ActionList:= nil ,或者.Free动作。
一切都是从行动而不是列表中完成的。您可以使用列表的Actions属性从列表中获取操作,或者如果您使用的是支持 for..in 循环的Delphi版本,则可以枚举列表。
您可以通过检查actnlist.pas中的来源获取更多信息。它不是那么大而且很有成就感; D2009版只有1162行。