Главная страница
    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.042 c
3-1117009791
SlavaNV
2005-05-25 12:29
2005.07.11
Вопрос про SQL и ADO. Ошибка при добавлении записи.


14-1118004056
qwerrewq
2005-06-06 00:40
2005.07.11
Как скомпилить проект?


14-1118602142
Kerk
2005-06-12 22:49
2005.07.11
ЦСКА получит Суперкубок просто так


14-1118676013
SPeller
2005-06-13 19:20
2005.07.11
Проблема с IE


1-1118836041
kot
2005-06-15 15:47
2005.07.11
Code snippets D9





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский