使用: Delphi XE3、VCL フォーム アプリケーション
ActionMainMenuBar にサブメニューを含むメニューがあります。コードを介してどのようにすればよいですか:
- メニューを無効にする
- サブメニューを無効にする
使用: Delphi XE3、VCL フォーム アプリケーション
ActionMainMenuBar にサブメニューを含むメニューがあります。コードを介してどのようにすればよいですか:
無効にするメニュー/サブメニューごとに「TAction」を作成します。それらをどのカテゴリにも割り当てないでください。
これらのアクションを有効にできるように、これらのアクションの「OnExecute」イベント ハンドラを作成します。ハンドラーにコードを入れる必要はありません。IDE がハンドラーを削除しないようにするには、コメント ('//') で十分です。
フォーム デザイナーからメニュー/サブメニューを表す「TActionClient」を選択し、項目をクリックするだけです。
オブジェクト インスペクターで、アクションの 1 つをその 'Action' プロパティに割り当てます。
実行時にメニュー/サブメニューを有効/無効にする「TActionClient」に関連付けられたアクションを有効/無効にします。
次のように、カテゴリの最上位メニュー項目のインデックスがわかっている場合は、実際には実行時に(とにかく Delphi 7 で)無効にすることができます。
ActionMainMenuBar.ActionControls[2].Enabled := False;
ActionControls[2] は、最上位のメニュー項目として表示されるカテゴリになります (カテゴリを ActionManager から ActionMainMenuBar にドラッグした後)。
メニューの「有効」プロパティを使用して?またはサブメニューの開始点であるメニュー項目...