AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Taschenrechner

Ein Thema von safak67 · begonnen am 2. Jun 2009 · letzter Beitrag vom 7. Jun 2009
Antwort Antwort
Seite 1 von 3  1 23   
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#1

Taschenrechner

  Alt 2. Jun 2009, 12:14
Hallo,

ich soll ein Taschenrechner programmieren habe auch damit angefangen. Ich habe aber einige Probleme.

Ich habe nur Ein Textfeld und von da aus muss ich alles ausrechnen aber hab keine Ahnung wie das geht, kann mir jemand dabei helfen.. Mein bisheiger Quelltext

Delphi-Quellcode:
unit Calculator_Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TFormCalculator_Main = class(TForm)
    BitBtn1: TBitBtn;
    EditCalc: TEdit;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn0: TBitBtn;
    BitBtnDecimalSep: TBitBtn;
    BitBtnResult: TBitBtn;
    BitBtnPlus: TBitBtn;
    BitBtnMinus: TBitBtn;
    BitBtnDiv: TBitBtn;
    BitBtnMult: TBitBtn;
    BitBtnParantheseLeft: TBitBtn;
    BitBtnParantheseRight: TBitBtn;
    procedure BitBtnClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormCalculator_Main: TFormCalculator_Main;

implementation

{$R *.dfm}

procedure TFormCalculator_Main.BitBtnClick(Sender: TObject);
begin
  EditCalc.Text := EditCalc.Text + TBitBtn(Sender).Caption;
end;

end.
Angehängte Grafiken
Dateityp: bmp unbenannt_198.bmp (750,1 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#2

Re: Taschenrechner

  Alt 2. Jun 2009, 12:51
Hi
Wie wär es mal mit ein wenig Eigeniniative ? Taschenrechner.... Suchen und... anfangen, sich damit zu beschäftigen. Hier ist sicherlich nicht das Forum, das Hausaufgaben macht !
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#3

Re: Taschenrechner

  Alt 2. Jun 2009, 13:26
Eigeninitiative habe ich schon.. Ich habe auch ein Taschenrechner programmiert, aber ich hatte da zwei Textfelder und jetzt habe ich nur ein Textfeld und da ist das Problem. Ich weiß nicht wo ich die berechnungen schreiben soll.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Taschenrechner

  Alt 2. Jun 2009, 13:31
Du brauchst einfach nur Zwischenvariablen, in denen Du die Werte abspeicherst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#5

Re: Taschenrechner

  Alt 2. Jun 2009, 14:26
Wie mache ich denn die Zwischenspeicherung?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Taschenrechner

  Alt 2. Jun 2009, 14:53
Delphi-Quellcode:
type
  TFormCalculator_Main = class(TForm)
    ...
  private
    FZahl: double; //Puffervariable
  ...
  end;

...

procedure TFormCalculator_Main.BitBtnClick(Sender: TObject);
begin
  //FZahl berechnen
  FZahl := FZahl + StrToFloat(TBitBtn(Sender).Caption);
  //und ausgeben
  EditCalc.Text := FloatToStr(FZahl);
end;
So in etwa, wobei ich hier keine Fehlerbehandlung implementiert habe, aber das sollte ja auch nur ein Beispiel zur Veranschaulichung sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#7

Re: Taschenrechner

  Alt 2. Jun 2009, 15:05
ok, wird dann die ganze berechnung in diesem procedure gemacht..? procedure TFormCalculator_Main.BitBtnClick(Sender: TObject);
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Taschenrechner

  Alt 2. Jun 2009, 15:07
Wie/wo machst du es bisher?
Markus Kinzler
  Mit Zitat antworten Zitat
egon.kaschuba

Registriert seit: 2. Jun 2006
Ort: Buxtehude
80 Beiträge
 
Delphi 7 Architect
 
#9

Re: Taschenrechner

  Alt 2. Jun 2009, 15:37


Hallo Safak67,

schau Dir mal den Code an.
Das könnte sehr wohl funktionieren.

Gruß
Egon




Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Menus;

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;
    Label1: TLabel;
    Button17: TButton;
    Button18: TButton;
    procedure Button18Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure ZeiButtonClick(Sender: TObject);
    procedure OpButtonClick(Sender: TObject);
    procedure IstButtonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Hilfe2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var strBuff1, strBuff2: string; // Operanden- u. Ergebnisspeicher
    op: Char; // Operation (+,-,*,/)
    mode: Byte = 1; // 1 = ersten Operand eingeben
                                  // 2 = zweiten Operand eingeben

procedure TForm1.Button17Click(Sender: TObject); // Anzeige löschen
begin
 if mode = 1 then StrBuff1 := ''
             else StrBuff2 := '';
 Label1.Caption := ''
end;

procedure TForm1.ZeiButtonClick(Sender: TObject); // Zahleneingabe
var zei: Char; // eingegebenes Zeichen
begin
 if Sender = Button10 then zei := '0';
 if Sender = Button1 then zei := '1';
 if Sender = Button2 then zei := '2';
 if Sender = Button3 then zei := '3';
 if Sender = Button4 then zei := '4';
 if Sender = Button5 then zei := '5';
 if Sender = Button6 then zei := '6';
 if Sender = Button7 then zei := '7';
 if Sender = Button8 then zei := '8';
 if Sender = Button9 then zei := '9';
 if Sender = Button11 then zei := '.';
 if mode = 1 then
 begin
  strBuff1 := strBuff1 + zei;
  Label1.Caption := strBuff1
 end else
 begin
  strBuff2 := strBuff2 + zei;
  Label1.Caption := strBuff2
 end
end;

procedure TForm1.OpButtonClick(Sender: TObject); // Operation auswählen
begin
 if mode = 1 then
 begin
  if Sender = Button14 then op:= '+';
  if Sender = Button15 then op:= '-';
  if Sender = Button12 then op:= '*';
  if Sender = Button13 then op:= '/';
  StrBuff2:='';
  mode := 2
 end
end;

procedure TForm1.IstButtonClick(Sender: TObject); // Ergebnis berechnen
var res, op1, op2: Double;
    code: Integer;
    s: string;
begin
 if mode = 2 then
 begin
  Val(strBuff1, op1, code); // StringBuffer1 in Zahl verwandeln
  Val(strBuff2, op2, code); // StringBuffer2 in Zahl verwandeln
  case op of // Operation durchführen
   '+': res:= op1 + op2;
   '-': res := op1 - op2;
   '*': res := op1 * op2;
   '/': res := op1 / op2
  end;
  s:= Format('%g',[res]); // Ergebnis formatieren
  Label1.Caption := s; // ... und anzeigen
  mode := 1;
  strBuff1 := ''
 end
end;

procedure TForm1.Button18Click(Sender: TObject); // Rechner ausschalten
begin
 Close
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.HelpFile := 'Taschenrechner.hlp'
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
 Application.HelpJump('Inhalt')
end;

procedure TForm1.Hilfe2Click(Sender: TObject);
begin
 Application.HelpJump('Inhalt')
end;

end.
Glück ist das einzige was sich verdoppelt,wenn man es teilt.
  Mit Zitat antworten Zitat
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#10

Re: Taschenrechner

  Alt 2. Jun 2009, 21:59
Hi egon,

danke für die Hilfe.. hast du auch das zum runterladen, damit ich mir auch die schaltflächen anschauen kann wie sie aufgebaut sind.. von mir aus auch nur ein foto von der main
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz