ドラッグ アンド ドロップするファイルを受け入れるフォームと、同じフォームの TPanel コントロールに配置された TWebBrowser コントロールがあります。
主なことは、フォームにファイルをドロップすると、そのパスが TEdit コントロールに追加されることです。ただし、ユーザーがファイルをフォームにドラッグ アンド ドロップすると、実際に TWebBrowser にドロップする場合があり、ファイルの種類に応じて、ユーザーにファイルを保存または実行するよう提案します。これは私が実際に起こりたくないことです.TWebBrowserがドロップされたファイルを無視するか、フォームが行うように処理するようにしたいだけです.
これは、WM_DROPFILES メッセージを処理するために使用しているコードです。
procedure TMainForm.AcceptFiles( var msg : TMessage );
const
cnMaxFileNameLen = 255;
var
i,
nCount : integer;
acFileName : array [0..cnMaxFileNameLen] of char;
begin
// find out how many files we're accepting
nCount := DragQueryFile( msg.WParam,
$FFFFFFFF,
acFileName,
cnMaxFileNameLen );
// query Windows one at a time for the file name
for i := 0 to nCount-1 do
begin
DragQueryFile( msg.WParam, i,
acFileName, cnMaxFileNameLen );
// do your thing with the acFileName
//MessageBox( Handle, acFileName, '', MB_OK );
Edit1.Text := acFileName;
end;
// let Windows know that you're done
DragFinish( msg.WParam );
end;
前もって感謝します。どんな手がかりも大歓迎です。