3

TActionManagerすべてのアクションが定義されているアプリケーションに があります。すべてのアクションのリストを取得する必要があります。現在、その Actions プロパティを使用して、アクション ( GetNamePath) の「パス」を取得できますが、そのキャプションも取得したいと考えています。

アクションマネージャーからすべてのアクションを取得することは可能ですか?

4

1 に答える 1

5

このActions[]プロパティTContainedActionは、低レベルの基本クラスである を返します。それを適切な派生クラスにアップキャストする必要があります。たとえば、アクション マネージャーにTActionインスタンスが含まれている場合は、次のようにすることができます。

for i := 0 to ActionManager1.ActionCount-1 do begin
  Writeln((ActionManager1.Actions[i] as TAction).Caption);
end;

からカスタム アクションを派生させる場合はTCustomAction、それをキャストで使用します。

is明らかに、アクションの実際のランタイム タイプをチェックし、ランタイム キャスト エラーを回避するために使用したい場合があります。

于 2012-10-06T16:30:54.027 に答える