Drag & Drop c Win95 Explorer II
Прислал Aleksey :
{Так можно заставить окно принимать файлы, перетаскиваемые из проводника} {ОБЯЗАТЕЛЬНО ПОМЕСТИТЕ В СЕКЦИЮ PRIVATE СТРОКИ procedure CreateParams(var Params: TCreateParams); override;procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;и не забудьте - ShellAPI поместить в uses} procedure TForm1.CreateParams(var Params: TCreateParams); begin inheritedCreateParams(Params);Params.ExStyle := Params.ExStyle or WS_EX_ACCEPTFILES; {сделаем окно способным принимать файлы}end; procedure TForm1.WMDropFiles(var Message: TWMDropFiles); var aFile: array [0..255] of Char;//FilesCount : Integer;begin inherited;// FilesCount := DragQueryFile(Message.drop, $FFFFFFFF, nil, 0); {так можно узнать сколько файлов перетягивается} begin{здесь можно поставить цикл открытия всех перетаскиваемых файлов for N := 0 to FilesCount - 1 do DragQueryFile(Message.drop, N, aFile, 256);а в данном случае открывается только первый файл в списке}DragQueryFile(Message.drop, 0, aFile, 256);Memo1.Lines.LoadFromFile(aFile);end;DragFinish(Message.Drop);end; procedure TForm1.FormCreate(Sender: TObject); {Form1.OnCreate} begin DragAcceptFiles(Handle, True); {сделаем окно неравнодушным к пролетающим над ним файлам}end; |