unit Calculator_Main;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Buttons, StdCtrls;
type
TFormTR =
class(TForm)
Sp7: TSpeedButton;
Sp8: TSpeedButton;
Sp9: TSpeedButton;
Sp4: TSpeedButton;
Sp5: TSpeedButton;
Sp6: TSpeedButton;
Sp1: TSpeedButton;
Sp2: TSpeedButton;
Sp3: TSpeedButton;
Sp0: TSpeedButton;
DecimalSep: TSpeedButton;
SpErgebnis: TSpeedButton;
SpPlus: TSpeedButton;
SpMinus: TSpeedButton;
SpMal: TSpeedButton;
SpDurch: TSpeedButton;
LabelAnzeige: TLabel;
SpeedButton1: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure SpZahlClick(Sender: TObject);
procedure SpZeichenClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure spErgebnisClick(Sender: TObject);
private
{ Private-Deklarationen }
zahl1,zahl2 : real;
op : char;
SpArray :
ARRAY[0..9]
OF TSpeedButton;
public
{ Public-Deklarationen }
end;
var
FormTR: TFormTR;
implementation
{$R *.DFM}
procedure TFormTR.FormCreate(Sender: TObject);
begin
SpArray [0] := Sp0;
SpArray [1] := Sp1;
SpArray [2] := Sp2;
SpArray [3] := Sp3;
SpArray [4] := Sp4;
SpArray [5] := Sp5;
SpArray [6] := Sp6;
SpArray [7] := Sp7;
SpArray [8] := Sp8;
SpArray [9] := Sp9;
end;
procedure TFormTR.SpeedButton1Click(Sender: TObject);
begin
LabelAnzeige.Caption := '
0';
end;
procedure TFormTR.spErgebnisClick(Sender: TObject);
var Formular,Seg1,Seg2:
string;
begin
Formular := LabelAnzeige.Caption;
if pos('
+',Formular) > 1
then
begin
Seg1 := copy(Formular,1,pos('
+',Formular) - 1);
Seg2 := copy(Formular,pos('
+',Formular) + 1,length(Formular));
end;
ShowMessage(Seg1+'
+'+Seg2);
end;
procedure TFormTR.SpZahlClick(Sender: TObject);
VAR Nr : INTEGER;
begin
if LabelAnzeige.caption='
0'
then LabelAnzeige.caption:='
';
if LabelAnzeige.caption='
Error'
then LabelAnzeige.caption:='
';
LabelAnzeige.caption := LabelAnzeige.caption + TSpeedButton(Sender).Caption;
end;
procedure TFormTR.SPZeichenClick(Sender: TObject);
begin
if LabelAnzeige.caption='
Error'
then LabelAnzeige.caption:='
0';
if sender = spPlus
then
begin
//zahl1:=StrToFloat(LabelAnzeige.caption);
//LabelAnzeige.caption:='0';
op:='
+'
end;
if sender = spMinus
then
begin
//zahl1:=StrToFloat(LabelAnzeige.caption);
//LabelAnzeige.caption:='0';
op:='
-'
end;
if sender = spMal
then
begin
//zahl1:=StrToFloat(LabelAnzeige.caption);
//LabelAnzeige.caption:='0';
op:='
x'
end;
if sender = spDurch
then
begin
//zahl1:=StrToFloat(LabelAnzeige.caption);
//LabelAnzeige.caption:='0';
op:='
/'
end;
LabelAnzeige.caption := LabelAnzeige.caption + op;
{
if sender = spErgebnis then
begin
zahl2:=StrToFloat(LabelAnzeige.Caption);
case op of
'+':LabelAnzeige.caption:=FloatToStr(zahl1+zahl2);
'-':LabelAnzeige.caption:=FloatToStr(zahl1-zahl2);
'x':LabelAnzeige.caption:=FloatToStr(zahl1*zahl2);
'/':if zahl2 <> 0 then
LabelAnzeige.caption:=FloatToStr(zahl1/zahl2)
else
LabelAnzeige.caption:='Division durch Null nicht moeglich'
end
end
}
end;
end.