我的应用程序中有一个TActionManager,其中定义了所有操作。我需要获得它的所有动作的列表;目前,使用它的Actions属性,我可以获得动作的“路径”(GetNamePath),但我还想获得它的标题。
是否可以从操作管理器获取所有操作?
发布于 2012-10-07 00:30:54
Actions[]属性返回一个TContainedAction,它是一个低级基类。您需要将其向上强制转换为适当的派生类。例如,如果您的操作管理器包含TAction实例,则可以执行以下操作:
for i := 0 to ActionManager1.ActionCount-1 do begin
Writeln((ActionManager1.Actions[i] as TAction).Caption);
end;如果你是从TCustomAction派生自定义动作,那么在你的造型中使用它。
显然,您可能希望使用is来检查操作的实际运行时类型,并避免运行时强制转换错误。
https://stackoverflow.com/questions/12761459
复制相似问题