Ид DRKB: Рассмотрим пример перетаскивания Drag & Drop в окно произвольного текстового файла, который сразу же открывается в компоненте Memo1. Для начала в разделе Uses необходимо подключить модуль ShellAPI. В private области окна нужно вставить следующую строку:
| Код | procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;//получение сообщений о
|
переносе файла в окно приложения
Процедура обработки этого сообщения будет выглядеть следующим образом:
| Код | procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var CFileName: array[0..MAX_PATH] of Char; // переменная, хранящая имя файла begin try If DragQueryFile(Msg.Drop, 0, CFileName, MAX_PATH)> 0 then // получение пути файла begin Form1.Caption:=CFileName; // имя файла в заголовок окна Memo1.Lines.LoadFromFile(CFileName); // открываем файл Msg.Result := 0; end; finally DragFinish(Msg.Drop); // отпустить файл end; end;
|
Для того, чтобы форма знала, что может принимать такие файлы, необходимо в процедуре создания окна указать:
| Код | procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Handle, True); end;
|
|