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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2008, 15:17   #1
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию drag $ drop в DBGrid

В общем есть TreeView и DBGrid. На необходимо настроить перетаскивание мышкой записей DBGrid в TreeView. Сдела, поставил DragMode dmAutomatic все работает но вот только этот DBGrid перестал реагировать на событие OnClick, даже выбрать конкретную строку в DBGrid можно только правой кнопкой мыши. Поставил DragMode dmManual, для запуска Drag вручную при нажатии кнопки мыши, оказалось что событие MouseDown происходит только на чистом поле DBGrid, а не на записях.
Подскажите как можно сделать? Если с dmAutomatic, то что бы можно было выбрать запись левой кнопкой мыши?
Если с dmManual, то как запустить BeginDrag?
Заранее спасибо.
AlexandrSid вне форума Ответить с цитированием
Старый 20.05.2008, 15:34   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

При одной из них (помоему при dmManual) ты должен указать величину оттаскивания элемента после к-рой сработает драг, то есть начнется перетаскивание. Если выбрать автомат, то перетаскивание начинается сразу и события клика не происходит. Вроде так. В Дельфи справке все это есть, я делал в листбоксе перетаскивание, по справке разобрался.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 20.05.2008, 15:41   #3
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Это все понятно, но если курсор находится на записи, то событие кнопка мыши вниз не срабатывает. Конечно можно по клику зажимать Ctrl или т.п. Но самый удобный вариант для пользователя это нажатие и удержание кнопки мыши.
AlexandrSid вне форума Ответить с цитированием
Старый 20.05.2008, 15:44   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну так а я про что? Оно не срабатывает потому что сразу же срабатывает перетаскивание, а можно сделать чтобы перетаскивание начиналось после того как оттащишь на три пикселя.
Ты это указывал в программе? Я не помню просто как функция (или свойство) называется.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 20.05.2008, 15:49   #5
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

На записи он не срабатывает даже если установить DragMode - dmManual
AlexandrSid вне форума Ответить с цитированием
Старый 22.05.2008, 11:30   #6
Trech
 
Регистрация: 22.05.2008
Сообщений: 4
По умолчанию

А если поступить проще и сделать не по MouseDown, а по MouseMove?
Trech вне форума Ответить с цитированием
Старый 22.05.2008, 13:16   #7
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Гениально спасибо, я даже об этом не подумал, теперь все сделаю
AlexandrSid вне форума Ответить с цитированием
Старый 22.05.2008, 13:45   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Лучше оставь dmManual,
а при MouseDown пропиши
Код:
Grid.BeginDrag(False);
т.е. начать перемещение только при смещении курсора.
_SERGEYX_ вне форума Ответить с цитированием
Старый 22.05.2008, 13:49   #9
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Цитата:
Лучше оставь dmManual,
а при MouseDown пропиши
Мы об этом уже говорили

Цитата:
На записи он не срабатывает даже если установить DragMode - dmManual
AlexandrSid вне форума Ответить с цитированием
Старый 23.05.2008, 10:05   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

AlexandrSid, ответь на простой вопрос.
Цитата:
На записи он не срабатывает даже если установить DragMode - dmManual
При этом вид курсора меняется?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с drag-and-drop Cezar Win Api 3 19.10.2008 15:48
Drag&Drop в ListBox'ах MAKEDON Общие вопросы Delphi 3 21.08.2008 13:12
Drag&Drop по сети в Delphi vovan-brn Помощь студентам 0 28.05.2008 23:12
Drag&Drop shtuceron Общие вопросы Delphi 3 09.04.2008 19:04
Drag and Drop Xardas Общие вопросы Delphi 8 20.01.2008 23:09