Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Активация контрола на форме / 11 сообщений из 11, страница 1 из 1
27.05.2019, 13:01
    #39818746
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
У меня на форме 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 только тогда, когда я делаю активным правый грид вручную....
...
Рейтинг: 0 / 0
27.05.2019, 13:24
    #39818764
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
noram,

Причина в том, как вы определяете colNum
noram
Код: pascal
1.
2.
3.
4.
if (colNum = 10) AND (Key = VK_RIGHT) then
  RightGrid.SetFocus;
if (colNum = 0) AND (Key = VK_LEFT) then
  LeftGrid.SetFocus;
...
Рейтинг: 0 / 0
27.05.2019, 13:24
    #39818765
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
А где ваш код написан, в каком событии ?
...
Рейтинг: 0 / 0
27.05.2019, 13:33
    #39818781
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
colNum := RightGrid.SelectedIndex;
Для чистоты эксперемента я даже делал справа и слева по одной колонке - colNum = 0
...
Рейтинг: 0 / 0
27.05.2019, 13:36
    #39818783
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
То есть
Код: pascal
1.
 if Key = VK_RIGHT then RightGrid.SetFocus;
...
Рейтинг: 0 / 0
27.05.2019, 13:38
    #39818785
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
noram colNum := RightGrid.SelectedIndex;
Для чистоты эксперемента я даже делал справа и слева по одной колонке - colNum = 0
Как бы, если вы хотите переход из одного грида в другой, то и colNum нужно высчитывать по разному: если в фокусе LeftGrid, то colNum := LeftGrid.SelectedIndex, если правый - colNum := RightGrid.SelectedIndex
Ну и обработку событий делать в зависимости от грида в фокусе..
...
Рейтинг: 0 / 0
27.05.2019, 13:42
    #39818791
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
Естественно...
...
Рейтинг: 0 / 0
27.05.2019, 13:43
    #39818793
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
Если бы ошибка была в этом, то и при ручном выделении RightGrid VL_LEFT не работала бы...
...
Рейтинг: 0 / 0
27.05.2019, 13:44
    #39818794
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
...
Рейтинг: 0 / 0
27.05.2019, 13:47
    #39818798
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
Извините, в предыдущем примере я должен был написать -
Код: pascal
1.
2.
3.
If Key = VK_LEFT then
       LeftGrid.SetFocus;
  end;
...
Рейтинг: 0 / 0
27.05.2019, 14:00
    #39818804
noram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Активация контрола на форме
DimaBR, спасибо!
Все заработало, правда в чем была проблема, я так и не понял.
Дела в том, что слева направо я переходил через OnDrawColumnCell, а справа налево через OnKeyDown. Исправил левый грид на OnKeyDownи все заработало.... Ваш пример показал, как надо было делать... Еще раз спасибо...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Активация контрола на форме / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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