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

  • Автор темы Pol
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P
#1
Как запретить ввод в окно редактирования Tedit всех символов кроме цифр.
Чтобы написать примерно такую процедуру:

procedure TForm1.Edit1Change(Sender: TObject);
begin

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

end;
 
Z

zubr

#2
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

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

Guest

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

ArkaNN

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

Spoiler

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

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

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

Barmutik

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

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