我的应用程序中有一个TActionManager
,其中定义了所有操作。我需要获得所有行动的清单;目前,使用其Actions属性,我可以获取操作的“路径”(GetNamePath
),但我也想获取其标题。
是否可以从动作管理器获取所有动作?
答案 0 :(得分:4)
Actions[]
属性返回TContainedAction
,它是一个低级基类。您需要将其转换为适当的派生类。例如,如果您的操作管理器包含TAction
个实例,那么您可以执行此操作:
for i := 0 to ActionManager1.ActionCount-1 do begin
Writeln((ActionManager1.Actions[i] as TAction).Caption);
end;
如果您要从TCustomAction
派生自定义操作,请在演员阵容中使用该操作。
显然,您可能希望使用is
来检查操作的实际运行时类型,并避免运行时转换错误。