Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2010, 12:44   #1
AmbaQ
Пользователь
 
Аватар для AmbaQ
 
Регистрация: 23.12.2009
Сообщений: 47
По умолчанию Drag and Drop папки

Здравствуйте! сть вопрос, как организовать драг анд дроп целой папки, в ней должны быть файлы, эти файлы должны быть занесены в лисбокс. Что необходимо сделать?
AmbaQ вне форума Ответить с цитированием
Старый 08.09.2010, 13:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что необходимо сделать?
Для начала почитать и попробовать примеры:
http://www.delphiworld.narod.ru/base/tdropper_comp.html
http://www.delphiworld.narod.ru/base...iles_list.html
http://www.delphiworld.narod.ru/base/wm_dropfiles.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2010, 13:39   #3
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Здравствуй Stilet! Неплохие статейки. Но вот в этом месте ругается:
Код:
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var
  i, amount, size: integer;
  Filename: PChar;
begin
  inherited;
  Amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255);
  for i := 0 to (Amount - 1) do
  begin
    size := DragQueryFile(Msg.WParam, i, nil, 0) + 1;
    Filename := StrAlloc(size);
    DragQueryFile(Msg.WParam, i, Filename, size);
    listbox1.items.add(StrPas(Filename));
    StrDispose(Filename);
  end;
  DragFinish(Msg.WParam);
end;
не знает, что такое wParam

Пертаскиевание нескольки файлов я уже реализовал, хотя в теме D&D, недалеко от автора топика ускакал..
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 08.09.2010, 13:42   #4
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Ну наверно нужно в uses дописать ShellAPI
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 08.09.2010, 13:50   #5
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от Marsel737 Посмотреть сообщение
Ну наверно нужно в uses дописать ShellAPI
Есть уже.. Без ШеллАпи уже здесь стопает: DragQueryFile
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 08.09.2010, 13:56   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Похоже, TMessage конфликтует с кем-то. Попробуйте добавить Windows. к нему.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 08.09.2010, 14:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
HellMercenariess
Прикольную ты себе колдобину нашел )
Вот проверено и использовано:
http://www.programmersforum.ru/showthread.php?t=16971
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2010, 14:17   #8
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
Похоже, TMessage конфликтует с кем-то. Попробуйте добавить Windows. к нему.
вышла небольшая путаница с параметрами, делаю по разным мануалам:
http://www.delphiworld.narod.ru/base/wm_dropfiles.html
http://programmersforum.ru/showthread.php?t=2721

1 WMDropFiles(var Msg: TWMDropFiles);
2 WMDropFiles(var Msg: TMessage);

В первом случае не знает что такое wParam во втором Msg.Drop
так получается или папку киадешь или файлы ??
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 08.09.2010 в 16:18.
HellMercenariess вне форума Ответить с цитированием
Старый 08.09.2010, 16:00   #9
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Ну так wParam - это ж и есть Msg.Drop.

P.S. Инопланетная нумерация снизу вверх - это специально, чтобы запутать, да?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 08.09.2010, 17:03   #10
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Как проверить, что перетаскивают - файлы или папку ?

Цитата:
Ну так wParam - это ж и есть Msg.Drop.
Компилятор думает иначе..
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 08.09.2010 в 17:08.
HellMercenariess вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
drag and drop kelty Помощь студентам 0 11.09.2009 23:00
Drag and Drop nusik Общие вопросы C/C++ 2 09.07.2009 11:09
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) Arkuz Общие вопросы Delphi 1 18.04.2009 00:15
Drag and Drop Xardas Общие вопросы Delphi 8 20.01.2008 23:09