![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Drag&Drop в DBGrid [D6, IB6.x]
Max Zyuzin © (2002-12-15 10:14:00)Приветствую, всех!
В общем занялся я тут одной вещью.. а именно решил сделать возможность в программе перетаскивать методом D&D записи из одного грида в другой... начитался хелпов :)
Стал делать, но сталкнулся с проблеммой -
Если у грида поставить свойство (DragMode??) dmAutomatic то перетаскивание идет нормально, только вот фиг выберешь что нить в самом гриде... как только нажимаешь левую кнопку мыши, сразу курсор стает перетаскиваемым и запись не позиционируется...
Побороть это можно поставив dmManual и повесив в обработчик события onMouseDown у грида... но вот проблемма в том, что событие срабатывает только если кликать в Тайтл в обычные стоки - фиг :((
Побороть удалось только воспользовавшись DBGridEh - в ней все работает замечательно.... А в стандартной это можно сделать???
И еще вопрос при притаскивании на новый грид чего то из старого, в событии возвращается только координаты (X,Y) компонента куда мы что то притащили... вопрос - как по умному можно достучаться до записи, на которую притащили что то из другого грида???
В смысле как по координатом спозиционироваться на записи соответствующей.
MBo (2002-12-15 10:47:00) [1]В общем да. Не знаю, подойдет ли тебе - там определялось содержимое ячейки под курсором, а удастся ли так добавить в данную ячейку, я не пробовал
Max Zyuzin (2002-12-15 10:44:00) [2]>MBo © (15.12.02 10:29)
Спасибо... В общих чертах понятно. Т.е. предлагается позиционироваться автоматичекски проcто при движении курсора по DBGrid??
MBo (2002-12-15 10:29:00) [3]для правой кнопки описано в http://delphi.mastak.ru/articles/dragndrop/index.html
Для левой так:
(dmManual)
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if DragDetect(Dbgrid1.handle,point(x,y))
then
DBGrid1.BeginDrag(true);
end;
Для определения, куда принесли - может пригодиться
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1039520901&n=0
Но, думаю, есть и лучшие решения - я в БД не спец