Главная страница
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.026 c
8-1110943876
megabyte-ceercop
2005-03-16 06:31
2005.07.11
Небольшие паузы в начале и в конце mp3 трека.


14-1118160113
ArMellon
2005-06-07 20:01
2005.07.11
Песни Led Zeppelin


1-1119358062
Jolik
2005-06-21 16:47
2005.07.11
Отлов обработанных исключений...


1-1119514732
Lera
2005-06-23 12:18
2005.07.11
Хинты.


8-1110969007
Tankist
2005-03-16 13:30
2005.07.11
Как записать звук, и проиграть?