Ich möchte gerne eine Datei aus dem Windows-Explorer auf einen ListBoxEintrag verschieben. Dazu habe ich bereits folgendes gemacht:
DragAcceptFiles(ListBox.Handle, True);
und
Delphi-Quellcode:
procedure TMainForm.WMDROPFILES(var Msg: TMessage);
var Size: integer;
Filename: PChar;
begin
inherited;
if DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255) = 1 then
begin
Size := DragQueryFile(Msg.WParam, 0 , nil, 0) + 1;
Filename:= StrAlloc(Size);
DragQueryFile(Msg.WParam, 0, Filename, Size);
//Hier passiert dann etwas mit der Datei
StrDispose(Filename);
end;
DragFinish(Msg.WParam);
end;
Jetzt habe ich nur das Problem, dass wenn ich mit der Maus über der
ListBox bin und die Dateien dabei habe reagiert kein Eregnis der
ListBox wie z.B. MouseOver, womit ich den Eintrag über dem sich die Maus befindet markiere. Wie kann ich den ListBoxEintrag über dem sich die Maus während des
Drag&Dropens befindet markieren. Und dann würde ich gerne wissen, ob ich das
Drag&
Drop bereits abbrechen, wenn mehr als eine Datei verschoben wird?