![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка eidta на наличие цифр [D7, WinXP]
TDionis © (2005-08-03 11:46:00)Вобщем, так. Надо написать код, чтоб в поле ввода телефона нельзя было ввести ничего кроме цифр. Проблема вот в чем: номер телефона (мобилы) больше значения integer. (89151234567 > 2147483647). Поэтому этот код:
a := strtointdef(edit1.Text,0);
if a = 0 then begin
beep;
With Edit1 Do Text:=Copy(Text,1,Length(Text)-1);
edit1.SelStart := length(edit1.text);
listbox1.Items.Add(' > Неправильный ввод телефона! Только числа!');
listbox1.Perform(wm_vscroll,1,0);
end;
Будет лагать после 10 цифры. Как можно обойти это? Заранее спасибо!
TDionis (2005-08-03 12:04:00) [21]спасибо всем уже разобрался: val() и real - форева!! )))
var a:real;
b:integer;
begin
val(edit1.Text,a,b);
if b = 0 then else begin
beep;
With Edit1 Do Text:=Copy(Text,1,Length(Text)-1);
edit1.SelStart := length(edit1.text);
listbox1.Items.Add(' > Неправильный ввод телефона! Только числа!');
listbox1.Perform(wm_vscroll,1,0);
end;
Eraser (2005-08-03 11:53:00) [22]TDionis (03.08.05 11:46)
Ещё вариант - TryStrToInt.
Ega23 (2005-08-03 11:51:00) [23]for i:=1 to Length(Edit1.Text) do
if not (Edit1.Text[i] in ['0'..'9']) then
begin
ShowMessage(Edit1.Text[i]+' - не цифра!!!');
Break;
end;