unit Taschenrechner;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math, Buttons;
type
TForm1 =
class(TForm)
Gleich: TButton;
Addieren: TButton;
Subtrahieren: TButton;
Multiplizieren: TButton;
Dividieren: TButton;
Edit1: TEdit;
Zahl1: TButton;
Zahl2: TButton;
Zahl3: TButton;
Zahl4: TButton;
Zahl5: TButton;
Zahl6: TButton;
Zahl7: TButton;
Zahl8: TButton;
Zahl9: TButton;
Label1: TLabel;
Zahl0: TButton;
Aus: TButton;
Rechenweg: TLabel;
C: TButton;
procedure Zahl1Click(Sender: TObject);
procedure AusClick(Sender: TObject);
procedure AddierenClick(Sender: TObject);
procedure SubtrahierenClick(Sender: TObject);
procedure MultiplizierenClick(Sender: TObject);
procedure DividierenClick(Sender: TObject);
procedure GleichClick(Sender: TObject);
procedure CClick(Sender: TObject);
private
{ Private-Deklarationen}
function TextZuZahl(Text:
String): real;
// Deklaration nur mit den Kopf Der Funktion
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
LetzteZahl: Integer;
Zwischensumme: real;
Rechnung:
String;
implementation
{$R *.dfm}
function TForm1.TextZuZahl(Text:
String): real;
begin
result := StrToFloat(Text);
end;
function TForm1.MehrZahlenAlsZwei(Zwischensumme: real; LetzteZahl: Integer): real;
begin
result := Zwischensumme + LetzteZahl;
end;
procedure TForm1.Zahl1Click(Sender: TObject);
begin
Edit1.Text := Edit1.Text + (Sender
as TButton).Caption;
Rechenweg.Caption := Rechenweg.Caption + (Sender
as TButton).Caption;
end;
procedure TForm1.AusClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.AddierenClick(Sender: TObject);
// Pluszeichen-Button ( + )
begin
Rechenweg.Caption := Rechenweg.Caption + (Sender
as TButton).Caption;
Rechnung := '
+';
GleichClick(
nil);
LetzteZahl := StrToInt(Edit1.Text);
Edit1.Text := '
';
end;
procedure TForm1.SubtrahierenClick(Sender: TObject);
// Minuszeichen-Button ( - )
begin
Rechenweg.Caption := Rechenweg.Caption + (Sender
as TButton).Caption;
Rechnung := '
-';
GleichClick(
nil);
LetzteZahl := StrToInt(Edit1.Text);
Edit1.Text := '
';
end;
procedure TForm1.MultiplizierenClick(Sender: TObject);
// Malzeichen-Button ( * )
begin
Rechenweg.Caption := Rechenweg.Caption + (Sender
as TButton).Caption;
Rechnung := '
*';
GleichClick(
nil);
LetzteZahl := StrToInt(Edit1.Text);
Edit1.Text := '
';
end;
procedure TForm1.DividierenClick(Sender: TObject);
// Geteiltzeichen-Button ( / )
begin
Rechenweg.Caption := Rechenweg.Caption + (Sender
as TButton).Caption;
Rechnung := '
/';
GleichClick(
nil);
LetzteZahl := StrToInt(Edit1.Text);
Edit1.Text := '
';
end;
procedure TForm1.GleichClick(Sender: TObject);
// Gleichzeichen-Button ( = )
begin
// Addieren
if (Rechnung = '
+')
then
begin
Zwischensumme := Zwischensumme + TextZuZahl(Edit1.Text);
Label1.Caption := FloatToStr(Zwischensumme);
end;
// Subtrahieren
if (Rechnung = '
-')
then
begin
Zwischensumme := LetzteZahl + Zwischensumme - TextZuZahl(Edit1.Text);
Label1.Caption := FloatToStr(Zwischensumme);
end;
// Multiplizieren
if (Rechnung = '
*')
then
begin
if (Zwischensumme > 0)
then
begin
Zwischensumme := Zwischensumme * TextZuZahl(Edit1.Text);
end else
begin
Zwischensumme := LetzteZahl * TextZuZahl(Edit1.Text);
end;
Label1.Caption := FloatToStr(Zwischensumme);
end;
// Dividieren
if (Rechnung = '
/')
then
begin
if (Zwischensumme > 0)
then
begin
Zwischensumme := Zwischensumme / TextZuZahl(Edit1.Text);
end else
begin
Zwischensumme:= LetzteZahl / TextZuZahl(Edit1.Text);
end;
Label1.Caption := FloatToStr(Zwischensumme);
end;
end;
procedure TForm1.CClick(Sender: TObject);
begin
Rechenweg.Caption := '
';
Edit1.Text := '
';
Label1.Caption := '
';
Zwischensumme := 0;
LetzteZahl := 0;
end;
end.