3

私のメイン フォームには、ツールバーとして機能するボタンを含む TPanel があります。このツールバーとボタンとその機能を 2 番目のフォームに複製/コピーしたいと考えています。

newmenu.merge(mainmenu) を使用すると、メニューのクローンを作成するのは簡単でした。これは、Tmainmenu を複製するための優れた近道でした。

しかし、イベントを手動で割り当てずにツールバーを簡単に複製し、タイマーを保持して、メインフォームの実際のメインメニューと比較して有効および無効になっているボタンを比較および追跡する方法に途方に暮れています。アプリケーションの実行内容に応じて、ツールバーのメイン ボタンがさまざまなタイミングで有効または無効になります。

ここに何かアイデアはありますか?これを簡単にするための提案やヒントをありがとう。

4

3 に答える 3

4
  • コントロールの複製

    フォーム デザイナでパネルを選択し、 を押して、パネルとCtrl+Cそのすべての子をクリップボードにコピーします。2 番目のフォームに移動し、 を押しCtrl+Vて貼り付けます。

    まだデザインに取り組んでいて、両方のフォーム間で一貫性を保ちたい場合は、 を作成し、TFrameそこでツールバー レイアウトをデザインします。次に、そのフレームのインスタンスを両方のフォームに配置します。フレームデザインの変更はフォームに反映されます。

    ヘルプのフレームの操作を参照してください。

  • ボタンの両方のセットが一貫して有効になっていることを確認する

    データ モジュールを作成します。をつけTActionListます。メイン フォームの各ボタンにアクションを追加します。アクションのイベントにイベント ハンドラーを割り当てOnUpdateます。それらで、アクションの Enabledプロパティを設定します。最後に、各ボタンのActionプロパティを割り当てて、対応するアクション オブジェクトを参照します。ボタンは、アクションによって自動的に有効化および無効化されます。タイマーは必要ありません。

    さらに、アクションのOnExecuteイベントも処理できます。OnClick各ボタンのプロパティをクリアし、ボタンのOnClickコードを対応するアクションのOnExecuteハンドラーに移動します。OnClickプロパティが空であっても、ボタンをクリックすると自動的に呼び出されます。

    CaptionのまたはHintプロパティを割り当てるTActionと、関連するコントロールの対応するプロパティも変更されます。コントロールが画像をサポートしている場合は、画像についても同様です。メニュー項目にもアクションを割り当てることができます。

    ヘルプの「アクション リストの使用」を参照してください。

  • ツールバーのように振る舞う

    を使用するだけTToolbarです。それがそのためです。

    または、アクションに慣れたら、TActionManagerをプロジェクトに入れ、 と で使用しTActionToolbarますTActionMainMenuBar。ヘルプのツールバーとメニューの操作の編成を参照してください。

于 2010-02-05T23:11:00.050 に答える
1

ボタンはアクションに関連付けられていますか? その場合は、TActionList の OnUpdate イベントを使用して、有効にする必要があるものと有効にしないものを指定できます。そうでない場合は、アクションを使用するように変換するのはそれほど面倒ではありません。

この方法で ActionList を使用するように変換する場合は、ActionList を、さまざまなユニットやフォームが参照できるデータモジュールに配置することを検討してください。

于 2010-02-05T23:09:40.460 に答える