2012-04-23 10 views
0

設定ファイルに基づいてツールバーボタンを動的に追加します。私はそれらに感謝したいと思います。今のところOnClickイベントをAction OnExecuteハンドラで追加しましたが、アクションが無効になっていると、デザイン時に追加されたTMenuItemsなどのツールバーボタンは自動的に無効になりません。実行時にツールバーボタンにTActionを割り当てる方法は?

つまり、私はIDEの "アクション"ドロップダウンメニューを使ってTActionを割り当てるデザインタイムのランタイムバージョンを持っていたいと思います。

ここまでは私がこれまで行ってきたことです(コードはC++ですが、それは明らかです)。

TToolButton *b; 
b = new TToolButton(ToolBar1); 
b->Action = Form1->ActionManager1->Actions[0]; 
b->Parent = ToolBar1; 

これは、ツールバーにボタンを追加すると、アクションが有効/無効の状態になるようですが、クリックすると何も起こりません。行動を適切かつ完全に追加するにはどうすればよいですか?

答えて

3

TToolButtonは、Actionプロパティを公開しています。目的のTActionオブジェクトをそのプロパティに割り当てるだけです。

+0

私はこれを試しましたが(上のコードを参照してください)、OnClickイベントに反応しません。ボタンを追加するときに間違って割り当てたか、何か他の作業が必要です。サンプルコードの小さな部分は大きな助けになるでしょう。 – Coder12345

+0

あなたが示した正確なコードを使用して私のためにうまく動作します。 'TAction.OnExecute'イベントは、' TToolButton'がクリックされたときにトリガーされます。 –

+0

私は小さなテストプログラムで試してみました。私はそれがうまくいかず、おそらく私が見ていないどこかでOnClickを割り当てられた大きなプログラムで何かを混乱させる必要があります。手伝ってくれてありがとう。 – Coder12345