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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2011, 16:36   #1
ilushka2306
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 48
По умолчанию Совсем простенькая программка, про проценты

Не хочет считать проценты sum:=((s*0.17)+s)
Подскажите, пожалуйста, в чем дело?
Код:
var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Clear;
  edit2.Clear;
  edit2.Visible := False;
  label3.Visible := False;
  edit3.Clear;
  Tradio.Checked:=False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  s,k,sum:real;
begin
  s:=StrToFloat(edit1.Text);
  k:=StrToFloat(edit2.text);
  begin
  if  TRadio.Checked = False then
      sum:=((s*0.17)+s)
  else
    sum:=k*((s*0.17)+s);
  end;
  Edit3.Text:=(FloatToStr(sum));
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const Digit: Set of Char=['0' .. '9'];
begin
if not (Key in Digit) then
 Key:=#0;
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
const Digit: Set of Char=['0' .. '9'];
begin
if not (Key in Digit) then
 Key:=#0;
end;

procedure TForm1.TRadioClick(Sender: TObject);
begin
  label3.Visible:=True;
  edit2.Visible:=true;
end;

end.

Последний раз редактировалось Stilet; 02.04.2011 в 17:01.
ilushka2306 вне форума Ответить с цитированием
Старый 02.04.2011, 17:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А как проявляется ошибка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2011, 17:13   #3
ilushka2306
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 48
По умолчанию

ilushka2306 вне форума Ответить с цитированием
Старый 02.04.2011, 17:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
s:=StrToFloatDef(edit1.Text,0);
И так далее.
По крайней мере ошибку выбивать не будет.
Ну и конечно же вводи правильное число в Эдиты
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2011, 17:30   #5
Наки
Пользователь
 
Аватар для Наки
 
Регистрация: 03.11.2010
Сообщений: 24
По умолчанию

В обсчем, оно ругается при преобразовании типов в строке k:=StrToFloat(edit2.text);
Зачем ты очищаешь и прячешь Edit2 в процедуре TForm1.Button1Click? Потому и выводится ошибка. Пустая строка в тип real не переводится!
Я не волшебница, я только учусь
Наки вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проценты Farmokolog Общие вопросы Delphi 1 19.02.2011 16:29
Проценты boomeer Помощь студентам 4 26.10.2010 21:38
Нужна простенькая программка...:P Nexen Фриланс 6 16.01.2009 18:16
Программка про записи на Паскале.... Solny6ko YasnoE Помощь студентам 3 25.05.2007 04:17