Tech-Ecke / Delphi Inhalt / Datei per Drag & Drop auf Form öffnen

 

     Datei per Drag & Drop auf Form der eigenen Anwendung öffnen

 

Es wird ShellAPI in Uses benötigt !

  private
   { Private-Deklarationen }
   procedure WMDROPFILES(var Msg: TMessage); Message WM_DROPFILES;
 
 
  procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
i, Counts, Size: Integer;
PCharFileName: PChar;
PufferList: TStringList;

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);
        
if (FileGetAttr(String(PCharFileName)) <> faDirectory) then // nur Dateien zulassen, Ordner blocken
           
begin
               ShowMessage('Du hast die Datei ' +
String(PCharFileName)+' auf mich gezogen...');
           
end;
         StrDispose(PCharFileName);
     
end;
   DragFinish(Msg.WParam);
end;
 

Um Drag&Drop auf der entsprechenden Form (hier Form1) zu aktivieren muss folgende Codezeile bei Ereignis OnFormCreate hinterlegt werden.

  DragAcceptFiles(Form1.Handle, True);
 

Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !

[letzte Aktualisierung 22.03.2009]