Hallo zusammen,
ich versuche den Link oder den Dateinamen mit Pfadnamen einer beliebigen Datei aus dem WindowsExplorer
in eine Listbox per drag and drop einzufügen.
Ich versuche es mit der einfachen procedure WMDropfiles oder auch mit der componente "Drag and Drop Suite".
Es klappt einfach nichts !!!!!!!!!!!!!!!!!!!!!!!!
Ich klicke die Datei im Explorer an, ziehe Sie in meinem Programm auf die ListBox, der Mauszeiger mit dem Plus erscheint, aber beim loslassen der Maustaste passiert nichts.
In der FormCreate wir der dragAcceptFiles(
handle, True) gesetzt. shellapi aufgerufen.
Alles wie in den zu findenden Beispielen.
Setze ich einen Haltepunkt in der procedure WMDropFiles wird der gar nicht angesprungen, also wmDropFiles gar nicht aufgerufen.
Wo liegt mein Fehler
Hier der verwendet Code
uses shellapi;
private
procedure WMDROPFILES(var Msg: TMessage); Message WM_DROPFILES;
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
i, Counts, Size: Integer;
PCharFileName: PChar;
begin
inherited;
PCharFileName:=nil;
Counts:=DragQueryFile(Msg.WParam, $FFFFFFFF, PCharFileName, 255);
for i:=0 to Counts - 1 do
begin
Size:=DragQueryFile(Msg.WParam, i, nil, 0) + 1;
PCharFileName:=StrAlloc(Size);
DragQueryFile(Msg.WParam, i, PCharFileName, Size);
showmessage(String(PCharFileName));
StrDispose(PCharFileName);
end;
DragFinish(Msg.WParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(ListBox1.Handle, True);
end;
Danke.