TActionListをソース上から使用する方法

解決


kuze  2010-11-14 00:43:03  No: 39545  IP: [192.*.*.*]

TActionListは、いつもGUI操作で使用しているのですが、
ソースコードで、TActionを取り出す方法と、TActionを追加する方法が分かりません。
なぜなら、TActionのプロパティーや、メソッドを確認してもTActionが見当たりません。アドバイスお願いします。

編集 削除
D  2010-11-14 02:01:58  No: 39546  IP: [192.*.*.*]

>ソースコードで、TActionを取り出す方法と、TActionを追加する方法が分かりません。

・取り出しはTActionListのActionsプロパティをTActionでキャストして。

・追加はTActionのActionListプロパティに追加するActionListをセット。

でそれぞれいけるのではないでしょうか。

編集 削除
kuze  2010-11-14 11:17:24  No: 39547  IP: [192.*.*.*]

Dさん、早速のお返事ありがとうございます。
TActionListのActionsプロパティは、TContainedActionです。
TActionの継承は、TContainedAction->TCustomAction->TActionです。

取り出しについて
Dさんの言われること、理解しました。
TActionListが、TActionを継承していないので 悩んでいたのですが、
両方が、TContainedActionから派生しているのですね。

追加について
まだ理解できていません。
TActionListに、TActionを追加したいのに、なぜ TActionのプロパティに追加するのでしょうか?反対のような感覚です。

編集 削除
D  2010-11-14 14:20:20  No: 39548  IP: [192.*.*.*]

>両方が、TContainedActionから派生しているのですね。
  違います。
TActionListはTContainedActionを継承していません。
TActionListとTActionは名前も似ているし関連性は強いですが別のものです。

TActionListはTActionを分類して入れておく、入れ物のようなものなのだと思います。

>なぜ TActionのプロパティに追加するのでしょうか?
  「TActionのプロパティに追加する」というより「TActionのプロパティで追加先を指定する」という感じで捉えれば少しは理解しやすいのではないでしょうか。

でも確かにTListやTStringListのようにTActionListもAddメソッドでTActionを追加できた方が分かりやすいですよね。
私はD6なのですが、それ以降のバージョンだとできたりもするのかな?

編集 削除
kuze  2010-11-14 16:44:56  No: 39549  IP: [192.*.*.*]

>TActionListはTContainedActionを継承していません。
すみません。間違っていました。
「TActionListのActionsプロパティは、TContainedAction」で、
「TAction」と互換性があると言いたかったのです。

追加に関しては、しっくり来ませんが仕方ないですね。
ありがとうございました。(私はD7ですが、D6と同じです。)

編集 削除