古典的な for i:= 0 to... を使用せずに TActionManager で TActions を反復処理する方法があるかどうか疑問に思っていましたが、次のようなコードで反復子を使用します
for (action in actionManager.actions) do
begin
...
end;
うまくいきません。何度も試しましたが、いつも同じ結果です。
それは不可能ですか、それとも何か間違っていますか?
ありがとう!M.
アクション マネージャーによって提供される列挙子は、 として型指定されたアクションを提供しますTContainedAction
。また、アクション マネージャー クラスによって提供されるため、アクション マネージャーを直接列挙できます。あなたのコードは繰り返し処理を試みますが、これはインデックス付きプロパティActionManager.Actions
であるため不可能です。Actions
それらのいずれかを反復することはできません。
したがって、コードは次のようにする必要があります。
var
Action: TContainedAction;
....
for Action in ActionManager do
begin
....
end;
as
の子孫で宣言されているプロパティにアクセスする場合は、using をアップキャストする必要がある場合がありますTContainedAction
。