Форум: "Основная";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];
ВнизКак получить имя файла с перетаскиванием на форму Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c