個別の画像リストを使用するTMainMenuをマージし、各メニュー項目で正しい画像を保持するにはどうすればよいですか?
-
02-07-2019 - |
質問
2つのTFormクラスを持つプログラムがあり、それぞれにTMainMenuを追加しました。その後、実行時にそれらを動的にマージしようとしています。
私の問題は、マージされたTMainMenuのメニュー項目をマージすると、元のフォームのイメージリストに保存されている画像ではなく、マージされたフォームの画像リストに保存されている画像を表示することです。
何か間違ったことをしていますか?メニュー項目が元の形式でイメージリストを使用し続けるようにする回避策はありますか?
多くのプロジェクトで差し込みフォームを使用します。そうしないと、単一の共有イメージリストが意味をなします。
何か明確にする必要がある場合は、言ってください。
ありがとう
ピーター
解決
これを処理する方法は、データモジュールに単一の画像リストを作成し、それを各フォームに含めて、その単一のアイコンセットを共有できるようにすることです。
他のヒント
少し前にまったく同じ問題がありましたが、アプリがMDIであったため、他のメニューマージの問題も発生しました。そのため、まったく異なる方法で処理することにしました。
ただし、1つのフォームの画像を他のフォームのImageListに動的に追加し、 ImageIndex
esを「リダイレクト」することもできます。少し注意が必要かもしれませんが、動作するはずです。
最終的には、すべてのメニューとツールバーに Toolbar2000 パッケージを使用しています。その後、 TB2Merge という非常に素晴らしいコードをダウンロードできます。まさにあなたが望むことをします。また、Toolbar2000のインフラストラクチャの一部を使用して、メニュー項目の画像を別の TImageList
にリンクします。これは、VCLのTMainMenuには存在しないインフラストラクチャです。 TB2Mergeのドキュメントをよくお読みください!