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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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