こんにちわ。
単にエクスプローラーからドラッグアンドドロップの情報を受け取る
方法は、分かります。分からないのは、
1.フォームの上に複数のボタンを用意します。
2.エクスプローラーから、あるボタンに向かって
ドロップしたときに、そのボタンのキャプションにファイル名称を
設定したいのです。
いろいろやってみましたが、どのボタンの上でドロップされたのかが、
取得できませんでした。
どなたかお願いしいます。
var
saFileName: AnsiString;
Pos: TPoint;
Contr: TControl;
begin
//ファイルがドロップされたときのマウスカーソルの位置を取得
DragQueryPoint(Msg.Drop, Pos);
//マウスカーソル上のコントロールを取得
Contr := FindDragTarget(ClientToScreen(Pos), False);
if Contr = Button1 then begin
//ドロップされたファイルの名前を取得
SetLength(saFileName, MAX_PATH);
DragQueryFile(Msg.Drop, 0, PChar(saFileName), MAX_PATH + 1);
SetLength(saFileName, StrLen(PChar(saFileName)));
Button1.Caption := saFileName;
end;
//ドラッグ&ドロップ用メモリ解放
DragFinish(Msg.Drop);
end;
ありがとうございます。
////マウスカーソル上のコントロールを取得
// Contr := FindDragTarget(ClientToScreen(Pos), False);
なるほど、こ〜やって取得すればできるんですね。
まだまだ勉強不足です。
助かりました。
ツイート | ![]() |