C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Tab и Edit
VovaN
Отправлено: 24.05.2005, 11:08


Дежурный стрелочник

Группа: Участник
Сообщений: 72



Подскажите, как перехватить нажатие клавиши Tab, если курсор установлен внутри TEdit.
Обработчики KeyDown KeyPress не помогают.

Sl@Sh
Отправлено: 24.05.2005, 18:34


Мастер участка

Группа: Участник
Сообщений: 383



Можно использовать GetAsyncKeyState(VK_TAB), если клавиша была нажата, функция возвратит не нулевой результат. Однако в этом способе вы должны проверять нажата клавиша в нужном эдите или нет.

P.S.: OnKeyPress должен работать, может там что-то не так вы написали ?
AVC
Отправлено: 25.05.2005, 09:15


Ветеран

Группа: Модератор
Сообщений: 1583



При нажатии TAB сообщение до TEdit не доходит. Даже WndProc формы его не ловит (я не смог заставить). Лично я вижу четыре пути решения
1. Если возможно — наследник от TEdit и оьработка сообщений
2. Если получится — перехват в Application->OnMessage
3. Hook для этого приложения.
4. Поизучать исходники компонентов и найти альтернативу.

Вариант — Ctrl/TAB доходит нормально.

Вернуться в Вопросы программирования в C++Builder