02.08.2011, 22:26
|
|
Администратор
|
|
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,532
Версия Delphi: Delphi 7
Репутация: выкл
|
|
[Исходник] - Files: drag & drop
Пример перетаскивания файла в окно программы и отображения его содержимого в компоненте Memo.
Код:
unit Fs;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs,StdCtrls, ShellAPI;
type
TForm1 = class(TForm)
Memo1: TMemo;
Label3: TLabel;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
protected
{Это и есть самая главная процедура}
procedure WMDropFiles(var Msg: TMessage); message wm_DropFiles;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMDropFiles(var Msg: TMessage);
var
FileName: array[0..256] of char;
Count: integer;
cnMaxFileNameLen: cardinal;
begin
// получаем количество файлов (просто пример)
Count:=DragQueryFile(msg.WParam,$FFFFFFFF,
FileName,cnMaxFileNameLen);
// получаем имя первого файла
DragQueryFile(THandle(Msg.WParam),
0,//это номер файла
Filename,SizeOf(Filename)) ;
// открываем его
with Label3 do
begin
Caption:=LowerCase(StrPas(FileName));
Memo1.Lines.LoadfromFile(Caption);
end;
// отдаем сообщение о завершении процесса
DragFinish(THandle(Msg.WParam));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// говорим Windows, что на нас можно бросать файлы
DragAcceptFiles(Handle, True);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// закрываем за собой дверь
DragAcceptFiles(Handle, False);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
end.
|