2

2 つの TForm クラスを持つプログラムがあり、それぞれに TMainMenu を追加しました。次に、実行時にそれらを動的にマージしようとしています。

私の問題は、マージされた TMainMenu のメニュー項目をマージすると、元のフォームのイメージリストに保存されている画像ではなく、マージされたフォームのイメージリストに保存されている画像が表示されることです。

私は何か間違ったことをしていますか?メニュー項目が元の形式でイメージリストを使用し続けるようにするための回避策はありますか?

私は多くのプロジェクトでマージされた形式を使用していますが、それ以外の場合は、単一の共有イメージリストが理にかなっています。

何か明確にする必要がある場合は、言ってください。

ありがとう

ピーター

4

2 に答える 2

8

私がこれを処理する方法は、データモジュールに単一の画像リストを作成し、それを各フォームに含めて、単一のアイコンセットを共有できるようにすることです。

于 2008-09-30T13:41:44.557 に答える
3

私は少し前にまったく同じ問題を抱えていましたが、アプリが MDI だったために他のメニュー マージの問題にも遭遇したため、まったく別の方法で物事を行うことにしました。

ただし、あるフォームの画像を別のフォームの ImageList に動的に追加し、ImageIndexes を「リダイレクト」することもできます。少しトリッキーかもしれませんが、うまくいくはずです。

私が最終的にたどり着いたのは、すべてのメニューとツールバーにToolbar2000パッケージを使用することです。次に、 TB2Mergeと呼ばれる非常に優れたコードをダウンロードできます。これは、まさに必要なことを行います。また、Toolbar2000 のインフラストラクチャの一部を使用して、メニュー項目のイメージを別のTImageList--- VCL の TMainMenu に存在しないインフラストラクチャにリンクします。TB2Merge のドキュメントをよく読んでください。

于 2008-09-30T16:16:50.020 に答える