Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.20;
Скачать: CL | DM;

Вниз

Как зделать????   Найти похожие ветки 

 
Spike_msu   (2002-05-01 22:35) [0]

Мне нужно что бы, перетаскивая мышью файл на форму, в Edit появлялся полный путь этого файла!! Подскажите!!!


 
Song   (2002-05-01 22:45) [1]

Откуда перетаскиваете?


 
Spike_msu   (2002-05-01 22:57) [2]

Например:
У меня открыто окно, ну допустим C:\GAMES\FF8\, я мышью выделяю файл FF8.EXE и перетаскиваю на свою форму. ОТПУСКАЮ кнопку мыши ми в Edit появляется "C:\games\ff8\ff8.exe"!! Вроде теперь все понятно!


 
Anatoly Podgoretsky   (2002-05-01 23:05) [3]

Обрабатывать сообщение WM_DROPFILES
Функция DragQueryFile позволит получить имя брошеного файла


 
Spike_msu   (2002-05-01 23:39) [4]

А примерчик можно??? Зарание спасибо


 
Almaz   (2002-05-02 00:11) [5]


> Spike_msu (01.05.02 23:39)


Вот примерчик:
uses ..., ShellApi;

...

TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;
end;

...

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;

procedure TForm1.WMDropFiles(var Message: TWMDropFiles);
var
FileName: array [0..MAX_PATH] of Char;
begin
if DragQueryFile(Message.Drop, 0, FileName, SizeOf(FileName)) > 0 then
Edit1.Text := FileName;
end;


Удачи.


 
Spike_msu   (2002-05-02 01:13) [6]

Спасибо!!!!


 
Spike_msu   (2002-05-08 23:38) [7]

А вот еще вопрос а как мне узнать имена всех файлов если перекидывается сразу несколько файлов!!!
Например выделили 12 файлов и перетащили на мою форму, а,например, в массиве ALLFILE лежит 12 имен файлов(или путей)!


 
Anatoly Podgoretsky   (2002-05-08 23:51) [8]

procedure TMainForm.WMDROPFILES(var Message: TWMDROPFILES);
var
Files : Longint;
I : Longint;
Buffer : array[0..MAX_PATH] of Char;
begin
Files := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0); // Get count of
files
for I := 0 to Files - 1 do begin
DragQueryFile(Message.Drop,I,@Buffer,SizeOf(Buffer)); // Get N file
ProcessFile(Buffer); // do something with the file
end;
DragFinish(Message.Drop); // end drag loop
end;



 
Spike_msu   (2002-05-09 02:26) [9]

Спасибо!!!!




Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.016 c
3-64555
Termik
2002-04-23 18:00
2002.05.20
Простой вопрос.


3-64546
Novak
2002-04-24 12:02
2002.05.20
Интересно, просто очень интересно.


14-64797
vopros
2002-04-03 14:28
2002.05.20
Сижу настроение меньше нуля. С кем пообщаться?


1-64605
3asys
2002-05-07 16:42
2002.05.20
Изменение размеров компонент в run-time


7-64854
davile
2002-02-20 19:23
2002.05.20
Kak узнать ID процесса?