![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
да я только учусь )))))
спасибо ребят что помогли ![]() |