![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как "передать управление клавиатурой" компоненту типа TPanel? [D6]
Drowsy © (2009-04-07 20:37:00)На форме разные управляющие компоненты (кнопки, меню).
И, например, есть панель, на которой PaintBox (PB).
Как сделать так, чтобы на нажатие клавиш "реагировала" панель, а не
другие компоненты (клавиша left -> PB влево, клавиша right -> PB вправо, '' ENter" -> изменение цвета.......
аноним (2009-04-08 19:10:00) [1]А порядок нельзя поменять в котором контролы будут получать фокус ?
Игорь Шевченко (2009-04-07 22:48:00) [2]Можно положить на форму TApplicationEvents и в его обработчике события OnActivate устанавливать фокус на панель, например. Можно еще как-нибудь.
Drowsy (2009-04-07 22:25:00) [3]Да, но если форма терет активность, например, если её свернуть, а потом раскрыть, то она перестаёт реагировать, т.к. ей не присвоено свойство активного компонента.
Игорь Шевченко (2009-04-07 21:36:00) [4]
> A как передать ей свойства активного контрола?
Активным контролом в момент обработки панелью нажатия на клавиши будет сама панель. Если у тебя несколько контролов, которые ты хочешь двигать, то стоит задуматься о том, как помечать такой контрол искуственно (например, как в дизайнере форм Delphi), тогда в обработчике панели надо будет найти этот помеченный контрол и управлять его свойствами.
Drowsy (2009-04-07 21:03:00) [5]Я так и сделал. A как передать ей свойства активного контрола?
Игорь Шевченко (2009-04-07 20:55:00) [6]очевидно искать/писать самому наследника панели, который умеет обрабатывать ввод с клавиатуры. Иначе никак.