Советы по Delphi

         

Drag & Drop c Win95 Explorer II


Прислал Aleksey msalex@tomcat.ru:

    {Так можно заставить окно принимать файлы, перетаскиваемые из проводника}
{ОБЯЗАТЕЛЬНО ПОМЕСТИТЕ В СЕКЦИЮ PRIVATE СТРОКИ
procedure CreateParams(var Params: TCreateParams); override; procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES; и не забудьте - ShellAPI поместить в uses}
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited
CreateParams(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;
[000117]



Содержание раздела