// Hiermit kann man Pfad und Namen von Dateien anzeigen lassen,
// welche vom Explorer oder Desktop
(oder von anderen Programmen, die
// dafür vorbereitet sind) mit der Maus auf ein Memo gezogen werden.

// Getestet mit D4 unter WinME

 

unit Unit1; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
  StdCtrls; 
 
type 
  TForm1 = class(TForm) 
    Memo1: TMemo; 
    procedure Memo1DragOver(Sender, Source: TObject; X, Y: Integer; 
      State: TDragState; var Accept: Boolean); 
    procedure FormCreate(Sender: TObject); 
  private 
    { Private-Deklarationen } 
  public 
    procedure wmdropfiles(var msg: TMessage); message wm_dropfiles; 
  end; 
 
var 
  Form1: TForm1; 
 
implementation 
 
{$R *.DFM} 
 
uses shellapi, comctrls; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
  dragacceptfiles(handle, true); 
end; 
 
procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer; 
  State: TDragState; var Accept: Boolean); 
begin 
  Accept := Source is TListview; 
end; 
 
procedure TForm1.wmdropfiles(var msg: TMessage); 
var pt: TPoint; 
  i, len, count: integer; 
  filename: string; 
begin 
  dragquerypoint(msg.wparam, pt); 
  if ptinrect(memo1.boundsrect, pt) then begin 
    count := dragqueryfile(msg.wparam, $FFFFFFFF, nil, 0); 
    for i := 0 to count - 1 do begin 
      len := dragqueryfile(msg.wparam, i, nil, 0); 
      setlength(filename, len); 
      dragqueryfile(msg.wparam, i, pchar(filename), len + 1); 
      memo1.lines.add(filename); 
    end; 
  end; 
  dragfinish(msg.wparam); 
end;




Zugriffe seit 6.9.2001 auf Delphi-Ecke