Использование нового


procedure TForm1.FormCreate(Sender: TObject);
begin Application.OnMessage := AppMessage; FMDD1.AcceptDroppedFiles (Handle);
end; procedure TForm1.WMDropFiles (hDrop : THandle; hWindow : HWnd);
var DragDropInfo : TDragDropInfo; i : Integer; begin DragDropInfo := FMDD1.GetDroppedFiles (hDrop);
{ Проверяем, были ли файлы брошены в клиентской области } if DragDropInfo.InClientArea then Label2.Caption := "In client area" else Label2.Caption := "Not in client area"; { Заносим все файлы в список } for i := 0 to DragDropInfo.NumFiles - 1 do begin Listbox1.Items.Add (DragDropInfo.Files[i]);
end; { Уничтожаем объект DragDropInfo } DragDropInfo.Free; end; procedure TForm1.FormClose (Sender: TObject; var Action: TCloseAction);
begin { Прекращаем прием файлов } FMDD1.UnacceptDroppedFiles (Handle);
end;

По-моему, новым интерфейсом пользоваться намного проще. В полном соответствии с духом Delphi мы убрали код для работы с Windows API из приложения и вынесли его с глаз долой в отдельный модуль. Модуль FMDD копается во внутренностях Windows и достает оттуда нужный объект, с которым мы умеем работать. В результате код получается компактным и понятным, более простым в написании и сопровождении.





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