|
|
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
У меня на форме 2 DBGrid(а), один грид справа, другой, соответственно - слева. Моя задача сделать так, чтобы при нахождении курсора на крайей правой колонке левого грида, принажатии клавиши VK_RIGHT грид справа становился активным, а при нахождении курсора на крайней левой колонке правого грида, при нажатии клавиши VK_LEFT, активным делался бы левый грид. if (colNum = 10) AND (Key = VK_RIGHT) then RightGrid.SetFocus; if (colNum = 0) AND (Key = VK_LEFT) then LeftGrid.SetFocus; Проблема с правым гридом. Если я его делаю активным вручную мышью, то нажатие VK_LEFT делает левый грид активным, а если правый грид сделался активный посредством клавиши VK_RIGHT - ничего не присходит - nothing happens... Я даже пытался програмно щелкать мышью на правом гриде, все равно не работает. Работает VT_LEFT только тогда, когда я делаю активным правый грид вручную.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:01 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
noram, Причина в том, как вы определяете colNum noram Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:24 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
А где ваш код написан, в каком событии ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:24 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
colNum := RightGrid.SelectedIndex; Для чистоты эксперемента я даже делал справа и слева по одной колонке - colNum = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:33 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
То есть Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:36 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
noram colNum := RightGrid.SelectedIndex; Для чистоты эксперемента я даже делал справа и слева по одной колонке - colNum = 0 Как бы, если вы хотите переход из одного грида в другой, то и colNum нужно высчитывать по разному: если в фокусе LeftGrid, то colNum := LeftGrid.SelectedIndex, если правый - colNum := RightGrid.SelectedIndex Ну и обработку событий делать в зависимости от грида в фокусе.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:38 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
Естественно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:42 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
Если бы ошибка была в этом, то и при ручном выделении RightGrid VL_LEFT не работала бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:43 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
Извините, в предыдущем примере я должен был написать - Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 13:47 |
|
||
|
Активация контрола на форме
|
|||
|---|---|---|---|
|
#18+
DimaBR, спасибо! Все заработало, правда в чем была проблема, я так и не понял. Дела в том, что слева направо я переходил через OnDrawColumnCell, а справа налево через OnKeyDown. Исправил левый грид на OnKeyDownи все заработало.... Ваш пример показал, как надо было делать... Еще раз спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2019, 14:00 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2039444]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 456ms |

| 0 / 0 |
