Einzelnen Beitrag anzeigen

Freyr77
(Gast)

n/a Beiträge
 
#3

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

  Alt 10. Nov 2016, 14:26
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;
Dankeschön

Hab das jetzt auch ziemlich genau so gelöst.
  Mit Zitat antworten Zitat