2013-03-14 92 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