Thema: dragdrop

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

AW: dragdrop

  Alt 29. Aug 2012, 17:55
In deinem Codebeispiel vermischen sich Dinge, die nicht zusammengehören.

Folgende Prozedure liefert alle gedroppten Dateien in einer Stringliste und zusätzlich (aber optional) den Punkt relativ zum Desktop Ursprung.
Delphi-Quellcode:
procedure GetDroppedFiles(HDrop:THandle; filelist:TStrings; Point:PPoint);
var
   i, filecount, size : Integer;
   s : string;
begin
   Assert(Assigned(filelist));

   filecount := DragQueryFile(HDrop, $FFFFFFFF, nil, 0);
   for i:= 0 to filecount-1 do
   begin
      size := DragQueryFile(HDrop, i, nil, 0);
      SetLength(s, size);
      DragQueryFile(HDrop, i, PChar(s), size+1);
      filelist.Add(s);
   end;

   if Assigned(Point) then
      if not DragQueryPoint(HDrop, Point^) then
      begin
         // Punkt war ausserhalb des Fensters
         Point^.x := -1;
         Point^.y := -1;
      end;

   DragFinish(HDrop);
end;
Andreas
  Mit Zitat antworten Zitat