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

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

Обработчик 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;


Наверх

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