Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Drag-and-Drop auf Frame-Komponente realisieren

  Alt 10. Nov 2016, 14:42
Das DragAcceptFiles im Frame-Create kannst du weglassen. Das Form muss weiterhin das DropFiles übernehmen, kann aber die Message einfach an das Frame weiterreichen. Die Methode im Frame muss dann auch kein Message-Handler mehr sein.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DragAcceptFiles(Handle,True);
end;

procedure TForm1.WMDROPFILES(var Message: TWMDropFiles);
begin
  MyFrame1.HandleDropFiles(Message);
end;

procedure TMyFrame.HandleDropFiles(var Message: TWMDropFiles);
const
  MAXFILENAME = 255;
var
  cnt, fileCount : integer;
  fileName : array [0..MAXFILENAME] of char;
begin
  // how many files dropped?
  fileCount := DragQueryFile(Message.Drop, $FFFFFFFF, fileName, MAXFILENAME) ;

  // query for file names
  for cnt := 0 to -1 + fileCount do
  begin
    DragQueryFile(Message.Drop, cnt, fileName, MAXFILENAME) ;

    //do something with the file(s)
    memo1.Lines.Insert(0, fileName) ;
  end;

  //release memory
  DragFinish(Message.Drop) ;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat