Реализовать "перетаскивание" файлов |
ОГЛАВЛЕНИЕ    HOME  MAIL |
В Windows распространен механизм "перетаскивания" файлов мышью. Этот пример добавляет в список имена файлов, перенесенных в программу. Функция DragAcceptFiles разрешает или запрещает переносить файлы в вашу программу, DragQueryFile(HF, $FFFFFFFF, nil, 0) возвращает количество файлов, а DragQueryFile(HF, i, s, 1024) возвращает имя файла номер i. ... private procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; ... uses ShellAPI; procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var HF: THandle; s: array [0..1023] of char; i, FileCount: integer; begin HF := Msg.Drop; FileCount := DragQueryFile(HF, $FFFFFFFF, nil, 0); for i := 0 to FileCount - 1 do begin DragQueryFile(HF, i, s, 1024); if FileExists(s) then ListBox1.Items.Add(s) else ListBox1.Items.Add(s + ' - error'); end; DragFinish(HF); end; procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Form1.Handle, true); end; procedure TForm1.FormDestroy(Sender: TObject); begin DragAcceptFiles(Form1.Handle, false); end; email: delphi4all@narod.ru |