Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Taschenrechner (https://www.delphipraxis.net/106993-taschenrechner.html)

Enten Mann 20. Jan 2008 14:12


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.

Larsi 20. Jan 2008 14:15

Re: Taschenrechner
 
speichere den inhalt der textbox doch in ne variable!

rawsoul 20. Jan 2008 14:21

Re: Taschenrechner
 
Delphi-Quellcode:
  zahl1:=StrToInt(Edit1.Text);
  zahl2:=StrToInt(Edit1.Text);
  ergebnis:=zahl1+zahl2;
  Edit1.Caption:=IntToStr(ergebnis);
Huch, warum denn so umständlich? Und was soll eine Caption eines Editfeldes sein?
Wie wäre es hiermit:

Delphi-Quellcode:
Edit1.Text:=IntToStr(2*StrToInt(Edit1.Text))
//Edit: Wieso funktionieren denn die Delphitags nicht?


[edit=Matze]Der Haken "BBCode in diesem Beitrag deaktivieren" war gesetzt. ;) ich habe ihn soeben entfernt. MfG, Matze[/edit]

Enten Mann 20. Jan 2008 14:31

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?

rawsoul 20. Jan 2008 14:33

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.

dominikkv 20. Jan 2008 14:36

Re: Taschenrechner
 
Sind diese "Zahlen" Buttons auf deinem Formular?
Wenn ja dann einfach im onClick-Event zB schreiben:
Delphi-Quellcode:
procedure TForm1.ButtonMinusClick(Sender: TObject);
begin
  edInput.Text := edInput.Text + '-'; // edInput ist das Edit
end;
edit: Es werden wohl Images sein... aber die haben auch ein onClick :zwinker:

Enten Mann 20. Jan 2008 14:46

Re: Taschenrechner
 
Hier ein Screen


http://www1.picfront.org/picture/pEM...img/Screen.gif



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.

Enten Mann 20. Jan 2008 14:58

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

Klaus01 20. Jan 2008 15:01

Re: Taschenrechner
 
Hallo,

muß man nicht errechnen, es gibt eine Funktion dafür:

Zitat:

Zitat von DelphiHilfe
Unit

System

Category

arithmetic routines

function Pi: Extended;

Description

Use Pi in mathematical calculations that require pi, the ratio of a circle's circumference to its diameter. Pi is approximated as 3.1415926535897932385.

.. und wenn Du es unbedingt berechnen willst, hilft ein Blick bei Wikipedia.

Grüße
Klaus

Enten Mann 20. Jan 2008 15:08

Re: Taschenrechner
 
Wo find ich Infos zu dieser Function?

Klaus01 20. Jan 2008 15:09

Re: Taschenrechner
 
Die Delphi Hilfe aufrufen, pi eingeben.

Grüße
Klaus

Enten Mann 20. Jan 2008 15:14

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.

dominikkv 20. Jan 2008 15:21

Re: Taschenrechner
 
hast du bei jedem Image das onClick mit der entsprechenden Prozedur verknüpft?

Enten Mann 20. Jan 2008 15:32

Re: Taschenrechner
 
Ja habe ich sieht man ja auch im Code ich sehe keine Fehler.

das Meine Procedures

Delphi-Quellcode:
    { 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 }
Das die Images

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;

PaddyL 20. Jan 2008 15:34

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.

Enten Mann 20. Jan 2008 15:36

Re: Taschenrechner
 
Ich muss ja nur was ganz kleines ändern nur was alles stimmt soweit ich sehe

Enten Mann 20. Jan 2008 15:43

Re: Taschenrechner
 
Ich muss ja nur was kleines, nur was?

Ich sehe kein Fehler im Code

Larsi 20. Jan 2008 15:47

Re: Taschenrechner
 
das was du machst heißt pushen und ist erst nach 24h erlaubt (glaub mir ich hatte damit oft erfahrung :) )

Enten Mann 20. Jan 2008 15:52

Re: Taschenrechner
 
tut mir leid hatte gedacht wäre nicht drin hatte net gesehen das eine 2te seite gekommen ist

rawsoul 20. Jan 2008 16:05

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!

Enten Mann 20. Jan 2008 16:07

Re: Taschenrechner
 
i know aber ich sehe keine fehler sonst wäre er schon weg

Blackheart 20. Jan 2008 16:38

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.

Enten Mann 20. Jan 2008 16:46

Re: Taschenrechner
 
Liste der Anhänge anzeigen (Anzahl: 1)
ok hier der Inhalt des Projekt Ordners Rechner

Blackheart 20. Jan 2008 17:01

Re: Taschenrechner
 
Mach mal auf die Images 0 bis 9 einen Doppelklick un dann kompiliere nochmal.

Enten Mann 20. Jan 2008 17:20

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;

Blackheart 20. Jan 2008 18:20

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.

Enten Mann 20. Jan 2008 18:55

Re: Taschenrechner
 
Ich habe Turbo Delphi welche Delphi software ist besser?

weil diese hilfe datei bringts net

Andy090778 20. Jan 2008 20:48

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, ...

Enten Mann 21. Jan 2008 12:22

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

Klaus01 21. Jan 2008 12:25

Re: Taschenrechner
 
Vieleicht so?

Delphi-Quellcode:
Edit1.Text := format('%1.4f',[pi]);
Grüße
Klaus

Enten Mann 21. Jan 2008 12:33

Re: Taschenrechner
 
PI ist doch 3.14...................

Danke werdes ma Testen und hast du vllt die Delphi Hilfe Datei?

Welches delphi hast du?

quendolineDD 21. Jan 2008 12:40

Re: Taschenrechner
 
PI auf die ersten 100 Zeichen nach dem Komma ...

Zitat:

π = 3,14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679 ...
Es sind Firmen direkt tätig mit einem riesen Netzwerk an Rechnern weltweit, um neue Nachkommastellen von Pi zu berechnen ... Ich würde mich mit den paar zufrieden geben ;) Kannst ja eh nicht alles anzeigen. Speicher dir doch entweder Pi nochmal als Konstante (oder in Unit Math dürfte Pi auch deklariert sein)

Grüße

Enten Mann 21. Jan 2008 12:52

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.

Blackheart 21. Jan 2008 13:23

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
http://www.epinasoft.com/delphikurs/dkk_compnames.html

Enten Mann 21. Jan 2008 13:28

Re: Taschenrechner
 
Danke Blackheart

patti 21. Jan 2008 15:57

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:
edInput.Text := edInput.Text + inttostr((Sender as TImage).Tag);
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.

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

Enten Mann 21. Jan 2008 17:21

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.

Mokuba01 21. Jan 2008 18:15

Re: Taschenrechner
 
Hier ist nochmal ein Beispielprogramm zur Berechnung von Pi.
Möge es dir helfen.
Gruß Mokuba01

Enten Mann 21. Jan 2008 18:59

Re: Taschenrechner
 
Zitat:

Zitat von Mokuba01
Hier ist nochmal ein Beispielprogramm zur Berechnung von Pi.
Möge es dir helfen.
Gruß Mokuba01

wo denn?

Mokuba01 21. Jan 2008 20:38

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 09:08 Uhr.
Seite 1 von 2  1 2      

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