unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
txt_rechnung: TEdit;
cmd_7: TButton;
Label1: TLabel;
cmd_clear: TButton;
cmd_div: TButton;
cmd_gleich: TButton;
cmd_0: TButton;
cmd_komma: TButton;
cmd_1: TButton;
cmd_2: TButton;
cmd_3: TButton;
cmd_mul: TButton;
cmd_6: TButton;
cmd_5: TButton;
cmd_4: TButton;
cmd_add: TButton;
cmd_9: TButton;
cmd_8: TButton;
cmd_sub: TButton;
procedure cmd_clearClick(Sender: TObject);
procedure cmd_2Click(Sender: TObject);
procedure cmd_3Click(Sender: TObject);
procedure cmd_4Click(Sender: TObject);
procedure cmd_5Click(Sender: TObject);
procedure cmd_6Click(Sender: TObject);
procedure cmd_7Click(Sender: TObject);
procedure cmd_8Click(Sender: TObject);
procedure cmd_9Click(Sender: TObject);
procedure cmd_0Click(Sender: TObject);
procedure cmd_divClick(Sender: TObject);
procedure cmd_mulClick(Sender: TObject);
procedure cmd_subClick(Sender: TObject);
procedure cmd_addClick(Sender: TObject);
procedure cmd_gleichClick(Sender: TObject);
procedure cmd_kommaClick(Sender: TObject);
Procedure Rechenarten;
procedure cmd_1Click(Sender: TObject);
private
function IsValidFloat(AValue1:
String): Boolean;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Rechenart: Integer;
Speicher: Real;
GZahl:
array[0..9]
of Integer;
const
GZahl0 = 0;
GZahl1 = 1;
GZahl2 = 2;
GZahl3 = 3;
GZahl4 = 4;
GZahl5 = 5;
GZahl6 = 6;
GZahl7 = 7;
GZahl8 = 8;
GZahl9 = 9;
implementation
{$R *.dfm}
procedure TForm1.cmd_0Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl0);
end;
procedure TForm1.cmd_1Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl1);
end;
procedure TForm1.cmd_2Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl2);
end;
procedure TForm1.cmd_3Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl3);
end;
procedure TForm1.cmd_4Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl4);
end;
procedure TForm1.cmd_5Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl5);
end;
procedure TForm1.cmd_6Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl6);
end;
procedure TForm1.cmd_7Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl7);
end;
procedure TForm1.cmd_8Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(GZahl8);
end;
procedure TForm1.cmd_9Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr (GZahl9);
end;
procedure TForm1.cmd_addClick(Sender: TObject);
begin
label1.Caption := '
+';
Rechenarten;
Rechenart := 1;
Speicher := StrToFloat(txt_Rechnung.Text);
txt_rechnung.text := '
';
end;
procedure TForm1.cmd_clearClick(Sender: TObject);
begin
txt_rechnung.Clear;
label1.caption := '
';
Speicher := 0;
Rechenart := 0;
end;
procedure TForm1.cmd_divClick(Sender: TObject);
begin
label1.Caption := '
/' ;
Rechenarten;
Rechenart := 4;
Speicher := StrToFloat(txt_Rechnung.Text);
txt_rechnung.text := '
';
end;
procedure TForm1.cmd_mulClick(Sender: TObject);
begin
label1.Caption := '
*' ;
Rechenarten;
Rechenart := 3;
Speicher := StrToFloat(txt_Rechnung.Text);
txt_rechnung.text := '
';
end;
procedure TForm1.cmd_subClick(Sender: TObject);
begin
label1.Caption := '
-' ;
Rechenarten;
Rechenart := 2;
Speicher := StrToFloat(txt_Rechnung.Text);
txt_rechnung.Text := '
';
end;
function TForm1.IsValidFloat(AValue1:
String): Boolean;
var
i: Integer;
begin
Result := false;
{
Gegeben: String, Gesucht: Boolean}
if AValue1 <> '
'
then
begin
for i := 0
to Length(AValue1)
do
begin
if AValue1[i]
in ['
0'..'
9', '
,']
then
begin
Result := true;
end;
end;
end else
begin
ShowMessage('
String ist leer.');
end;
end;
procedure TForm1.Rechenarten;
begin
IsValidFloat(txt_rechnung.text);
case Rechenart
of
0:
begin
Speicher := StrToFloat(txt_rechnung.Text);
end;
1:
begin
Speicher := Speicher + StrToFloat(txt_rechnung.text);
end;
2:
begin
Speicher := Speicher - StrToFloat(txt_rechnung.text);
end;
3:
begin
Speicher := Speicher * StrToFloat(txt_rechnung.text);
end;
4:
begin
Speicher := Speicher / StrToFloat(txt_rechnung.text);
end;
end;
end;
procedure TForm1.cmd_gleichClick(Sender: TObject);
begin
Rechenarten;
txt_rechnung.text := FloatToStr(Speicher);
Speicher := 0;
Rechenart := 0;
end;
procedure TForm1.cmd_kommaClick(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + '
,';
end;
end.