unit Taschenrechner;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ActnList;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: char);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
var operation,strich,punkt,punktvorstrich:boolean;
zahl1,zahl2,zahl3,result:real;
gesucht:string;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='1';
operation:=false;
end
else edit1.text:=edit1.text+'1';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='2';
operation:=false;
end
else edit1.text:=edit1.text+'2';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='3';
operation:=false;
end
else edit1.text:=edit1.text+'3';
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='4';
operation:=false;
end
else edit1.text:=edit1.text+'4';
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='5';
operation:=false;
end
else edit1.text:=edit1.text+'5';
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='6';
operation:=false;
end
else edit1.text:=edit1.text+'6';
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='7';
operation:=false;
end
else edit1.text:=edit1.text+'7';
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='8';
operation:=false;
end
else edit1.text:=edit1.text+'8';
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='9';
operation:=false;
end
else edit1.text:=edit1.text+'9';
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
if (edit1.text='0') or (operation=true) then
begin
edit1.text:='0';
operation:=false;
end
else edit1.text:=edit1.text+'0';
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
edit1.text:='0';
strich:=false;
punkt:=false;
punktvorstrich:=false;
zahl1:=0;
zahl2:=0;
zahl3:=0;
end;
procedure TForm1.Button12Click(Sender: TObject);
var vorzeichenwechsel:real;
begin
vorzeichenwechsel:=strtofloat(edit1.text);
vorzeichenwechsel:=vorzeichenwechsel*(-1);
edit1.text:=floattostr(vorzeichenwechsel);
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.text='' then edit1.text:='0';
end;
procedure TForm1.Button19Click(Sender: TObject);
var i:integer;
s:string;
begin
for i:=1 to (length(edit1.text)-1) do
begin
s:=s+edit1.text[i];
end;
edit1.text:=s;
if edit1.text='' then edit1.text:='0';
end;
procedure TForm1.Button11Click(Sender: TObject);
var j:integer;
komma:boolean;
begin
komma:=false;
for j:=1 to length(edit1.text) do
if edit1.text[j]=',' then
begin
komma:=true;
break;
end
else komma:=false;
if komma=false then
begin
edit1.text:=edit1.text+',';
end;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
result:=0;
zahl2:=strtofloat(edit1.text);
if result=0 then result:=zahl2;
if edit1.text='0' then result:=zahl2;
if gesucht='summe' then result:=zahl1+zahl2;
if gesucht='differenz' then result:=zahl1-zahl2;
if gesucht='quotient' then result:=zahl1/zahl2;
if gesucht='produkt' then result:=zahl1*zahl2;
edit1.text:=floattostr(result);
operation:=true;
strich:=true; {+}
zahl1:=strtofloat(edit1.text);
gesucht:='summe';
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
result:=0;
zahl2:=strtofloat(edit1.text);
if result=0 then result:=zahl2;
if gesucht='summe' then result:=zahl1+zahl2;
if gesucht='differenz' then result:=zahl1-zahl2;
if gesucht='quotient' then result:=zahl1/zahl2;
if gesucht='produkt' then result:=zahl1*zahl2;
edit1.text:=floattostr(result);
operation:=true;
strich:=true; {-}
zahl1:=strtofloat(edit1.text);
gesucht:='differenz';
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
if (strich=false) and (punkt=true) then
begin
result:=0;
zahl2:=strtofloat(edit1.text);
if gesucht='summe' then result:=zahl1+zahl2;
if gesucht='differenz' then result:=zahl1-zahl2;
if gesucht='quotient' then result:=zahl1/zahl2;
if gesucht='produkt' then result:=zahl1*zahl2;
edit1.text:=floattostr(result);
operation:=true;
end;
if strich=true then
begin
zahl2:=strtofloat(edit1.Text);
punktvorstrich:=true;
end;
operation:=true;
punkt:=true; {/}
if punktvorstrich=false then zahl1:=strtofloat(edit1.text);
gesucht:='quotient';
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
if (strich=false) and (punkt=true) then
begin
result:=0;
zahl2:=strtofloat(edit1.text);
if gesucht='summe' then result:=zahl1+zahl2;
if gesucht='differenz' then result:=zahl1-zahl2;
if gesucht='quotient' then result:=zahl1/zahl2;
if gesucht='produkt' then result:=zahl1*zahl2;
edit1.text:=floattostr(result);
operation:=true;
end;
if strich=true then
begin
zahl2:=strtofloat(edit1.Text);
punktvorstrich:=true;
end;
operation:=true;
punkt:=true; {*}
if punktvorstrich=false then zahl1:=strtofloat(edit1.text);
gesucht:='produkt';
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
result:=0;
if punktvorstrich=false then zahl2:=strtofloat(edit1.text);
if (zahl1=0) and (punkt=false) then edit1.text:=floattostr(zahl2)
else
begin
if punktvorstrich=true then
begin
zahl3:=strtofloat(edit1.text);
result:=(zahl2*zahl3)+zahl1;
edit1.text:=floattostr(result);
end
else
begin
if gesucht='summe' then result:=zahl1+zahl2;
if gesucht='differenz' then result:=zahl1-zahl2;
if gesucht='quotient' then result:=zahl1/zahl2;
if gesucht='produkt' then result:=zahl1*zahl2;
edit1.text:=floattostr(result);
end;
end;
operation:=true;
strich:=false;
punkt:=false;
punktvorstrich:=false;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
if key='1' then button1.click;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
keypreview:=true;
end;
end.