Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #31  
Старый 08.04.2012, 07:57
sandysman sandysman вне форума
Новичок
 
Регистрация: 27.03.2012
Сообщения: 60
Репутация: 10
По умолчанию

У меня появился такой вопрос, использую процедуру procedure Dropfile (var msg : TWMDropFiles) ; message WM_Dropfiles;
в listbox, в процедуре написал:
Код:
procedure TForm1.Dropfile(var msg: TWMDropFiles);
var cfileName :array [0..Max_path] of char;
begin
   try
   if Dragqueryfile (Msg.Drop, 0, CfileName, Max_path)>0 then
   begin
   listbox1.Items.Insert(0,extractfilename(Cfilename));
   listbox2.Items.Insert(0,Cfilename);
   Msg.Result:=0;
   end;
  Finally;
   DragFinish(msg.Drop);
   end;
end;
Админ: пользуемся тегами! при рецедиве - бан!

Для того чтобы переносить файлы mp3 в listboX при помощи простого перетаскивания мыши, по одному файлу все работает нормально, но если попробовать перенести несколько файлов, то переносится все равно один. Дак возникает вопрос, а как реализовать перенос нескольких файлов(множество)? наставте на путь истинный)

Последний раз редактировалось Admin, 08.04.2012 в 13:11.
Ответить с цитированием
  #32  
Старый 08.04.2012, 10:13
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

получаем количество файлов , потом в цикле выдергиваем пути к файлам, например

Код:
var
   cfileName :array [0..Max_path] of char;
   CountFile,
   i:integer;
begin
try
   CountFile:=Dragqueryfile (Msg.Drop, $FFFFFFFF, CfileName, Max_path);
   for i:=0 to SountFile-1 do
     if Dragqueryfile (Msg.Drop, i, CfileName, Max_path)>0 then
    begin
       listbox1.Items.Insert(0,extractfilename(Cfilename) );
       listbox2.Items.Insert(0,Cfilename);
      Msg.Result:=0;
   end;
Finally;
DragFinish(msg.Drop);
end;
end;
можно, конечно, пойти дальше и еще запрашивать размер буфера, но как показывает практика MAX_PATH в большинстве случаев нормально (на то он и MAX_PATH)

Последний раз редактировалось cotseec, 08.04.2012 в 10:19.
Ответить с цитированием
Этот пользователь сказал Спасибо cotseec за это полезное сообщение:
sandysman (08.04.2012)
  #33  
Старый 08.04.2012, 10:45
sandysman sandysman вне форума
Новичок
 
Регистрация: 27.03.2012
Сообщения: 60
Репутация: 10
Радость

Спасибо, как-то я сам не додумался))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter