Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.059 c
14-1118141406
Difficult
2005-06-07 14:50
2005.07.11
Флюгер


1-1119417521
kyn66
2005-06-22 09:18
2005.07.11
Параметр в строку SQL


14-1118524157
u-12
2005-06-12 01:09
2005.07.11
Помогите разобраться с датакабелем Самсунга


14-1118376395
Stocker
2005-06-10 08:06
2005.07.11
Документация по Installshield 3.х настройка альяса BDE


3-1117285895
Darkmaster
2005-05-28 17:11
2005.07.11
XML и сохранение базы