Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > перетаскивание файла


Автор: Михалыч 23.3.2013, 11:21
Подскажите как сделать drag and drop файла?
Нашел вот это: 
Работает хорошо, но нужно сделать что бы принимала не вся форма, а только Panel .
И не все файл ,а только с расширением .exe
   
Код

  protected
    procedure WMDropFiles(var Msg: TMessage); message wm_DropFiles;

procedure form.FormCreate(Sender: TObject);
begin
 DragAcceptFiles(Handle, true);
end

procedure form.WMDropFiles(var Msg: TMessage);
var
   Filename: array[0 .. 256] of Char;
   Count   : integer;
   Fname:string;
begin
 DragQueryFile( THandle(Msg.WParam), 0, { номер файла } Filename,SizeOf(Filename) ) ;
  DragFinish(THandle(Msg.WParam));
   end;

Автор: Poseidon 27.3.2013, 14:43
Цитата(Михалыч @  23.3.2013,  11:21 Найти цитируемый пост)
Работает хорошо, но нужно сделать что бы принимала не вся форма, а только Panel .

В OnCreate формы ты как-раз и указываешь Handle того, что должно принимать. У тебя там Handle формы. Хочешь что бы принимала только панель?
Код

procedure form.FormCreate(Sender: TObject);
begin
 DragAcceptFiles(Panel1.Handle, true);
end


Цитата(Михалыч @  23.3.2013,  11:21 Найти цитируемый пост)
И не все файл ,а только с расширением .exe
При получении файла сверяй его расширение

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)