Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

Как получить имя файла с перетаскиванием на форму   Найти похожие ветки 

 
AAC   (2003-04-22 14:18) [0]

Необходимо получать имя файла (полный путь), при перетаскивании файла на программу или полученного по [sent to]


 
Dms   (2003-04-22 14:26) [1]


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

type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure GetDropFile(var Mess:TMEssage); message WM_DROPFILES;
private
{ Private declarations }

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

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

procedure TForm1.GetDropFile(var Mess:TMessage);
var fname:PChar;
begin
GetMem(fname, 30);
DragQueryFile(Mess.WParam, 0, fname, 30);
Edit1.Text:=string(fname);
FreeMem(fname);
end;


 
jack128 ©   (2003-04-22 14:28) [2]

см WM_DROPFILES,DragQueryFile и т.д.


 
[lamer]Barmaglot ©   (2003-04-22 14:30) [3]

1. Используй Drag-n-Drop RTFM(простой метод): http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1017056225&n=15, либо очень сложный в yandex IDropSource, IDropTarget, IDataObject, IEnumFORMATETC и т.д.

2. То же интерфейсы, расширение оболочки Windows ищи в yandex


 
AAC   (2003-04-22 15:30) [4]

Dms, спасибо!
А как получить список из нескольких файлов попавших на форму, или анологично по SentTo


 
jack128 ©   (2003-04-22 15:36) [5]

AAC (22.04.03 15:30)
А хелп по DragQueryFile прочитать слабо??

UINT DragQueryFile(

HDROP hDrop, // handle to structure for dropped files
UINT iFile, // index of file to query
LPTSTR lpszFile, // buffer for returned filename
UINT cch // size of buffer for filename
);


 
Yanis ©   (2003-04-22 17:48) [6]

Не знаю, может не в тему но всё таки привожу пример, как запустить файл если его бросить на форму.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs,StdCtrls,

ShellAPI;



type
TForm1 = class(TForm)
Memo1: TMemo
FileNameLabel: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
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;
begin
nCount := DragQueryFile( msg.WParam, $FFFFFFFF,
acFileName, cnMaxFileNameLen);
DragQueryFile( THandle(Msg.WParam),0,Filename,SizeOf(Filename));


with FileNameLabel do begin
Caption := LowerCase(StrPas(FileName));
Memo1.Lines.LoadfromFile(Caption);
end;
DragFinish(THandle(Msg.WParam));
end;

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

procedure TForm1.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, False);
end;


end.



Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-12780
Till
2003-04-20 15:12
2003.05.05
StringGrid


14-12902
bercut
2003-04-17 17:50
2003.05.05
Всем привет заходите на сайт студентов экологического факультета


3-12629
Hedron
2003-04-15 17:17
2003.05.05
Доступ к системным таблицам Access


14-12919
lipskiy
2003-04-17 00:19
2003.05.05
32-битные иконки в стиле WinXP


14-12899
SiJack
2003-04-16 16:27
2003.05.05
ADO Access