TActionMainMenuBarに追加したメニューをEnabledにしたい

解決


にしの  2003-08-31 06:30:00  No: 4517

以下のようなコードで、TActionMainMenuBarに対してメニューを追加しようとしました。
//Man: TActionManager;
//Man.ActionBars[0]: TMainMenuBar
//Man.ActionBars[0].Items[1]: メニュー'編集(&E)'

  AClient := Man.ActionBars[0].Items[1];
  CategoryItem := TActionClientItem.Create(nil);
  CategoryItem.Caption := 'Test(&T)';
  CategoryItem.Collection := AClient.Collection;
  CategoryItem.Index := AClient.Index + 1; // '編集'メニューの右に追加

  with CategoryItem.Items.Add do
  begin
    Action := MainForm.DummyAction;//アクションを追加
  end;

DummyAction自体はEnabledですが、'Test(&T)'メニューがDisabledで、クリックしても展開されません。
ただ、隣の'編集'メニューを展開し、マウスをずらしてTest(&T)に持って行くと、展開されます。
TActionClientItemにはEnabledプロパティがないため、変更できません。

Enabledの状態にする方法はありませんか?

環境はDelphi7Proです。


にしの  2003-09-01 03:54:39  No: 4518

これも回避策ですが、DummyActionを、ActionManagerに登録し、これを追加することでEnabledにできました。
# 当たり前ですが
動的に追加したかったのは、カテゴリでなくその中のメニューアイテムでして、どうせならメニュー(カテゴリ)ごと挿入できないかと思いやっていました。


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

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






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