Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.041 c
4-1115984359
mattis
2005-05-13 15:39
2005.07.11
Каким образом получить список языков установленных в системе?


14-1118651662
syte_ser78
2005-06-13 12:34
2005.07.11
Вопрос по HTML


14-1118266167
Megabyte
2005-06-09 01:29
2005.07.11
Хороший ФАК по FIB


3-1117703774
Леонид
2005-06-02 13:16
2005.07.11
Неполучается сделать update записи.


1-1118759629
Pasha L
2005-06-14 18:33
2005.07.11
альтернатива processMessages





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский