unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Edit1: TEdit;
ZahlButton1: TButton;
ZahlButton2: TButton;
ZahlButton3: TButton;
ZahlButton4: TButton;
ZahlButton5: TButton;
ZahlButton6: TButton;
ZahlButton7: TButton;
ZahlButton8: TButton;
ZahlButton9: TButton;
ZahlButton10: TButton;
ZahlButton11: TButton;
OpButton12: TButton;
OpButton13: TButton;
OpButton14: TButton;
OpButton15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
procedure ZahlButtonClick(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure OpButtonClick(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
zahl, op: Char;
index: Integer = 1;
zahlen, ops:
array of String;
ausgabe, strBuff:
String;
implementation
{$R *.dfm}
procedure TForm1.ZahlButtonClick(Sender: TObject);
var i: Integer;
begin
if Sender = ZahlButton1
then zahl := '
1';
if Sender = ZahlButton2
then zahl := '
2';
if Sender = ZahlButton3
then zahl := '
3';
if Sender = ZahlButton4
then zahl := '
4';
if Sender = ZahlButton5
then zahl := '
5';
if Sender = ZahlButton6
then zahl := '
6';
if Sender = ZahlButton7
then zahl := '
7';
if Sender = ZahlButton8
then zahl := '
8';
if Sender = ZahlButton9
then zahl := '
9';
if Sender = ZahlButton10
then zahl := '
0';
if Sender = ZahlButton11
then zahl := '
.' ;
strBuff := strBuff + zahl;
if index = 1
then Edit1.Text := strBuff
else
begin
if index <= 2
then
ausgabe := zahlen[0] + ops[0]
else
begin
ausgabe := zahlen[0] + ops[0];
for i := 2
to index-1
do
begin
ausgabe := ausgabe + zahlen[i-1] + ops[i-1];
end;
end;
Edit1.Text := Concat(ausgabe, strBuff);
end;
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
zahlen :=
nil; ops :=
nil;
index := 1; ausgabe := '
'; strBuff := '
';
Edit1.Text := '
';
end;
procedure TForm1.OpButtonClick(Sender: TObject);
begin
if Sender = OpButton12
then op := '
+';
if Sender = OpButton13
then op := '
-';
if Sender = OpButton14
then op := '
*';
if Sender = OpButton15
then op := '
/';
Edit1.Text := Edit1.Text + op;
SetLength(zahlen,
index);
SetLength(ops,
index);
zahlen[
index-1] := strBuff;
ops[
index-1] := op;
inc(
index);
strBuff := '
';
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.Button17Click(Sender: TObject);
var erg, a, b: Double;
code, i: Integer;
s:
String;
begin
zahlen[
index-1] := strBuff;
if index > 2
then
begin
Val(zahlen[0], a, code);
erg := a;
for i := 1
to index-1
do
begin
Val(zahlen[i], b, code);
if ops[i-1] = '
+'
then erg := erg + b;
if ops[i-1] = '
-'
then erg := erg - b;
if ops[i-1] = '
*'
then erg := erg * b;
if ops[i-1] = '
/'
then erg := erg / b;
end;
Str(erg:10:2, s);
Edit1.Text := s;
end
else
begin
Val(zahlen[0], a, code);
Val(zahlen[1], b, code);
erg := a;
if ops[0] = '
+'
then erg := erg + b;
if ops[0] = '
-'
then erg := erg - b;
if ops[0] = '
*'
then erg := erg * b;
if ops[0] = '
/'
then erg := erg / b;
Str(erg:10:2, s);
Edit1.Text := s;
end;
end;
end.