Алексей
Зарегистрирован: 08.12.2003 Сообщения: 3 Откуда: Санкт-Петербург
|
Добавлено: Пн Дек 08 2003 15:09 Заголовок сообщения: Вопрос по событиям KeyPressed и KeyDown в C++ Builder |
|
|
Такой вопрос:
Я создал объект TEdit и хочу, чтобы в него можно было ввести только символы цифр и управляющие символы (по типу Ctrl+C, Ctrl+V, Shift+Insert, BackSpace, Left/Right and so on). Я не хочу использовать TMaskEdit, потому что после ввода маски курсор в поле редактирование начинает двигаться "неестественно" (к примеру если символ печатается в середине строки, то он затирает следующий - получается режим замещения, а не вставки). Это был первый вариант. Второй вариант - использовать события KeyPressed и KeyDown. Практически полностью подходит событие KeyDown - оно отлавливает все нажатия мыши, но это событие возникает уже после того, как символ введен в поле редактирования. И если я стираю неугодный символ - возникает неприятное милькание (даже если установить DoubleBuffred = true). Остается последний вариант - использовать KeyPressed; в него передается код символа типа char (а не Word, как в KeyDown). ТАК ВОТ И ВОПРОС: как по входному параметру char & Key отсеять все неугодные символы (а именно, непосредственно символы и знаки препинания, SPACE, *, & и т.д.) и оставить одни цифры и управляющие команды? |
|