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

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

TComponent и сообщения клавиатуры [D5, Win95/98, NT4]


Дремучий ©   (2002-01-03 21:44:00) 

как оптимально, без лишних телодвижений сделать чтобы
TComponent реагировал на сообщения клавиатуры т.е.
нажатия клавиш?
WM_KEYDOWN я так понимаю нужно еще дополнить визуальным
фокусом или необъязательно? Поставить хук в пределах определенного окна программы, которому принадлежит компонент?

Как правильно и оптимально?


DMN   (2002-01-04 01:15:00) [1]

А датамодуль не предназначен для реакции на клавиатуру. Его можно исползовать в серисе, например, который на клавиатуру вообще никак не реагирует. Или в консольной приладе, у которой с кнопочками свом заморочки.


vuk   (2002-01-04 00:25:00) [2]

>Да взять TWinControl и игнорировать все лишнее.
Это если нужно визуальное представление компонента. А если не нужно? А если необходимо будет этот компонент на DataModule положить? Что тогда делать с потомком WinControl?


oomneeq   (2002-01-03 23:34:00) [3]

Да взять TWinControl и игнорировать все лишнее :)


vuk   (2002-01-03 22:10:00) [4]

Сам по себе TComponent получать оконные сообщения не может, поскольку у него нет этого самого окна. Хотя, в принципе, такое окно, лучше невидимое, можно завести (как это делает TTimer, например) и ловить оконные сообщения. Насчет того поймается ли WM_KEYDOWN - не знаю, не пробовал, утверждать не буду.

Скорее всего проще будет повесить hook, но естественно, необходимо проверять - кому принадлежит компонент и есть ли куда вешать этот самый hook.


Наверх

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