Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Drag'n'Drop для файлов из проводника с использованием OnDragOver [D6, 95/98]


Dr. Genius ©   (2006-10-16 11:19:00) 

Здравствуйте!

Нужен пример Drag'n'Drop'а (для файлов из проводника) с использованием OnDragOver, т.к. мне надо манипулировать с Boolean-переменной Accept.


DVM   (2006-10-17 15:48:00) [1]


> Окся   (17.10.06 14:43) [3]

Не надо советовать то, в чем не очень разбираешься.
WM_DROPFILES приходит окну только когда файлы уже "бросили на окно". Узнать, что это за файлы до этого момента нельзя. Написано же:

> т.к. мне надо манипулировать с Boolean-переменной Accept.


> Dr. Genius   (17.10.06 11:37) [2]
>
> > Через OLE Drag'n'Drop надо
>
>
> Как?

Реализовать интерфейсы IDropTarget и т.д.

http://podgoretsky.com/ftp/Docs/Delphi/D3/D3ProgLib/index.htm

3, 4 главы. Правда там ошибки есть.


Окся   (2006-10-17 14:43:00) [2]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, shellapi;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   procedure FormCreate(Sender: TObject);
 private
  procedure WMDropFiles(var Message: TMsg); message WM_DROPFILES;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

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

procedure TForm1.WMDropFiles;
var H,x,j:integer;
   s:array[0..255] of char;
   c:string;
BEGIN
h:=Message.message;
x:=DragQueryFile(h,$0FFFFFFFF,s,255);
DragQueryFile(h,0,s,255);
c:=string(s);
Memo1.Lines.Add(c);
for j:=1 to x-1 do
begin
DragQueryFile(h,j,s,255);
c:=string(s);
Memo1.Lines.Add(c);
end;
END;

end.


Dr. Genius   (2006-10-17 11:37:00) [3]


> Через OLE Drag'n'Drop надо


Как?


DVM   (2006-10-16 18:42:00) [4]


> с использованием OnDragOver

Не выйдет. Через OLE Drag'n'Drop надо


Наверх

Титульная страница Поиск, карта сайта Написать письмо