Tachenrechner

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Peter1
Beiträge: 1
Registriert: So 30. Mär 2014, 18:56

Tachenrechner

Beitrag von Peter1 »

Guten Abend,
Ich brauche dringend eure Hilfe.
Wir sollen in der Schule einen Taschenrechner programmieren, aber ich bekomme ganz viele Kleinigkeiten nicht auf die Reihe.
Zum Beispiel, bei der clear-Taste werden zwar beide Felder geleert, aber beim erneuten eingeben von Zahlen stehen die Alten wieder da..
Dann das herausgeben vom Ergebnis, Plus, Minus, Durch und Mal , weiss nicht so wirklich wie, beim Komma das selbe..

Code: Alles auswählen

unit u_taschenrechner;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    b_eins: TButton;
    b_null: TButton;
    b_clear: TButton;
    b_komma: TButton;
    b_plus: TButton;
    b_minus: TButton;
    b_mal: TButton;
    b_durch: TButton;
    b_gleich: TButton;
    b_zwei: TButton;
    b_3: TButton;
    b_4: TButton;
    b_5: TButton;
    b_6: TButton;
    b_7: TButton;
    b_8: TButton;
    b_9: TButton;
    e_1: TEdit;
    e_2: TEdit;
    procedure b_3Click(Sender: TObject);
    procedure b_4Click(Sender: TObject);
    procedure b_5Click(Sender: TObject);
    procedure b_6Click(Sender: TObject);
    procedure b_7Click(Sender: TObject);
    procedure b_8Click(Sender: TObject);
    procedure b_9Click(Sender: TObject);
    procedure b_clearClick(Sender: TObject);
    procedure b_durchClick(Sender: TObject);
    procedure b_einsClick(Sender: TObject);
    procedure b_gleichClick(Sender: TObject);
    procedure b_malClick(Sender: TObject);
    procedure b_minusClick(Sender: TObject);
    procedure b_nullClick(Sender: TObject);
    procedure b_plusClick(Sender: TObject);
    procedure b_zweiClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  zahl: integer;
  a: boolean;
  d: string;
  erg:integer;
    Form1: TForm1;
 
 
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.b_einsClick(Sender: TObject);
begin
 zahl:=1;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_gleichClick(Sender: TObject);
begin
  erg:= zahl+zahl;
    e_2.text:=inttostr(erg);
end;
 
procedure TForm1.b_malClick(Sender: TObject);
begin
   d:=d+'*';
  e_1.text:=(d);
end;
 
procedure TForm1.b_minusClick(Sender: TObject);
begin
   d:=d+'-';
  e_1.text:=(d);
end;
 
procedure TForm1.b_nullClick(Sender: TObject);
begin
  zahl:=0;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_3Click(Sender: TObject);
begin
  zahl:=3;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_4Click(Sender: TObject);
begin
  zahl:=4;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_5Click(Sender: TObject);
begin
  zahl:=5;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_6Click(Sender: TObject);
begin
  zahl:=6;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_7Click(Sender: TObject);
begin
  zahl:=7;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_8Click(Sender: TObject);
begin
  zahl:=8;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_9Click(Sender: TObject);
begin
  zahl:=9;
 d:=d+inttostr(zahl);
 e_1.text:=(d);
end;
 
procedure TForm1.b_clearClick(Sender: TObject);
begin
  e_1.text:='';
  e_2.text:='';
end;
 
procedure TForm1.b_durchClick(Sender: TObject);
begin
   d:=d+'/';
  e_1.text:=(d);
end;
 
procedure TForm1.b_plusClick(Sender: TObject);
begin
  d:=d+'+';
  e_1.text:=(d);
end;
 
procedure TForm1.b_zweiClick(Sender: TObject);
begin
  zahl:=2;
  d:=d+inttostr(zahl);
  e_1.text:=(d);
end;
 
end.






Hoffe Ihr könnt mir helfen, möchte es ja auch verstehen.
Dake vor ab.
Zuletzt geändert von Lori am So 6. Apr 2014, 15:20, insgesamt 1-mal geändert.
Grund: Highlighter

Eb
Lazarusforum e. V.
Beiträge: 240
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: Tachenrechner

Beitrag von Eb »

Also, wenn du's verstehen willst:

beim klick auf b_eins
- wird Variable zahl auf 1 gesetzt,
- Variable Zahl wird an variable d hinten angehängt
- im Edit-Feld1 wird variable d angezeigt

beim klick auf b_clear wird
- in beiden edit-Feldern '' angezeigt


Nun wird wieder auf button1 geklickt.

Was passiert jetzt?
Am besten du überlegst dir mal, bei dem ganzen Ablauf, wann welcher Wert in welcher Variable drin steht.

Antworten