Hallo Sven,
ich hatte vor einiger Zeit ein ähnliches Problem.
Soweit ich mich erinnere, ist das D&D mit fremden Applikationen
nicht ganz so easy wie mit delphieigenen Komponenten ...
Daher habe mir (mit Hilfe von NG- und Forenbeispielen) eine
eigene Lösung zusammengestoppelt:
Delphi-Quellcode:
PRIVATE
PROCEDURE WMDropFiles(VAR Msg: TMessage); MESSAGE WM_DROPFILES;
Delphi-Quellcode:
{******************************************************************************}
PROCEDURE TfMain.WMDropFiles(VAR Msg: TMessage);
{******************************************************************************}
// Eigene D&D Routine zwischen 2 Edits und den Exploren!
// Anwendung: Eine Datei wird per Drag&Drop vom M$-Explorer zu einem der
// beiden TEdits (ed_CMP_L, ed_CMP_R) übertragen. In
// dem Ziel-TEdit steht dar komplette Filepfad+FileName
//
VAR
NumFiles, NameLength, Idx : Integer;
Buf : ARRAY[0..255] OF Char;
hDrop : THandle;
MausPos : TPoint;
aEdit : TEdit;
BEGIN
GetCursorPos(MausPos);
IF (FindDragTarget(MausPos, FALSE) IS TEdit) THEN
BEGIN
IF ((FindDragTarget(MausPos, FALSE) AS TEdit).Name = 'ed_CMP_L') THEN
aEdit := ed_CMP_L
ELSE IF ((FindDragTarget(MausPos, FALSE) AS TEdit).Name = 'ed_CMP_R') THEN
aEdit := ed_CMP_R
ELSE
Exit;
aEdit.Clear;
hDrop := Msg.wParam;
NumFiles := DragQueryFile(Msg.wParam, $FFFFFFFF, NIL, 0);
FOR Idx := 0 TO NumFiles - 1 DO
BEGIN
NameLength := DragQueryFile(Msg.wParam, Idx, NIL, 0);
DragQueryFile(Msg.wParam, Idx, Buf, NameLength + 1);
aEdit.Text := (StrPas(Buf));
END;
DragFinish(hDrop);
END;
END;
Delphi-Quellcode:
{******************************************************************************}
PROCEDURE TfMain.FormShow(Sender: TObject);
{******************************************************************************}
BEGIN
[...]
DragAcceptFiles(
Handle, True);
END;
Delphi-Quellcode:
{******************************************************************************}
PROCEDURE TfMain.FormDestroy(Sender: TObject);
{******************************************************************************}
BEGIN
[...]
DragAcceptFiles(
Handle, False);
END;
Ich hoffe dieser Ansatz hilft Dir weiter.