Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 07:51   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Восклицание Обработка исключений

В общем, пишу код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  kurs,dollar,rub:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     try
        kurs:=StrToFloat(Edit1.Text);
        dollar:=StrToFloat(Edit2.Text);
        rub:=kurs*dollar;
        Edit3.Text:=FloatToStr(rub);
     except
           if (length(Edit1.Text)=0) or (length(Edit2.Text)=0) then
           Messagedlg('Insert all parametres',mtWarning,[mbOk,mbCancel],0);
     end;
end;

end.
То есть если одна из TEdit пустая, то он должен выдавать моё сообщение об ошибке.
Однако, он этого не делает.
Он выдаёт своё сообщение:"is not valid floating point value"
Почему так?
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.06.2010, 08:24   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Вы скорее всего это "из под делфи" смотрите попробуйте отдельно ехе запустить
и зачем сравнивать длину текста
Код:
 if (length(Edit1.Text)=0) or (length(Edit2.Text)=0) then
можно и попроще
Код:
 if (Edit1.Text='') or (Edit2.Text='') then
Да и вообще не зачем эта проверка, просто если случилось исключение то выдать сообщение о некорректных данных
SERG1980 вне форума Ответить с цитированием
Старый 17.06.2010, 08:43   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
Да и вообще не зачем эта проверка
Я тоже так думаю. А если пользователь пробелы в этих полях поставил?
Тогда length не поможет и сообщение не покажется.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 17.06.2010, 08:53   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Можно вот так делать
Код:
if not TryStrToFloat(Edit1.Text,kurs)
  then //тут сообщение об ошибке или что-то другое....
if not TryStrToFloat(Edit2.Text,dollar)
  then //.....................................
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка исключений scray PHP 3 15.05.2010 15:02
Обработка исключений try... except Kati Помощь студентам 5 07.03.2010 10:18
mysql_connect - обработка исключений crazy horse PHP 15 10.02.2009 13:52
Обработка исключений ввода в TMaskedEdit joker Общие вопросы Delphi 8 11.06.2008 15:02