Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Drag & drop в TDBGrid / 9 сообщений из 9, страница 1 из 1
04.02.2021, 15:24
    #40041636
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Пытаюсь реализовать сие, застопорился на том, что событие:
DBGrid1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean)
возвращает X,Y как экранные координаты, а мне их надо как-то трансформировать в координаты ячеек грида.
Операция преобразования координат грида в экранные есть CellRect(), а вот в обратную сторону не могу найти.
...
Рейтинг: 0 / 0
04.02.2021, 15:36
    #40041650
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Страдалецъ,

DBGrid.ScreenToClient();
А дальше искать по ячейкам.
...
Рейтинг: 0 / 0
04.02.2021, 15:37
    #40041652
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Сам спросил, сам ответил MouseCoord делает то что мне нужно. И ведь проверял этот метод, а не посмотрел, что он возвращает X,Y а не Left,Top.
...
Рейтинг: 0 / 0
04.02.2021, 15:40
    #40041657
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
DBGrid.ScreenToClient() это не то, это снова координаты в пикселях, а мне нужно получить индексы колонки и строки, где мыша находится при Drage. Мне необходимо установить фокус на эту ячейку, для визуализации Draga, отсюда и затык.
...
Рейтинг: 0 / 0
04.02.2021, 16:20
    #40041694
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Страдалецъ,

А можно озвучить изначальную задачу, которую ты пытаешься решить драг-дропом? Может оно и не нужно там?
...
Рейтинг: 0 / 0
04.02.2021, 17:11
    #40041730
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Да пожалуйста. Пускай на форме есть два DBGrid и мне хотелось бы взять значение из произвольной ячейки первого грида и положить его в произвольную ячейку другого грида. Первую часть задачи - взять и выбрать куда мы кладем значение из грида источника я сделал, теперь надо сделать так что-бы при передвижении мыши по гриду-приемнику автоматом фокусировалась ячейка под мышой, что пока не происходит. Теперь вот борюсь с установкой фокуса в гриде-приемнике.
...
Рейтинг: 0 / 0
04.02.2021, 17:24
    #40041740
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Страдалецъ,

Ох, натягиваешь ты сову на глобус :(
...
Рейтинг: 0 / 0
04.02.2021, 17:42
    #40041758
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Ну почему-же? Что ненормального в том, что-бы с DBGrid работать как с обычным списком?
Собственно почти получилось, оказалось надо было грид-приемник фокусить, тогда начинает работать FocusCell.
Но и тут надо подшаманить, хотя фокус устанавливается, указатель записи при этом не перемещается. Интересно почему?
И не могу сообразить как мне скролить грид-приемник влево и вправо при активном драге.
...
Рейтинг: 0 / 0
04.02.2021, 21:49
    #40041841
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag & drop в TDBGrid
Страдалецъ
И не могу сообразить как мне скролить грид-приемник влево и вправо при активном драге.

Ну если ты уже научится определять ячейку под мышкой, то просто сдвигай на один столбец, когда мышь над крайним столбцом. Только паузу сделай, чтобы пользователь успел осознать что происходит.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Drag & drop в TDBGrid / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]