如何从TActionManager获取所有TAction?

时间:2012-10-06 16:19:20

标签: delphi delphi-xe taction tactionmanager

我的应用程序中有一个TActionManager,其中定义了所有操作。我需要获得所有行动的清单;目前,使用其Actions属性,我可以获取操作的“路径”(GetNamePath),但我也想获取其标题。

是否可以从动作管理器获取所有动作?

1 个答案:

答案 0 :(得分:4)

Actions[]属性返回TContainedAction,它是一个低级基类。您需要将其转换为适当的派生类。例如,如果您的操作管理器包含TAction个实例,那么您可以执行此操作:

for i := 0 to ActionManager1.ActionCount-1 do begin
  Writeln((ActionManager1.Actions[i] as TAction).Caption);
end;

如果您要从TCustomAction派生自定义操作,请在演员阵容中使用该操作。

显然,您可能希望使用is来检查操作的实际运行时类型,并避免运行时转换错误。