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

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

Проверка на корректный ввод чисел [D6, Win2k]


ruslan_as ©   (2002-03-01 13:52:00) 

Делаю проверку на коректный ввод чисел Edit через KeyPress.
Процедура срабатывает, но на экране у меня в Edit остаеться последний неправильный знак.

Хотя если я провожу процедуру
копирования с Edit1 на другие Edit в них приходит чистое число.


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((Ord(key)<48) and (Ord(key)>48)) or ((Ord(key)>57) and (Ord(key)<>8)) then
begin
ShowMessage("Ошибка ввода!");
end;

end;


ruslan_as   (2002-03-01 16:15:00) [1]

Спасибо всем! #0 работает отлично!


SuperBizon   (2002-03-01 16:07:00) [2]

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var k:integer;
m:byte;
begin
if key<>#8 then
begin
val(key,m,k);
if k>0 then
key:=#0;
end;
end;


Kozhanov   (2002-03-01 15:57:00) [3]

> ruslan_as
А тебе обязательно посимвольно проверять ?


Sasha9   (2002-03-01 15:51:00) [4]

наверное не 0 а #0


ruslan_as   (2002-03-01 15:20:00) [5]

>NIKEL Я добавил, но теперь он вместо неверной буквы добавляет 0, но это тоже для меня помеха. Мне бы, что бы он оставил предыдущее число.

>Sasha9 спасибо, сразу не заметил.


Sasha9   (2002-03-01 14:23:00) [6]

что это за условие странное
((Ord(key)<48) and (Ord(key)>48))


[NIKEL]   (2002-03-01 14:06:00) [7]

добовляй после ShowMesage("Ошибка ввода!");
такое
Key:=0;


Наверх

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