Форум: "WinAPI";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизКак мне узнать количество, выделенных файлов? Найти похожие ветки
← →
Долька (2005-05-12 07:51) [0]Объяню доступно:
procedure TForm1.WMDropFiles(var Msg: TMessage);
Var
Filename: array[0..256] of char;
begin
DragQueryFile(THandle(Msg.WParam),0,Filename,SizeOf Filename));
Memo1.lines.loadfromfile(Filename);
DragFinish(THandle(Msg.WParam));
end;
вот такая есть чудо процедура.DragQueryFile(THandle(Msg.WParam),0,Filename,SizeOf Filename));
в этой строке 0 указывает на номер файла, т.е. если я выделю несколько файлов и перетащю к себе в Tmemo, к примеру, то получу содержимое файла с указанным номером.
В связи с этим встаёт вопрос:
Как определить количество выделенных файлов при перетаскивании, чтобы можно было прочитать их попорядку: сначала первый, потом второй и т.д.?
← →
MBo © (2005-05-12 08:13) [1]If the index value is 0xFFFFFFFF, the return value is a count of the dropped files.
← →
Antonn © (2005-05-12 08:15) [2]var Message: TWMDropFiles
Кол-во := DragQueryFile(Message.drop, $FFFFFFFF, nil, 0);
Оно?
← →
Долька (2005-05-12 10:16) [3]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI;
type
TForm1 = class(TForm)
Memo1: TMemo;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
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;
begin
edit1.text:=inttostr(DragQueryFile(Message.drop, $FFFFFFFF, nil, 0));
DragQueryFile(THandle(Msg.WParam),1,Filename,SizeOf(Filename));
// Теперь в переменной Filename будет находиться путь
// к перетаскиваемому файлу. Далее вы можете выполнять с этим файлом, зная
// его путь, все что угодно.
//Например: Загрузить его в Memo
Memo1.lines.loadfromfile(Filename);
//Сообщаем об окончании претаскивания
DragFinish(THandle(Msg.WParam));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle,True);
end;
end.
вот код программы!
На форме: tmemo и tedit
Значения в tedit получаются астрономические, что не так то?
← →
GuAV © (2005-05-12 12:37) [4]
> WMDropFiles(var Msg: TMessage);
> Message.drop,
Не понятно, откуда Message.drop, если сообщение объявлено как TMessage.
В случае TMessage DragQueryFile(Message.WParam, $FFFFFFFF, nil, 0));
← →
Antonn © (2005-05-12 13:13) [5]GuAV © (12.05.05 12:37) [4]
я указал для кода из [2], при использовании с Msg: TMessage, получается [3].
Долька
используй не (var Msg: TMessage), а (var Message: TWMDropFiles)
или смотри [4]
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c