![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработчик KeyPress [D5, Win2k]
Виталий_2002 © (2002-02-25 11:01:00)Здравствуйте. У меня маленький вопрос: как сделать так чтобы при вводе данных например в Edit при нажатии недопустимых клавиш курсор просто не двигался?
greenrul (2002-02-25 18:51:00) [1]Ну как тогда Key=101 в строку "A" перевести?
[NIKEL] (2002-02-25 15:21:00) [2]2greenrul
чё то не понятно :)
как перевести? VK_CONTROL, VK_PAUSE - это всё именнованные константы
можно описывать как угодно
клавиша F1 в десятичном представлении выглядит как 112, в hex выглядит как 0x70, а в символьном как VK_F1
лучше использовать всегда hex-предстовление или десятичное
VictorT (2002-02-25 12:55:00) [3]2 [NIKEL]
Маленькое уточнение: надо ещё разрешить ввод символов с кодом меньше 32 (пробел), иначе не будут работать некоторые управляющие клавиши, например, стрелки. Приведённый тобой код у меня реализован так:
if (((Key"9")) && (Key >= " "))
Key = 0;
greenrul (2002-02-25 12:27:00) [4]Вопрос не в кассу - как Key переверсти в
1. Ctrl,Alt,A,B
2. VK_CONTROL, VK_PAUSE
то есть из всяких 101,13,89 в это
[NIKEL] (2002-02-25 12:18:00) [5]а чтоб не париться в бесконечных проверках советую сделать так
допустим ты хочешь чтоб надо было вводить тока цифры:
Set <char,"0", "9"> Dig;
Dig << "0" << "1" << "2" << "3" << "4" << "5" << "6" << "7"
<< "8" << "9";//заносим в множество все допустимые символы
//и элигантная проверка
if (! Dig.Contains(Key))
Key = 0;//подменям недопустимый символ нулём(он нигде не появиться)
Виталий_2002 (2002-02-25 12:12:00) [6]пасибо ))
VictorT (2002-02-25 12:06:00) [7]if Key = недопустимый символ
then Key := 0;