Проверка символа в OnKeyPress
От: vitarl Россия  
Дата: 23.12.05 23:09
Оценка:
Здравствуйте.
Возможно, мой вопрос окажется простым , но у меня не получилось найти ответ :
В программе(C++Builder6) есть некое поле для ввода. В это поле должно вводиться только число. На Delphi мне порекомендовали вот такой приёмчик :

PROCEDURE TLab2.Edit1KeyPress(Sender: TObject; VAR Key: Char);
BEGIN
  CASE Key OF
    #48..#57,#8:;
  ELSE Key:=#0;
  END;
END;


Мне интересно собственно, как это переделать на C?(через swith выглядит как-то коряво, да ещё и компилятор ругается)

P. S. Применяться данная процедура будет не только на Edit`ах(ещё, например в StringGreed`ах), так что MaskEdit использовать не получится.
P. P. S. Найти ответ на вебе я, конечно, пытался, но по любому вопросу, связанному с символами вываливается столько мусора...
P. P. P. S. #8 — код BackSpace, в котором основная загвоздка(были какие-то варианты, но с ним они не работали ) и заключается.
P. P. P. P. S. Может пригодится: это — текст проги, по которой я искал коды этих символов:
PROGRAM P;
USES CRT;
VAR Key: Char;
BEGIN
  ClrScr;
  WHILE True DO BEGIN
    Key:=ReadKey;
    IF (Key=#0) AND KeyPressed THEN Key:=ReadKey;
    WriteLn(Key,' - #',ORD(Key));
    IF Key=#27 THEN Exit;
  END;
END.


26.12.05 13:04: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.