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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2008, 01:33   #1
kiber_punk
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 16
По умолчанию Drag'n'Drop для каждого компонента

С этим методом у меня вообще как-то всё тяжко. Есть примеры, но только для формы.
В общем есть несколько edit'ов и для каждого надо организовать приём файла (и соответственно запись в него имени перенесённого файла)

Подскажите пожалуйста решение.
kiber_punk вне форума Ответить с цитированием
Старый 28.11.2008, 07:02   #2
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Ну, в процедуре разрешения драгинга файлов можно разместить хендл любого компонента.
Остаётся выяснить, как сообщение получать...
Altera вне форума Ответить с цитированием
Старый 28.11.2008, 16:28   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

При перемещении получить точки(X,Y), того места где отпущена мышь. Затем узнать что за контрол под ним(WinAPI), если Edit нужный, закидываем в него, иначе ничего недобавляем. Вроде просто объяснил.
Alter вне форума Ответить с цитированием
Старый 28.11.2008, 19:12   #4
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Не, ну делаю же, когда значок перетаскивания появляться только над конкретным компонентом?
Altera вне форума Ответить с цитированием
Старый 28.11.2008, 19:36   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

uses ShellAPI;
WM_DROPFILES
DragAcceptFiles
(Лень скачать мой справочник? Ради бога, мучайтесь...)
mihali4 вне форума Ответить с цитированием
Старый 28.11.2008, 20:32   #6
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Сделал так
Код:
procedure TEXE_FORM2.FormCreate(Sender: TObject);
begin
   DragAcceptFiles(panel1.handle, true);
end;

procedure TEXE_FORM2.Timer1Timer(Sender: TObject);
var
m: tMsg;
FileName: array[0..256] of char;
begin
   getMessage(m, panel1.Handle, WM_dropfiles, WM_dropfiles);

   DragQueryFile(THandle(m.WParam), 0, FileName, SizeOf(Filename));
   DragFinish(THandle(m.WParam));
   caption := FileName;
end;
но прога висит до тех пор, пока не перетащишь что-нить на панель...
Altera вне форума Ответить с цитированием
Старый 29.11.2008, 03:33   #7
kiber_punk
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 16
По умолчанию

mihali4 спасибо!
Скачал ваш справочник, изучаю (:
kiber_punk вне форума Ответить с цитированием
Старый 29.11.2008, 10:16   #8
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

mihali4, а помой-му у вас там нет именно того, что спрашивает kiber_punk. Есть только общий для формы. А конкретно для каждого компонента в отдельности нет. Надо как-то перехватывать сообщение WM_dropfiles у компонентов.
Altera вне форума Ответить с цитированием
Старый 29.11.2008, 14:52   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Altera Посмотреть сообщение
mihali4, а помой-му у вас там нет именно того, что спрашивает kiber_punk. Есть только общий для формы. А конкретно для каждого компонента в отдельности нет. Надо как-то перехватывать сообщение WM_dropfiles у компонентов.
А форма - не компонент? У нас большинство визуальных компонентов - окна.
mihali4 вне форума Ответить с цитированием
Старый 29.11.2008, 17:08   #10
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

А что? Таким методом, как там с tListBox-ами?
Кинули-бы может уже нормальный исходник в тему?
Altera вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить и запомнить количество отрицательных элементов каждого столбца для матрицы A(10,10) , B (15,20) bitmania Помощь студентам 3 15.10.2008 01:06
русский хелп для компонента ICQ client xakkkkker Компоненты Delphi 1 26.08.2008 01:46
Drag'n'Drop файла в ListBox D-Snaker Компоненты Delphi 2 07.08.2008 15:51
Drag'n'drop в Гридах _SERGEYX_ БД в Delphi 1 05.09.2007 16:56