TActionListは、いつもGUI操作で使用しているのですが、
ソースコードで、TActionを取り出す方法と、TActionを追加する方法が分かりません。
なぜなら、TActionのプロパティーや、メソッドを確認してもTActionが見当たりません。アドバイスお願いします。
>ソースコードで、TActionを取り出す方法と、TActionを追加する方法が分かりません。
・取り出しはTActionListのActionsプロパティをTActionでキャストして。
・追加はTActionのActionListプロパティに追加するActionListをセット。
でそれぞれいけるのではないでしょうか。
Dさん、早速のお返事ありがとうございます。
TActionListのActionsプロパティは、TContainedActionです。
TActionの継承は、TContainedAction->TCustomAction->TActionです。
取り出しについて
Dさんの言われること、理解しました。
TActionListが、TActionを継承していないので 悩んでいたのですが、
両方が、TContainedActionから派生しているのですね。
追加について
まだ理解できていません。
TActionListに、TActionを追加したいのに、なぜ TActionのプロパティに追加するのでしょうか?反対のような感覚です。
>両方が、TContainedActionから派生しているのですね。
違います。
TActionListはTContainedActionを継承していません。
TActionListとTActionは名前も似ているし関連性は強いですが別のものです。
TActionListはTActionを分類して入れておく、入れ物のようなものなのだと思います。
>なぜ TActionのプロパティに追加するのでしょうか?
「TActionのプロパティに追加する」というより「TActionのプロパティで追加先を指定する」という感じで捉えれば少しは理解しやすいのではないでしょうか。
でも確かにTListやTStringListのようにTActionListもAddメソッドでTActionを追加できた方が分かりやすいですよね。
私はD6なのですが、それ以降のバージョンだとできたりもするのかな?
>TActionListはTContainedActionを継承していません。
すみません。間違っていました。
「TActionListのActionsプロパティは、TContainedAction」で、
「TAction」と互換性があると言いたかったのです。
追加に関しては、しっくり来ませんが仕方ないですね。
ありがとうございました。(私はD7ですが、D6と同じです。)
ツイート | ![]() |