Евгений
Евгений

Помогите пожалуйста решить проблему с delphi.

Вот написал конвертер валют [ссылка заблокирована по решению администрации проекта]
и как вы видите он считает 2-ю строчку, но!
в остальных строчках выдает ошибку: [ссылка заблокирована по решению администрации проекта]
И как ещё вот это исправить? 3где написано перевести из: там надо название валют поменять.. .
Вот собственно код программы. Помогите пожалуйста!! !
unit Unit1;

interface

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

type
TForm1 = class(TForm)
a: TComboBox;
b: TComboBox;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
GroupBox1: TGroupBox;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit1: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit16: TEdit;
procedure aChange(Sender: TObject);
procedure bChange(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
USD = 1;
EUR = 0.9;
FIM = 5.14;
GBP = 0.62;

type
Money = (u, e, f, g);

var
Form1 : TForm1;
MoneyFrom, MoneyTo : Money;
S, t : Real;

implementation

{$R *.dfm}

procedure TForm1.aChange(Sender: TObject);
begin
case a.ItemIndex of
0: MoneyFrom := u;
1: MoneyFrom := e;
2: MoneyFrom := f;
3: MoneyFrom := g;
end;
end;

procedure TForm1.bChange(Sender: TObject);
begin
case b.ItemIndex of
0: MoneyTo := u;
1: MoneyTo := e;
2: MoneyTo := f;
3: MoneyTo := g;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
begin
s := StrToFloat(Edit1.Text);
end;
except
begin
ShowMessage('Неверное число! ');
Exit;
end;
end;
case MoneyFrom of
u : begin
s := S * USD;
case MoneyTo of
u : s := s/USD;
e : s := S/EUR;
f : S := S/FIM;
g : S := S/GBP;
end;
end;
e : begin
s := S*EUR;
case MoneyTo of
u : s := s/USD;
e : s := S/EUR;
f : S := S/FIM;
g : S := S/GBP;
end;
end;
f : begin
S := S*FIM;
case MoneyTo of
u : s := s/USD;
e : s := S/EUR;
f : S := S/FIM;
g : S := S/GBP;
end;
end;
g : begin
S := S*GBP;
case MoneyTo of
u : s := s/USD;
e : s := S/EUR;
f : S := S/FIM;
g : S := S/GBP;
end;
end;
end;
Edit2.Text := 'Результат: '+ FloatToStr(s);
end;

procedure TForm1.Edit5Change(Sender: TObject);
begin

end;

end.[ссылка заблокирована по решению администрации проекта][ссылка заблокирована по решению администрации проекта]3

АЧ
Александр Четверов

Едит5: ТЕдит;
Едит6: ТЕдит;
Едит7: ТЕдит;
Едит8: ТЕдит;
Едит9: ТЕдит;
Едит10: ТЕдит;
Едит11: ТЕдит;
Едит12: ТЕдит;
Едит13: ТЕдит;
Едит14: ТЕдит;
Едит15: ТЕдит;
Едит1: ТЕдит;
Едит3: ТЕдит;
Едит4: ТЕдит;
Едит16: ТЕдит;

ИК
Ирина Корнелюк

Собственно, я вижу следующее:

1. Зачем-то в интерфейсе массово используются TEdit-ы даже там, где хватило бы TLabel-ов

2. В программу жестко зашиты четыре валюты. То есть, если завтра понадобится включить азербайджанский манат, придется перетряхивать весь код.

3. Зачем-то все переменные объявлены глобальными.

4. Зачем-то значения комбобоксов складируются в MoneyFrom и MoneyTo, хотя они нужны только в процедуре button1Click

5. Процедура button1Click производит удручающее впечатление. Надо законодательно запретить copy-paste. Весь пересчет - это некую сумму S умножить на один коэффициент и поделить на другой. Так зачем же городить вложенные case ?

6. Сентенция про вторую строчку непонятна. Пересчет затрагивает только Edit1 и Edit2. Где тут участвуют первая, третья и прочие строчки?

В общем, есть ещё, над чем поработать.. .

Похожие вопросы
помогите пожалуйста решить проблему!!!!
Помогите решить проблему пожалуйста)
Помогите пожалуйста решить проблему
Помогите пожалуйста решить задачи в Delphi
помогите пожалуйста решить проблему!
Помогите пожалуйста решить проблему.
помогите решить эту проблему....
Помогите решить проблему, пожалуйста!))
Помогите пожалуйсто решить проблему.
помогите пожалуйста решить эту проблему !!!