Delphi IDE (*1) の [ツール プロパティ] ダイアログで、プログラムの TEdit コントロールがエクスプローラからのファイルのドロップを受け入れるようにしようとしています。これは Delphi 6 および 7 では問題なく動作しますが、Delphi 2005 以降の「新しい」IDE では動作しなくなりました。
Delphi 6/7 では、エディット コントロールにファイルをドロップすると、TEdit の WindowProc へのフックがキャッチできる WM_DROPFILES メッセージがトリガーされます。それ以降のバージョンでは、メッセージは受信されません。WindowProc のフックは、他のあらゆる種類のメッセージを受信するため、引き続き機能します。
ダイアログのレイアウト、名前、およびコントロールは、私が判断できる限り変更されていません。
テストとして、独自の TEdit と TComboBox をダイアログに追加して、これらの特定の既存のコントロールの問題ではないことを確認しました。それらは正常に表示されますが、ファイルのドロップはこれらでも機能しません。
他に何が問題になる可能性がありますか?
(*1: [ツール] -> [ツールの構成] -> [追加] または [編集] で得られるもの これは GExperts の新しい機能です。これらのコントロールではオートコンプリートが既に機能しています。)
コードは次のとおりです。
http://sourceforge.net/p/gexperts/code/HEAD/tree/trunk/Source/IDE/GX_IdeToolPropertiesEnhancer.pas
実際のフックコードは次のとおりです。
http://sourceforge.net/p/gexperts/code/HEAD/tree/trunk/Source/Utils/GX_dzVclUtils.pas