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

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

Проверка eidta на наличие цифр [D7, WinXP]


Страницы:   1 2

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;


Страницы:   1 2

Наверх

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