![]() |
Taschenrechner
Hallo ich lerne grade Delphi und möchte mir eine Taschenrechner Programmieren, leider habe ich en Prob mit dem Input und was da rein soll.
Also ich möchte es so: user drückt button zahl erscheint user drückt button zeichen erscheint(+, -, *, etc) user drückt button nächste zahl erscheint user drückt = button dann erscheint ergebnis Wie mache ich das? Ich schaffe das einfach nicht, hier mal mein Code.
Delphi-Quellcode:
unit Unit1; {Name der Unit}
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; Image10: TImage; Image11: TImage; Image14: TImage; Image15: TImage; Image16: TImage; Image17: TImage; Image18: TImage; Image19: TImage; Image20: TImage; Image21: TImage; Image22: TImage; Edit1: TEdit; Image12: TImage; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; //Hier werden die Globalen Variablen definiert implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); //Unser OnClick-Ereignis var zahl1, zahl2, ergebnis: integer; //Unsere Variablen begin zahl1:=StrToInt(Edit1.Text); zahl2:=StrToInt(Edit1.Text); ergebnis:=zahl1+zahl2; Edit1.Caption:=IntToStr(ergebnis); end; end. |
Re: Taschenrechner
speichere den inhalt der textbox doch in ne variable!
|
Re: Taschenrechner
Delphi-Quellcode:
Huch, warum denn so umständlich? Und was soll eine Caption eines Editfeldes sein?
zahl1:=StrToInt(Edit1.Text);
zahl2:=StrToInt(Edit1.Text); ergebnis:=zahl1+zahl2; Edit1.Caption:=IntToStr(ergebnis); Wie wäre es hiermit:
Delphi-Quellcode:
//Edit: Wieso funktionieren denn die Delphitags nicht?
Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text))
[edit=Matze]Der Haken "BBCode in diesem Beitrag deaktivieren" war gesetzt. ;) ich habe ihn soeben entfernt. MfG, Matze[/edit] |
Re: Taschenrechner
Mein Code sieht jetzt aus
Delphi-Quellcode:
unit Unit1; {Name der Unit}
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; Image10: TImage; Image11: TImage; Image14: TImage; Image15: TImage; Image16: TImage; Image17: TImage; Image18: TImage; Image19: TImage; Image20: TImage; Image21: TImage; Image22: TImage; Edit1: TEdit; Image12: TImage; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; //Hier werden die Globalen Variablen definiert implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); //Unser OnClick-Ereignis var zahl1, zahl2, ergebnis: integer; //Unsere Variablen begin Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text)) end; end. Wo kann ich nachlesen wie ich das mache wenn man auf eine zahl oder ein Symbol drückt das ins Input kommt? |
Re: Taschenrechner
Zeig doch mal einen Screenshot, damit man sich überhaupt etwas unter deinem Vorhaben vorstellen kann. Ich weiß bisher nur, dass du eine Zahl mit 2 multiplizieren möchtest und diese ausgeben willst.
|
Re: Taschenrechner
Sind diese "Zahlen" Buttons auf deinem Formular?
Wenn ja dann einfach im onClick-Event zB schreiben:
Delphi-Quellcode:
edit: Es werden wohl Images sein... aber die haben auch ein onClick :zwinker:
procedure TForm1.ButtonMinusClick(Sender: TObject);
begin edInput.Text := edInput.Text + '-'; // edInput ist das Edit end; |
Re: Taschenrechner
Hier ein Screen
![]() Hier noma mein Code hab Bezeichnungen geändert
Delphi-Quellcode:
unit Unit1; {Name der Unit}
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image0: TImage; Image1: TImage; Image2: TImage; Image8: TImage; Image5: TImage; Image3: TImage; Image7: TImage; Image6: TImage; Image4: TImage; Image10: TImage; Image11: TImage; Mal: TImage; Back: TImage; Geteilt: TImage; Gleich: TImage; Plus: TImage; Punkt: TImage; Rechts: TImage; Links: TImage; Minus: TImage; Edit1: TEdit; PI: TImage; { Procedure Starts } procedure Button1Click(Sender: TObject); { Procedure Ends } private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; //Hier werden die Globalen Variablen definiert implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); //Unser OnClick-Ereignis var zahl1, zahl2, ergebnis: integer; //Unsere Variablen begin Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text)) end; end. |
Re: Taschenrechner
Gut alles funtz jetzt muss ich n ur noch wissen wie man PI rechnet und schauen ob er es auch ausrechnet
Weiß jemand wie man PI ausrechnet per Delphi kanns net ma im richtigen leben :D |
Re: Taschenrechner
Hallo,
muß man nicht errechnen, es gibt eine Funktion dafür: Zitat:
![]() Grüße Klaus |
Re: Taschenrechner
Wo find ich Infos zu dieser Function?
|
Re: Taschenrechner
Die Delphi Hilfe aufrufen, pi eingeben.
Grüße Klaus |
Re: Taschenrechner
OK Danke ist die Hilfe Datei auch bei Turbo Delphi dabei weil ich find da in der Hilfedatei nix zu PI, und irgendwie funtz bei mir nur die 0 was is falsch lerne grade delphi
Delphi-Quellcode:
unit Unit1; {Name der Unit}
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image0: TImage; Image1: TImage; Image2: TImage; Image8: TImage; Image5: TImage; Image3: TImage; Image7: TImage; Image6: TImage; Image4: TImage; Image9: TImage; Mal: TImage; Back: TImage; Geteilt: TImage; Gleich: TImage; Plus: TImage; Punkt: TImage; Rechts: TImage; Links: TImage; Minus: TImage; Edit1: TEdit; PI: TImage; { Procedure Starts } procedure Button1Click(Sender: TObject); procedure Image0Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Image4Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Image6Click(Sender: TObject); procedure Image7Click(Sender: TObject); procedure Image8Click(Sender: TObject); procedure Image9Click(Sender: TObject); procedure ImageLinksClick(Sender: TObject); procedure ImageRechtsClick(Sender: TObject); procedure ImagePlusClick(Sender: TObject); procedure ImageMinusClick(Sender: TObject); procedure ImagePunktClick(Sender: TObject); procedure ImageMalClick(Sender: TObject); procedure ImageGleichClick(Sender: TObject); procedure ImageGeteiltClick(Sender: TObject); procedure ImagePIClick(Sender: TObject); { Procedure Ends } private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; //Hier werden die Globalen Variablen definiert implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); //Unser OnClick-Ereignis var zahl1, zahl2, ergebnis: integer; //Unsere Variablen begin Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text)) end; { Zahlen Buttons } procedure TForm1.Image0Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '0'; // edInput ist das Edit end; procedure TForm1.Image1Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '1'; // edInput ist das Edit end; procedure TForm1.Image2Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '2'; // edInput ist das Edit end; procedure TForm1.Image3Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '3'; // edInput ist das Edit end; procedure TForm1.Image4Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '4'; // edInput ist das Edit end; procedure TForm1.Image5Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '5'; // edInput ist das Edit end; procedure TForm1.Image6Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '6'; // edInput ist das Edit end; procedure TForm1.Image7Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '7'; // edInput ist das Edit end; procedure TForm1.Image8Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '8'; // edInput ist das Edit end; procedure TForm1.Image9Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '9'; // edInput ist das Edit end; { Zahlen Buttons } { Symbole } procedure TForm1.ImageLinksClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '('; // edInput ist das Edit end; procedure TForm1.ImageRechtsClick(Sender: TObject); begin Edit1.Text := Edit1.Text + ')'; // edInput ist das Edit end; procedure TForm1.ImagePlusClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '+'; // edInput ist das Edit end; procedure TForm1.ImageMinusClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '-'; // edInput ist das Edit end; procedure TForm1.ImageMalClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '*'; // edInput ist das Edit end; procedure TForm1.ImageGeteiltClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '/'; // edInput ist das Edit end; procedure TForm1.ImagePunktClick(Sender: TObject); begin Edit1.Text := Edit1.Text + ','; // edInput ist das Edit end; procedure TForm1.ImageGleichClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '='; // edInput ist das Edit end; procedure TForm1.ImagePIClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '8'; // edInput ist das Edit end; { Symbole } end. |
Re: Taschenrechner
hast du bei jedem Image das onClick mit der entsprechenden Prozedur verknüpft?
|
Re: Taschenrechner
Ja habe ich sieht man ja auch im Code ich sehe keine Fehler.
das Meine Procedures
Delphi-Quellcode:
Das die Images
{ Procedure Starts }
procedure Button1Click(Sender: TObject); procedure Image0Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Image4Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Image6Click(Sender: TObject); procedure Image7Click(Sender: TObject); procedure Image8Click(Sender: TObject); procedure Image9Click(Sender: TObject); procedure ImageLinksClick(Sender: TObject); procedure ImageRechtsClick(Sender: TObject); procedure ImagePlusClick(Sender: TObject); procedure ImageMinusClick(Sender: TObject); procedure ImagePunktClick(Sender: TObject); procedure ImageMalClick(Sender: TObject); procedure ImageGleichClick(Sender: TObject); procedure ImageGeteiltClick(Sender: TObject); procedure ImagePIClick(Sender: TObject); { Procedure Ends }
Delphi-Quellcode:
type
TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; Image10: TImage; Image11: TImage; Image14: TImage; Image15: TImage; Image16: TImage; Image17: TImage; Image18: TImage; Image19: TImage; Image20: TImage; Image21: TImage; Image22: TImage; Edit1: TEdit; Image12: TImage; |
Re: Taschenrechner
Ich würde dir RPN als Standard empfehlen bzw. RPN las Backend nutzen, da gibt es Algorythmen für um es umzurechnen, dann ist es um einiges Leichter den Taschenrechner zu programmieren. Hier ein Beispielcode (Lazarus/Free Pascal) den ich für einen RPN-Rechner auf meinem PocketPC verwendet habe:
Delphi-Quellcode:
unit MainForm;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Math, StdCtrls, ComCtrls, Menus; type { TMainForm } TMainForm = class(TForm) MainMenu1: TMainMenu; MenuItem1: TMenuItem; Stack: TListBox; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button0: TButton; ButtonPoint: TButton; ButtonEnter: TButton; ButtonAdd: TButton; ButtonSub: TButton; ButtonMul: TButton; ButtonDiv: TButton; edtCalc: TEdit; ButtonPower: TButton; ButtonPosNeg: TButton; ButtonRoot: TButton; ButtonLog: TButton; ButtonRound: TButton; ButtonPi: TButton; ButtonFak: TButton; Button1_2: TButton; Button10: TButton; Button11: TButton; ButtonProm: TButton; ButtonProz: TButton; procedure Button0Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button1_2Click(Sender: TObject); procedure ButtonPowerClick(Sender: TObject); procedure ButtonAddClick(Sender: TObject); procedure ButtonDivClick(Sender: TObject); procedure ButtonEnterClick(Sender: TObject); procedure ButtonFakClick(Sender: TObject); procedure ButtonLogClick(Sender: TObject); procedure ButtonMulClick(Sender: TObject); procedure ButtonPiClick(Sender: TObject); procedure ButtonPointClick(Sender: TObject); procedure ButtonPosNegClick(Sender: TObject); procedure ButtonPromClick(Sender: TObject); procedure ButtonProzClick(Sender: TObject); procedure ButtonRootClick(Sender: TObject); procedure ButtonRoundClick(Sender: TObject); procedure ButtonSubClick(Sender: TObject); procedure edtCalcClick(Sender: TObject); procedure MenuItem1Click(Sender: TObject); procedure StackDblClick(Sender: TObject); private { private declarations } function Pop: Real; procedure Push(R: Real); public { public declarations } end; var frmMainForm: TMainForm; implementation function TMainForm.Pop: Real; begin Result := StrToFloat(Stack.Items[Stack.Items.Count - 1]); Stack.Items.Delete(Stack.Items.Count - 1); end; procedure TMainForm.Push(R: Real); begin Stack.Items.Add(FloatToStr(R)); end; procedure TMainForm.Button0Click(Sender: TObject); begin edtCalc.Text := edtCalc.Text + (Sender as TButton).Caption; end; procedure TMainForm.Button10Click(Sender: TObject); begin Push(1/4); end; procedure TMainForm.Button11Click(Sender: TObject); begin Push(3/4); end; procedure TMainForm.Button1_2Click(Sender: TObject); begin Push(1/2); end; procedure TMainForm.ButtonPowerClick(Sender: TObject); var Num1, Num2: Real; begin if Stack.Items.Count > 1 then begin Num1 := Pop; Num2 := Pop; Push(Power(Num2, Num1)); end; end; procedure TMainForm.ButtonAddClick(Sender: TObject); var Num1, Num2: Real; begin if Stack.Items.Count > 1 then begin Num1 := Pop; Num2 := Pop; Push(Num2 + Num1); end; end; procedure TMainForm.ButtonDivClick(Sender: TObject); var Num1, Num2: Real; begin if Stack.Items.Count > 1 then begin Num1 := Pop; Num2 := Pop; Push(Num2 / Num1); end; end; procedure TMainForm.ButtonEnterClick(Sender: TObject); begin if edtCalc.Text <> '' then begin Stack.Items.Add(edtCalc.Text); edtCalc.Text := ''; end; end; procedure TMainForm.ButtonFakClick(Sender: TObject); var Num: Real; I, J: Integer; begin if Stack.Items.Count > 0 then begin Num := Pop; J := 1; for I := 1 to Round(Num) do J := J * I; Push(Round(J)); end; end; procedure TMainForm.ButtonLogClick(Sender: TObject); var Num: Real; begin if Stack.Items.Count > 0 then begin Num := Pop; Push(Log10(Num)); end; end; procedure TMainForm.ButtonMulClick(Sender: TObject); var Num1, Num2: Real; begin if Stack.Items.Count > 1 then begin Num1 := Pop; Num2 := Pop; Push(Num2 * Num1); end; end; procedure TMainForm.ButtonPiClick(Sender: TObject); begin Stack.Items.Add(FloatToStr(PI)); end; procedure TMainForm.ButtonPointClick(Sender: TObject); begin if Pos('.', edtCalc.Text) = 0 then edtCalc.Text := edtCalc.Text + '.'; end; procedure TMainForm.ButtonPosNegClick(Sender: TObject); var Num: Real; begin if Stack.Items.Count > 0 then begin Num := Pop; Push(Num * -1); end; end; procedure TMainForm.ButtonPromClick(Sender: TObject); var Num: Real; begin if Stack.Items.Count > 0 then begin Num := Pop; Push(Num / 1000); end; end; procedure TMainForm.ButtonProzClick(Sender: TObject); var Num: Real; begin if Stack.Items.Count > 0 then begin Num := Pop; Push(Num / 100); end; end; procedure TMainForm.ButtonRootClick(Sender: TObject); var Num1, Num2: Real; begin if Stack.Items.Count > 1 then begin Num1 := Pop; Num2 := Pop; Push(Power(Num2, (1 / Num1))); end; end; procedure TMainForm.ButtonRoundClick(Sender: TObject); var Num: Real; begin if Stack.Items.Count > 0 then begin Num := Pop; Push(Round(Num)); end; end; procedure TMainForm.ButtonSubClick(Sender: TObject); var Num1, Num2: Real; begin if Stack.Items.Count > 1 then begin Num1 := Pop; Num2 := Pop; Push(Num2 - Num1); end; end; procedure TMainForm.edtCalcClick(Sender: TObject); begin edtCalc.Text := Copy(edtCalc.Text, 1, Length(edtCalc.Text) - 1); end; procedure TMainForm.MenuItem1Click(Sender: TObject); begin ShowMessage('(C) 2007 by Paddy Lerner [PaddyLerner@gmail.com]'); end; procedure TMainForm.StackDblClick(Sender: TObject); begin if not Stack.ItemIndex = -1 then Stack.Items.Delete(Stack.ItemIndex); end; initialization {$I MainForm.lrs} end. |
Re: Taschenrechner
Ich muss ja nur was ganz kleines ändern nur was alles stimmt soweit ich sehe
|
Re: Taschenrechner
Ich muss ja nur was kleines, nur was?
Ich sehe kein Fehler im Code |
Re: Taschenrechner
das was du machst heißt pushen und ist erst nach 24h erlaubt (glaub mir ich hatte damit oft erfahrung :) )
|
Re: Taschenrechner
tut mir leid hatte gedacht wäre nicht drin hatte net gesehen das eine 2te seite gekommen ist
|
Re: Taschenrechner
Ich glaube auch ein Push ist nach 7 Minuten eher unwahrscheinlich ;)
Enten Mann, versuch's doch mal mit etwas Eigeninitiative, sonst lernt man nie dazu... Ist nicht böse gemeint! |
Re: Taschenrechner
i know aber ich sehe keine fehler sonst wäre er schon weg
|
Re: Taschenrechner
Am besten Du hängst dein Projekt mal hier an.
Sieht nähmlich fast so aus als ob Du die Proceduren nicht von Delphi erstellen lässt. |
Re: Taschenrechner
Liste der Anhänge anzeigen (Anzahl: 1)
ok hier der Inhalt des Projekt Ordners Rechner
|
Re: Taschenrechner
Mach mal auf die Images 0 bis 9 einen Doppelklick un dann kompiliere nochmal.
|
Re: Taschenrechner
ok nur diese sacen funtzen noch net
- (funtzen jetzt) ( (funtzen jetzt) ) (funtzen jetzt) und PI. Und das , dass Ergebnis ins Input komt procedure TForm1.GleichClick(Sender: TObject); begin end; |
Re: Taschenrechner
Mit dem Copy & Past der proceduren kannst Du schwierigkeiten bekommen wie Du ja sicherlich bemerkt hast.
Also lass das lieber Delphi erledigen - Komponente aufs Formular - Name im OI änder wie Du möchtest - entsprechende Methode im OI suchen und doppelklick - dann deinen entsprechenden Code einfügen. Aber vielmehr kann ja auch noch nicht funktionieren wenn Du noch keinen entsprechenden Code in deinem Prog hast. |
Re: Taschenrechner
Ich habe Turbo Delphi welche Delphi software ist besser?
weil diese hilfe datei bringts net |
Re: Taschenrechner
pi geht nicht, weil du bereits ein Object PI genannt hast.
Am Besten gewöhnst Du Dir an Prefix oder Postfix für Objekte zu verwenden. Zb: BtnOK, BtnPi, BtnPlus, Btn1, ... |
Re: Taschenrechner
ok danke hab alles umbennant und wie mache ich jetzt PI?
Hat jemand vllt die Hilfe Datei von Delphi bei Turbo Delphi ist so ne scheiß hilfe datei dabei |
Re: Taschenrechner
Vieleicht so?
Delphi-Quellcode:
Grüße
Edit1.Text := format('%1.4f',[pi]);
Klaus |
Re: Taschenrechner
PI ist doch 3.14...................
Danke werdes ma Testen und hast du vllt die Delphi Hilfe Datei? Welches delphi hast du? |
Re: Taschenrechner
PI auf die ersten 100 Zeichen nach dem Komma ...
Zitat:
Grüße |
Re: Taschenrechner
JO man ey wo bekomme ich diese delphi hilfe datei her?
Mein Code momentan:
Delphi-Quellcode:
unit Unit1; {Name der Unit}
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image0: TImage; Image1: TImage; Image2: TImage; Image8: TImage; Image5: TImage; Image3: TImage; Image7: TImage; Image6: TImage; Image4: TImage; Image9: TImage; Mal: TImage; Back: TImage; Geteilt: TImage; Gleich: TImage; Plus: TImage; Punkt: TImage; Rechts: TImage; Links: TImage; Minus: TImage; Exp: TImage; Edit1: TEdit; { Procedure Starts } procedure Button1Click(Sender: TObject); procedure Image0Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Image4Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Image6Click(Sender: TObject); procedure Image7Click(Sender: TObject); procedure Image8Click(Sender: TObject); procedure Image9Click(Sender: TObject); procedure btnLinksClick(Sender: TObject); procedure btnRechtsClick(Sender: TObject); procedure btnPlusClick(Sender: TObject); procedure btnPunktClick(Sender: TObject); procedure btnMalClick(Sender: TObject); procedure btnGeteiltClick(Sender: TObject); procedure btnExpClick(Sender: TObject); procedure btnMinusClick(Sender: TObject); procedure btnGleichClick(Sender: TObject); procedure GleichClick(Sender: TObject); { Procedure Ends } private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; //Hier werden die Globalen Variablen definiert implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); //Unser OnClick-Ereignis var zahl1, zahl2, ergebnis: integer; //Unsere Variablen begin Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text)) end; { Zahlen Buttons } procedure TForm1.Image0Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '0'; end; procedure TForm1.Image1Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '1'; end; procedure TForm1.Image2Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '2'; end; procedure TForm1.Image3Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '3'; end; procedure TForm1.Image4Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '4'; end; procedure TForm1.Image5Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '5'; end; procedure TForm1.Image6Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '6'; end; procedure TForm1.Image7Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '7'; end; procedure TForm1.Image8Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '8'; end; procedure TForm1.Image9Click(Sender: TObject); begin Edit1.Text := Edit1.Text + '9'; end; { Zahlen Buttons } { Symbole } procedure TForm1.btnLinksClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '('; end; procedure TForm1.btnRechtsClick(Sender: TObject); begin Edit1.Text := Edit1.Text + ')'; end; procedure TForm1.btnPlusClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '+'; end; procedure TForm1.btnMalClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '*'; end; procedure TForm1.btnMinusClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '-'; end; procedure TForm1.btnGeteiltClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '/'; end; procedure TForm1.btnPunktClick(Sender: TObject); begin Edit1.Text := Edit1.Text + ','; end; procedure TForm1.btnGleichClick(Sender: TObject); begin Edit1.Text := Edit1.Text + '=' end; procedure TForm1.btnExpClick(Sender: TObject); begin Edit1.Text := format('%1.4f',[pi]); end; { Symbole } end. |
Re: Taschenrechner
btnLinksClick... so war das nicht gemeint, ein Image btn zu nennen.
Wenn das Programm mal etwas größer wird wirst Du wahrscheinlich nicht mal mehr selbst durchsteigen. Vieleicht währe erst mal einer Anfängertutorial nicht schlecht. Edit: Hier mal ein kleiner Überblick für Abkürzungen und ein Tutorial ![]() |
Re: Taschenrechner
Danke Blackheart
|
Re: Taschenrechner
Hier mal eine kurze Idee, wie ich es wohl machen würde:
1. Ein Edit auf dem Formular platzieren, in edInput umbenennen und ReadOnly auf true setzen. 2. 9 Images nehmen und ebenfalls auf dem Formular platzieren und entsprechend anordnen. 3. Den Images erstmal aussagekräftige Namen geben, z.B. imgZahl1 - imgZahl9 4. Den Images die entsprechenden Bilder zuweisen. 5. Den Images über den OI Tags zuweisen: Dem Bild mit der Zahl 1 den Tag 1 zuweisen, der 2 den Tag 2 usw. 6. Einem Image eine OnClick-Routine hinzufügen. Dazu im OI auf "Ereignisse" wechseln und hinter "OnClick" einen Doppelklick machen. Im Quelltext in deiner OnClick-Routine dann folgendes:
Delphi-Quellcode:
7. Diese Routine musst du nun allen 9 Images zuweisen. Dazu wählst du sie alle auf deinem Formular aus und wählst aus der Liste bei den OnClick-Ereignissen im OI imgZahl1Click aus. Somit rufen alle neun Images die gleiche Routine auf.
edInput.Text := edInput.Text + inttostr((Sender as TImage).Tag);
Neu für dich dürfte der letzte Teil des Codes sein. inttostr() ändert eine Zahl (integer) in eine Zeichenkette (string) um. Sender ist der "Aufrufer" der Routine, also je nach Image eben diese Komponente. Den Tag des Images legst du ja zuvor für alle Zahlen fest. Je nach "Aufrufer" ist dieser also anders und beinhaltet immer die Zahl. Versuch es mal so, wie ich es dir beschrieben habe. Wenn alles klappt, dann kommt der nächste Schritt mit den Rechenzeichen. Wenn was unklar sein sollte, einfach fragen ;-) Patti |
Re: Taschenrechner
Oh ne doch en Prob irgendwie funtz das mit dem imgZahl1Click net hab alles amrkiert aber kann das dann net auswählen.
EDIT: Habe sie alle einzeln gemacht aber irgendwas ist flasch das Fenster kommt und schließt sofort wieder. Hier der Code, weiß net was nicht was kaputt ists es sofort wieder zugeht:
Delphi-Quellcode:
unit Unit1; {Name der Unit}
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Header: TImage; imgZahl1: TImage; imgZahl2: TImage; imgZahl3: TImage; imgZahl4: TImage; imgZahl5: TImage; imgZahl6: TImage; imgZahl7: TImage; imgZahl8: TImage; imgZahl9: TImage; imgZahl0: TImage; imgLinks: TImage; imgGeteilt: TImage; imgBack: TImage; imgExp: TImage; imgGleich: TImage; imgMinus: TImage; imgPlus: TImage; imgRechts: TImage; imgPunkt: TImage; procedure imgZahl1Click(Sender: TObject); { Procedure Starts } { Procedure Ends } private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; //Hier werden die Globalen Variablen definiert implementation {$R *.DFM} procedure TForm1.imgGleichClick(Sender: TObject); //Unser OnClick-Ereignis var zahl1, zahl2, ergebnis: integer; //Unsere Variablen begin edInput.Text:=IntToStr(2*StrToInt(Edit1.Text)) end; procedure TForm1.imgZahl1Click(Sender: TObject); begin edInput.Text := edInput.Text + inttostr((Sender as TImage).Tag); end; end. |
Re: Taschenrechner
Hier ist nochmal ein Beispielprogramm zur Berechnung von Pi.
Möge es dir helfen. Gruß Mokuba01 |
Re: Taschenrechner
Zitat:
|
Re: Taschenrechner
Liste der Anhänge anzeigen (Anzahl: 1)
Oh, Mist!!! :wall: Hatte vollkommen vergessen anzuhengen!!! :wall: :wall: :wall:
Hier kommts (Und zwar wirklich). Gruß Mokuba01 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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