![]() |
Taschenrechner
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
Re: Taschenrechner
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 |
Re: Taschenrechner
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.
|
Re: Taschenrechner
Du brauchst einfach nur Zwischenvariablen, in denen Du die Werte abspeicherst.
|
Re: Taschenrechner
Wie mache ich denn die Zwischenspeicherung?
|
Re: Taschenrechner
Delphi-Quellcode:
So in etwa, wobei ich hier keine Fehlerbehandlung implementiert habe, aber das sollte ja auch nur ein Beispiel zur Veranschaulichung sein.
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; |
Re: Taschenrechner
ok, wird dann die ganze berechnung in diesem procedure gemacht..?
Delphi-Quellcode:
procedure TFormCalculator_Main.BitBtnClick(Sender: TObject);
|
Re: Taschenrechner
Wie/wo machst du es bisher?
|
Re: Taschenrechner
:firejump:
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. |
Re: Taschenrechner
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz