3

古典的な for i:= 0 to... を使用せずに TActionManager で TActions を反復処理する方法があるかどうか疑問に思っていましたが、次のようなコードで反復子使用します

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

うまくいきません。何度も試しましたが、いつも同じ結果です。

それは不可能ですか、それとも何か間違っていますか?

ありがとう!M.

4

1 に答える 1

5

アクション マネージャーによって提供される列挙子は、 として型指定されたアクションを提供しますTContainedAction。また、アクション マネージャー クラスによって提供されるため、アクション マネージャーを直接列挙できます。あなたのコードは繰り返し処理を試みますが、これはインデックス付きプロパティActionManager.Actionsであるため不可能です。Actionsそれらのいずれかを反復することはできません。

したがって、コードは次のようにする必要があります。

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

asの子孫で宣言されているプロパティにアクセスする場合は、using をアップキャストする必要がある場合がありますTContainedAction

于 2013-03-14T11:22:13.260 に答える