Hallo
Kleines exemplarisches Beispiel für Datei Drag&Drop.
Also Im Explorer Dateien markieren und mit der Maus in unsere Applikation Ziehen ...
Hier wird dann eine Listbox mit den Namen gefüllt....
Delphi-Quellcode:
type
TForm1 =
class(TForm)
...
Listbox1 ...
...
private
...
procedure WMDropFiles(
VAR Msg:TWMDROPFILES);
MESSAGE WM_DROPFILES;
public
...
end;
Function fctWMDropFiles
{ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> }
(hDrop:tHandle;j:TStrings):integer;
var
i1:integer;
i2:integer;
z1:
ARRAY[0..255]
of Char;
begin
// local init
Result := 0;
i1 := 0;
i2 := 0;
FillChar(z1,SizeOf(z1),0);
// local exit
if not assigned(j)
then exit;
// local main
// Ziel-Liste leeren
j.Clear;
// Anzahl Dateinamen
i1 := DragQueryFile(hDrop,LongWord(-1),
nil, 0);
// Alle Dateinamen in Schleife holen
for i2 := 0
to i1-1
do
begin
// Namen holen nach z1
FillChar(z1,SizeOf(z1),0);
DragQueryFile(hDrop,i2,z1,SizeOf(z1)-1);
// Name in Zielliste speichern
if (StrPas(z1)<>'
')
then
begin
j.Add(StrPas(z1));
end;
end;
DragFinish(hDrop);
fctWMDropFiles := i2+1;
end;
{ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< }
procedure TForm1.FormCreate(Sender: TObject);
begin
...
{ FileManager Dragging }
DragAcceptFiles(
Handle,True);
...
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
...
{ FileManager Dragging }
DragAcceptFiles(
Handle,False);
...
end;
procedure TForm1.WMDropFiles(
VAR Msg:TWMDROPFILES);
begin
fctWmDropFiles(Msg.Drop,ListBox1.Items);
end;