powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Активация контрола на форме
11 сообщений из 11, страница 1 из 1
Активация контрола на форме
    #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
Активация контрола на форме
    #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
Активация контрола на форме
    #39818765
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где ваш код написан, в каком событии ?
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818781
noram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
colNum := RightGrid.SelectedIndex;
Для чистоты эксперемента я даже делал справа и слева по одной колонке - colNum = 0
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818783
noram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть
Код: pascal
1.
 if Key = VK_RIGHT then RightGrid.SetFocus;
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818785
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noram colNum := RightGrid.SelectedIndex;
Для чистоты эксперемента я даже делал справа и слева по одной колонке - colNum = 0
Как бы, если вы хотите переход из одного грида в другой, то и colNum нужно высчитывать по разному: если в фокусе LeftGrid, то colNum := LeftGrid.SelectedIndex, если правый - colNum := RightGrid.SelectedIndex
Ну и обработку событий делать в зависимости от грида в фокусе..
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818791
noram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Естественно...
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818793
noram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если бы ошибка была в этом, то и при ручном выделении RightGrid VL_LEFT не работала бы...
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818794
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818798
noram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, в предыдущем примере я должен был написать -
Код: pascal
1.
2.
3.
If Key = VK_LEFT then
       LeftGrid.SetFocus;
  end;
...
Рейтинг: 0 / 0
Активация контрола на форме
    #39818804
noram
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBR, спасибо!
Все заработало, правда в чем была проблема, я так и не понял.
Дела в том, что слева направо я переходил через OnDrawColumnCell, а справа налево через OnKeyDown. Исправил левый грид на OnKeyDownи все заработало.... Ваш пример показал, как надо было делать... Еще раз спасибо...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Активация контрола на форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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