Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как "передать управление клавиатурой" компоненту типа 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]

очевидно искать/писать самому наследника панели, который умеет обрабатывать ввод с клавиатуры. Иначе никак.


Наверх

Титульная страница Поиск, карта сайта Написать письмо