Вниз
Скачать: CL | DM;

Как мне узнать количество, выделенных файлов?   Найти похожие ветки 

← →
Долька   (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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
14-1118355696
Квест
2005-06-10 02:21
2005.07.11
Какие файлы и ключи реестра нужно сохранить при переустановке Вин


14-1116828273
Priest
2005-05-23 10:04
2005.07.11
Кто-нибудь качал Update 3 для D2005


9-1112012773
qwe
2005-03-28 16:26
2005.07.11
GlScene - target object


14-1118244161
WondeRu
2005-06-08 19:22
2005.07.11
Зачем нужен КПК?


1-1118618322
01
2005-06-13 03:18
2005.07.11
Как сохранить структуру в файл




   Наверх