3

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

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

4

1 回答 1

5

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

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

如果您从 派生自定义操作TCustomAction,则在您的演员表中使用它。

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

于 2012-10-06T16:30:54.027 回答