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

解決


kuze  2010-11-14 09:43:03  No: 39545

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


D  2010-11-14 11:01:58  No: 39546

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

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

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

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


kuze  2010-11-14 20:17:24  No: 39547

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

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

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


D  2010-11-14 23:20:20  No: 39548

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

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

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

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


kuze  2010-11-15 01:44:56  No: 39549

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加