Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.10.2008, 22:58
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию Как проверить Edit.Text на заполненность с помощью if ?

Здравствуйте, подскажите пожалуйста, как проверить заполненны ли поля x:=StrToInt(Edit.text) с помощью if .

Смысл в том что должны вводиться цифры и чтобы программа не вылетала нужно проверить ввел ли данные пользователь, а также нужно проверить ввел ли пользователь цифры а не буквы.

Вот не знаю как это сделать.
Ответить с цитированием
  #2  
Старый 18.10.2008, 23:09
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Функция TryStrToInt возвращает True если преобразование удалось
Код:
 if TryStrToInt(Edit1.Text, X) then
 begin
  ShowMessage('Цифры')
// В Х содержится требуемо число
 end
 else
  ShowMessage('Что-то другое');
Ответить с цитированием
  #3  
Старый 18.10.2008, 23:20
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

а как записать если я не знаю какое конкретно число введет пользователь?
Ответить с цитированием
  #4  
Старый 18.10.2008, 23:24
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Всмысле? Целое или вещественное? Для вещественного юзай TryStrToFloat
Ответить с цитированием
  #5  
Старый 18.10.2008, 23:26
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

ага вещественное )) спасибо
я счас попробую.....
Ответить с цитированием
  #6  
Старый 18.10.2008, 23:32
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

блин, не получается может поможет мой код подсказать как сделать:
Код:
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  
Старый 18.10.2008, 23:39
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Во ты кадр))) Сначалы пытаешься конвертнуть, а потом проверяешь О_о
Код:
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  
Старый 18.10.2008, 23:40
dem1d dem1d вне форума
Прохожий
 
Регистрация: 23.09.2008
Сообщения: 5
Репутация: 10
По умолчанию

Код:
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  
Старый 18.10.2008, 23:56
joomler joomler вне форума
Новичок
 
Регистрация: 11.10.2008
Сообщения: 88
Репутация: 10
По умолчанию

да я только учусь )))))

спасибо ребят что помогли
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025