Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何从战术经理处获得所有战术?_Delphi_Delphi Xe_Taction_Tactionmanager - Fatal编程技术网

Delphi 如何从战术经理处获得所有战术?

Delphi 如何从战术经理处获得所有战术?,delphi,delphi-xe,taction,tactionmanager,Delphi,Delphi Xe,Taction,Tactionmanager,我的应用程序中有一个TActionManager,其中定义了所有操作。我需要获得其所有行动的清单;目前,使用其Actions属性,我可以获取操作的“路径”(GetNamePath),但我还想获取其标题 是否可以从操作管理器获取所有操作?属性actions[]返回一个TContainedAction,它是一个低级基类。您需要将其向上转换为适当的派生类。例如,如果您的操作管理器包含TAction实例,则可以执行以下操作: for i := 0 to ActionManager1.ActionCoun

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


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

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

for i := 0 to ActionManager1.ActionCount-1 do begin
  Writeln((ActionManager1.Actions[i] as TAction).Caption);
end;
如果您是从
TCustomAction
派生自定义动作,请在强制转换中使用该动作


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

Ack-我想我尝试了这个方法并得到了一些编译时警告,但可能是我做了其他错误的事情。这当然有效。非常感谢你。