Einzelnen Beitrag anzeigen

Stefan92

Registriert seit: 9. Jan 2007
146 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Taschenrechner über Tastatur bedienen

  Alt 11. Jan 2007, 15:34
Ok hier kommt er, er ist allerdings sehr schlecht kommentiert und sehr lang :
Code:
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.
Gruß

Stefan
  Mit Zitat antworten Zitat