|
|
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Пытаюсь реализовать сие, застопорился на том, что событие: DBGrid1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean) возвращает X,Y как экранные координаты, а мне их надо как-то трансформировать в координаты ячеек грида. Операция преобразования координат грида в экранные есть CellRect(), а вот в обратную сторону не могу найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 15:24 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, DBGrid.ScreenToClient(); А дальше искать по ячейкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 15:36 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Сам спросил, сам ответил MouseCoord делает то что мне нужно. И ведь проверял этот метод, а не посмотрел, что он возвращает X,Y а не Left,Top. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 15:37 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
DBGrid.ScreenToClient() это не то, это снова координаты в пикселях, а мне нужно получить индексы колонки и строки, где мыша находится при Drage. Мне необходимо установить фокус на эту ячейку, для визуализации Draga, отсюда и затык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 15:40 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, А можно озвучить изначальную задачу, которую ты пытаешься решить драг-дропом? Может оно и не нужно там? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 16:20 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Да пожалуйста. Пускай на форме есть два DBGrid и мне хотелось бы взять значение из произвольной ячейки первого грида и положить его в произвольную ячейку другого грида. Первую часть задачи - взять и выбрать куда мы кладем значение из грида источника я сделал, теперь надо сделать так что-бы при передвижении мыши по гриду-приемнику автоматом фокусировалась ячейка под мышой, что пока не происходит. Теперь вот борюсь с установкой фокуса в гриде-приемнике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 17:11 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, Ох, натягиваешь ты сову на глобус :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 17:24 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Ну почему-же? Что ненормального в том, что-бы с DBGrid работать как с обычным списком? Собственно почти получилось, оказалось надо было грид-приемник фокусить, тогда начинает работать FocusCell. Но и тут надо подшаманить, хотя фокус устанавливается, указатель записи при этом не перемещается. Интересно почему? И не могу сообразить как мне скролить грид-приемник влево и вправо при активном драге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 17:42 |
|
||
|
Drag & drop в TDBGrid
|
|||
|---|---|---|---|
|
#18+
Страдалецъ И не могу сообразить как мне скролить грид-приемник влево и вправо при активном драге. Ну если ты уже научится определять ячейку под мышкой, то просто сдвигай на один столбец, когда мышь над крайним столбцом. Только паузу сделай, чтобы пользователь успел осознать что происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 21:49 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40041657&tid=2037651]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 491ms |

| 0 / 0 |
