3

2 つのメイン メニューを結合しようとしていますが、サブ項目で正しい結果が得られません。マージ/挿入を制御するために、MenuItems で GroupIndex プロパティを使用しています。

Menu1(グループインデックス付き)はこんな感じ

  • ファイル=10
    • 開く=11
    • 閉じる=12
  • 編集=20
    • カット=21
    • 貼り付け=22
  • ヘルプ=90
    • 約=91

Menu2はこんな感じ

  • 編集=20
    • クリア=23
  • ウィジェット=30
    • ウィジェット1=31
    • ウィジェット2=32

そして、私はやっています

  Menu1.Merge(Menu2);

結合されたメニューに、新しいトップ メニュー「ウィジェット」と、編集メニューの新しい「クリア」コマンドが必要です。「ウィジェット」は正常に動作していますが、編集メニューでカット アンド ペーストが失われました。これは私が望んでいたものではありませんでした。

切り取りと貼り付けのコマンドが表示されないようにするにはどうすればよいですか?

4

1 に答える 1

6

Delphi のメニュー マージ機能は、予想とは少し異なります。再帰的ではありません (残念ながら!)。つまり、 を呼び出すとMenu1.Merge、Menu1 の「編集」メニューがMenu2 のメニューに置き換えられます。

次の 2 つのオプションがあります。

  • Menu2 に手動で「切り取り」と「貼り付け」を追加します。
  • 独自の Merge 関数を作成します。

私はしばらく前に同じ問題を抱えていました(このSOの質問を参照してください):

私が最終的にたどり着いたのは 、すべてのメニューとツールバーにToolbar2000パッケージを使用することです。次に、 TB2Mergeと呼ばれる非常に優れたコードをダウンロードできます 。これは、まさに必要なことを行います。

TB2Merge に基づいてカスタム作成のメニュー マージ コードを作成することもできます。

于 2008-12-10T17:25:12.027 に答える