-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathUFmCalculator.pas
89 lines (75 loc) · 1.96 KB
/
UFmCalculator.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
unit UFmCalculator;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, UICalculator, Vcl.StdCtrls, Vcl.Controls,
Vcl.Forms;
type
TCalculatorForm = class(TForm)
ButtonAdd: TButton;
ButtonSubstract: TButton;
LabelResult: TLabel;
EditValue: TEdit;
ButtonFactorial: TButton;
ButtonClear: TButton;
procedure ButtonFactorialClick(Sender: TObject);
procedure ButtonClearClick(Sender: TObject);
procedure ButtonAddClick(Sender: TObject);
procedure ButtonSubstractClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FCalculator: ICalculator;
public
{ Public declarations }
procedure Test;
end;
var
CalculatorForm: TCalculatorForm;
implementation
uses
UCalculator,
{$IFDEF USE_SPRING4D}
Spring.Container,
{$ENDIF}
UOperators;
{$R *.dfm}
procedure TCalculatorForm.ButtonFactorialClick(Sender: TObject);
begin
FCalculator.Factorial(StrToFloat(EditValue.Text));
LabelResult.Caption := FCalculator.Value.ToString;
end;
procedure TCalculatorForm.ButtonClearClick(Sender: TObject);
begin
FCalculator.Clear;
LabelResult.Caption := FCalculator.Value.ToString;
end;
procedure TCalculatorForm.ButtonAddClick(Sender: TObject);
begin
FCalculator.Add(StrToFloat(EditValue.Text));
LabelResult.Caption := FCalculator.Value.ToString;
end;
procedure TCalculatorForm.ButtonSubstractClick(Sender: TObject);
begin
FCalculator.Substract(StrToFloat(EditValue.Text));
LabelResult.Caption := FCalculator.Value.ToString;
end;
procedure TCalculatorForm.FormCreate(Sender: TObject);
begin
{$IFDEF USE_SPRING4D}
FCalculator := GlobalContainer.Resolve<ICalculator>();
{$ELSE}
FCalculator := TCalculator.Create(TOperatorAdd.Create, TOperatorSubstract.Create, TOperatorFactorial.Create);
{$ENDIF}
end;
procedure TCalculatorForm.Test;
var
A, B, C: Integer;
begin
A := 10;
if B > C then
A := B
else
A := C;
end;
end.