скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Drag and Drop c Win95 Explorer 2



Автор: Aleksey


{Так можно заставить окно принимать файлы, перетаскиваемые из проводника}
{ОБЯЗАТЕЛЬНО ПОМЕСТИТЕ В СЕКЦИЮ 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;







Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook