個別の画像リストを使用するTMainMenuをマージし、各メニュー項目で正しい画像を保持するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/152405

  •  02-07-2019
  •  | 
  •  

質問

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

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

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

多くのプロジェクトで差し込みフォームを使用します。そうしないと、単一の共有イメージリストが意味をなします。

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

ありがとう

ピーター

役に立ちましたか?

解決

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

他のヒント

少し前にまったく同じ問題がありましたが、アプリがMDIであったため、他のメニューマージの問題も発生しました。そのため、まったく異なる方法で処理することにしました。

ただし、1つのフォームの画像を他のフォームのImageListに動的に追加し、 ImageIndex esを「リダイレクト」することもできます。少し注意が必要かもしれませんが、動作するはずです。

最終的には、すべてのメニューとツールバーに Toolbar2000 パッケージを使用しています。その後、 TB2Merge という非常に素晴らしいコードをダウンロードできます。まさにあなたが望むことをします。また、Toolbar2000のインフラストラクチャの一部を使用して、メニュー項目の画像を別の TImageList にリンクします。これは、VCLのTMainMenuには存在しないインフラストラクチャです。 TB2Mergeのドキュメントをよくお読みください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top