Как запретить ввод букв?

  • Автор темы Pol
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

Pol

Как запретить ввод в окно редактирования Tedit всех символов кроме цифр.
Чтобы написать примерно такую процедуру:

procedure TForm1.Edit1Change(Sender: TObject);
begin

If Table1.IndexName :=('Number') then
.....................{строка запрета ввода букв}

end;
 
Z

zubr

Pol
Для этих целей удобнее, на мой взгляд, использовать событие KeyPress.
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If Table1.IndexName='Number' then
begin
 If not (Key in ['0'..'9']) then
 Key:=#0;
end;
end;
 
D

DeLight

Да, но зато скопировать туда текст как два пальца...
 
G

Guest

А как в MaskEdit разрешить ввод неограниченного количества цифр, ну и запретить ввод букв?
 
A

ArkaNN

А зачем собственно запрещать, может лучшше после ввода, при обработке, проверить все ли введено правильно.
Код:
try
StrToInt(Edit1.Text)
except
on EConvertError do
 ShowMessage('ОШИБКА');
end;
 
S

Spoiler

Примерный код ( даю общую идею )

y := введенный символ;
s := '1234567890';
fl := false;
for i := 1 to length( s ) do
if y <> s then fl := true

if fl = false then key := 0; ( или key := #0 )

броисть на кейдаун ( или на кей пресс посмотри должно работать )

ЗЫ за возможные неточности прошу прощенья - это только концепция
 
B

Barmutik

Только надо ещё добавить обработку DEL и BackSpace
 
B

Barmutik

Проще не мчучаться и написать например так:

Код:
 if not (Key in ['0'..'9', #8]) then
 Key := #0;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!