2013-03-14 86 views
3

我想重复的动作,如果有一种方法,通过TActionsTActionManager迭代没有了传统的我:对...但在代码中使用迭代器= 0像德尔福XE2:在TAcionManager对象

for (action in actionManager.actions) do 
begin 
... 
end; 

它不起作用。 我试了很多,总是有相同的结果。

是不可能的或我做错了什么?

谢谢! M.

+0

当你说什么“不起作用”时,如果你解释它不工作的方式会有帮助。有时这些信息是有帮助的。 – 2013-03-14 14:10:20

+0

对不起,我的意思是“它不能编译”。命令“for(在MainActionManager.Actions中的操作)”引发编译器错误“E2029'['expected but''''发现' – shaman74 2013-03-15 11:31:56

回答

5

动作管理器提供的枚举器提供的动作类型为TContainedAction。它由动作管理器类提供,以便您可以直接枚举动作管理器。你的代码试图迭代ActionManager.Actions,这是不可能的,因为Actions是一个索引属性。你不能遍历其中的一个。

所以,你的代码需要看起来像这样:

var 
    Action: TContainedAction; 
.... 
for Action in ActionManager do 
begin 
    .... 
end; 

您可能需要使用as如果要访问在的TContainedAction后裔声明的属性上投地。

+0

谢谢!我已经试过这种方式,但我用“for(在MainActionManager中的动作)做”和德尔福没有编译,因为括号。 – shaman74 2013-03-15 11:36:08