Delphi XE6 および VCL スタイルを使用しています。メインアプリケーションとdllがあります。私のメイン アプリケーションはランタイム テーマを有効にしており、vcl スタイル ファイルを使用しています。私は自分のDLLに非常に似たようなことをしました。ランタイム テーマを有効にし、uses の下に VCL.Themes、VCL.Styles を追加し、VCL スタイル ファイルを含むリソース ファイルを追加しました。DLL が読み込まれると、リソースから VCL スタイルを読み込み、DLL GUI に設定します。メイン アプリと DLL はランタイム パッケージでビルドされません。
これで、メイン アプリの GUI が独自のスタイルでスタイル設定され、DLL の GUI も独自のスタイルでスタイル設定されました。これまではうまくいくようです...
イベントが TPopupMenu を開くメイン アプリのボタンをクリックすると、メイン アプリ スタイルではなく DLL GUI と同じスタイルでスタイル設定されます。メニューをナビゲートすると、AV も取得され、プログラムがクラッシュします。添付の画像を見てください。
私は何を間違っていますか?私が現在見ている唯一の回避策は、他のコントロールから派生した独自のカスタマイズされた TPopupMenu を作成することです。
約束通り、私のアプリケーションに似た簡単なデモ プログラムを用意しました。独自のスタイルを持つホスト アプリケーションとリソースにスタイルを追加した DLL で構成されます。それを実行し、ポップアップボタンをクリックしてから、ポップアップから何かを選択してみてください。StdWindowProc などでクラッシュして停止します。また、そのメニューから何かを選択しようとするときにウィンドウ システム メニュー (左上隅) に移動すると、システム メニューが DLL GUI としてスタイル設定され、クラッシュすることもわかります。RARファイルへのリンク: dropbox.com/sh/f2jmbsmw18akpyg/AAA6SWdBmVhf6n6K-mvYLLmua?dl=0
ご協力いただきありがとうございます。