![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, подскажите пожалуйста, как проверить заполненны ли поля x:=StrToInt(Edit.text) с помощью if .
Смысл в том что должны вводиться цифры и чтобы программа не вылетала нужно проверить ввел ли данные пользователь, а также нужно проверить ввел ли пользователь цифры а не буквы. Вот не знаю как это сделать. ![]() |
#2
|
|||
|
|||
![]() Функция TryStrToInt возвращает True если преобразование удалось
Код:
if TryStrToInt(Edit1.Text, X) then begin ShowMessage('Цифры') // В Х содержится требуемо число end else ShowMessage('Что-то другое'); |
#3
|
|||
|
|||
![]() а как записать если я не знаю какое конкретно число введет пользователь?
|
#4
|
|||
|
|||
![]() Всмысле? Целое или вещественное? Для вещественного юзай TryStrToFloat
|
#5
|
|||
|
|||
![]() ага вещественное )) спасибо
![]() я счас попробую..... |
#6
|
|||
|
|||
![]() блин, не получается может поможет мой код подсказать как сделать:
Код:
procedure TForm1.Button1Click(Sender: TObject); var x:real; y:real; z:real; begin x:=StrToFloat(Edit1.Text); y:=StrToFloat(Edit2.Text); z:=(x/100)*y; if TryStrToFloat(Edit1.Text) then Label1.Caption:='Введите значения' else if y<=50 then Label1.Caption:=FloatToStr(z)+ ' / 3*10' else Label1.Caption:=FloatToStr(z)+ ' / 3*10'; if y>=55 then Label1.Caption:=FloatToStr(z)+ ' / 3*8'; if y>=60 then Label1.Caption:=FloatToStr(z)+ ' / 4*6'; if y>=65 then Label1.Caption:=FloatToStr(z)+ ' / 4*6'; if y>=70 then Label1.Caption:=FloatToStr(z)+ ' / 5*5'; if y>=75 then Label1.Caption:=FloatToStr(z)+ ' / 5*5'; if y>=80 then Label1.Caption:=FloatToStr(z)+ ' / 4*5'; if y>=85 then Label1.Caption:=FloatToStr(z)+ ' / 4*4'; if y>=90 then Label1.Caption:=FloatToStr(z)+ ' / 3*3'; if y>=95 then Label1.Caption:=FloatToStr(z)+ ' / 3*2'; if y>=100 then Label1.Caption:=FloatToStr(z)+ ' / 2*2'; Последний раз редактировалось Admin, 19.10.2008 в 13:17. |
#7
|
|||
|
|||
![]() Во ты кадр))) Сначалы пытаешься конвертнуть, а потом проверяешь О_о
Код:
var x, y, z: Double; begin if not TryStrToFloat(Edit1.Text, x) then begin Label1.Caption:='Введите значения в Edit1'; Exit; end; if not TryStrToFloat(Edit2.Text, y) then begin Label1.Caption:='Введите значения в Edit2'; Exit; end; z:=(x/100)*y; прочая лабуда ПОЛЬЗУЙСЯ ТЭГАМИ!!! |
#8
|
|||
|
|||
![]() Код:
procedure TForm1.Button1Click(Sender: TObject); var x:real; y:real; z:real; ch:integer; begin try x:=StrToFloat(Edit1.Text); y:=StrToFloat(Edit2.Text); z:=(x/100)*y; except ShowMessage('некорректные данные'); ch:=5; end; If ch=5 then Begin if y<=50 then Label1.Caption:=FloatToStr(z)+ ' / 3*10' else Label1.Caption:=FloatToStr(z)+ ' / 3*10'; if y>=55 then Label1.Caption:=FloatToStr(z)+ ' / 3*8'; if y>=60 then Label1.Caption:=FloatToStr(z)+ ' / 4*6'; if y>=65 then Label1.Caption:=FloatToStr(z)+ ' / 4*6'; if y>=70 then Label1.Caption:=FloatToStr(z)+ ' / 5*5'; if y>=75 then Label1.Caption:=FloatToStr(z)+ ' / 5*5'; if y>=80 then Label1.Caption:=FloatToStr(z)+ ' / 4*5'; if y>=85 then Label1.Caption:=FloatToStr(z)+ ' / 4*4'; if y>=90 then Label1.Caption:=FloatToStr(z)+ ' / 3*3'; if y>=95 then Label1.Caption:=FloatToStr(z)+ ' / 3*2'; if y>=100 then Label1.Caption:=FloatToStr(z)+ ' / 2*2'; end else Exit; end; end. Последний раз редактировалось dem1d, 18.10.2008 в 23:56. |
#9
|
|||
|
|||
![]() да я только учусь )))))
спасибо ребят что помогли ![]() |