Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Delphiproblem - Taschenrechner brauche hilfe ! (https://www.delphipraxis.net/151281-delphiproblem-taschenrechner-brauche-hilfe.html)

himitsu 27. Jul 2011 16:17

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
Liste der Anhänge anzeigen (Anzahl: 2)
:glaskugel:

Im Prinzip wäre es nicht schlecht, wenn du uns zeigen würdes, was du schon hast, bzw. wie der entsprechend Code (die Funktion) aktuell aussieht.
Sonst können wir schlecht rausbekommen was bei dir nicht funktioniert.


und wie bereits genannt:
Hier im Forum suchenMathe-Parser
Hier im Forum suchenMatheparser
Hier im Forum suchenFormelparser
...

[add]
wie z.B. http://www.delphipraxis.net/140346-t...kommazahl.html
über diesen Thread ist unter Anderem auch dieses Rechner entstanden (weiß nur gerade nicht, wo diese EXE genau angehängt wurde) und der läßt sich auch über die Tastatur bediehnen.

biby90 27. Jul 2011 16:50

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
unit Unit1;

interface

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

type
TEingabemodus = (emAusgabe,emLoeschen,emZahleneingabe);

type
TRechenmodus = (rmAdd,rmSub,rmMult,rmDiv);

type
TForm1 = class(TForm)
txt_rechnung: TEdit;
cmd_7: TButton;
Label1: TLabel;
cmd_clear: TButton;
cmd_div: TButton;
cmd_gleich: TButton;
cmd_0: TButton;
cmd_komma: TButton;
cmd_1: TButton;
cmd_2: TButton;
cmd_3: TButton;
cmd_mul: TButton;
cmd_6: TButton;
cmd_5: TButton;
cmd_4: TButton;
cmd_add: TButton;
cmd_9: TButton;
cmd_8: TButton;
cmd_sub: TButton;
procedure cmd_clearClick(Sender: TObject);
procedure cmd_1Click(Sender: TObject);
procedure cmd_2Click(Sender: TObject);
procedure cmd_3Click(Sender: TObject);
procedure cmd_4Click(Sender: TObject);
procedure cmd_5Click(Sender: TObject);
procedure cmd_6Click(Sender: TObject);
procedure cmd_7Click(Sender: TObject);
procedure cmd_8Click(Sender: TObject);
procedure cmd_9Click(Sender: TObject);
procedure cmd_0Click(Sender: TObject);
procedure cmd_divClick(Sender: TObject);
procedure cmd_mulClick(Sender: TObject);
procedure cmd_subClick(Sender: TObject);
procedure cmd_addClick(Sender: TObject);

procedure ZahlenMerken;
procedure ZahlNeu;
private
{ Private-Deklarationen }
EingabeModus : TEingabeModus;
RechenModus : TRechenModus;



public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
Zahl1, Zahl2, Zahl3: Integer;





implementation

{$R *.dfm}

procedure TForm1.cmd_0Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(0);
end;

procedure TForm1.cmd_1Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(1);
end;

procedure TForm1.cmd_2Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(2);
end;

procedure TForm1.cmd_3Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(3);
end;

procedure TForm1.cmd_4Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(4);
end;

procedure TForm1.cmd_5Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(5);
end;

procedure TForm1.cmd_6Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(6);
end;

procedure TForm1.cmd_7Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(7);
end;

procedure TForm1.cmd_8Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(8);
end;

procedure TForm1.cmd_9Click(Sender: TObject);
begin
txt_rechnung.Text := txt_rechnung.Text + IntToStr(9);
end;

procedure TForm1.cmd_addClick(Sender: TObject);
begin
label1.Caption := '+';
ZahlenMerken;
txt_rechnung.Text := IntToStr(zahl1 + Zahl2);

end;

procedure TForm1.cmd_clearClick(Sender: TObject);
begin
txt_rechnung.Clear;

end;

procedure TForm1.cmd_divClick(Sender: TObject);
begin
label1.Caption := '/' ;

end;

procedure TForm1.cmd_mulClick(Sender: TObject);
begin
label1.Caption := '*' ;
end;

procedure TForm1.cmd_subClick(Sender: TObject);
begin
label1.Caption := '-' ;
end;

procedure TForm1.ZahlenMerken;
begin
if Eingabemodus = emZahleneingabe then
Zahl1 := strToInt(txt_rechnung.text);
Eingabemodus := emLoeschen;
if Eingabemodus = emZahleneingabe then
Zahl2 := strToInt(txt_rechnung.text);
Eingabemodus := emLoeschen;
end;

procedure TForm1.ZahlNeu;
begin
if Eingabemodus = (emLoeschen) then
begin
txt_rechnung.Text := '';
end;
Eingabemodus := emZahleneingabe;
end;

end.




das isser

DeddyH 27. Jul 2011 16:58

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
Benutze doch bitte die Delphi-Tags für Quelltexte (die Schaltfläche mit dem Helm im Editor). Und Dein Zahlenmerken sieht etwas komisch aus.
Zitat:

Delphi-Quellcode:
Eingabemodus := emLoeschen;
if Eingabemodus = emZahleneingabe then //kann ja nie wahr sein, siehe Zeile darüber


biby90 28. Jul 2011 09:04

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
so gut so weit.
jetzt habe ich das problem dass er '-' nicht als operator erkennt.
Delphi-Quellcode:
procedure TForm1.cmd_mulClick(Sender: TObject);
begin
  label1.Caption := '*' ;
if Rechenart = 0 then
  Speicher := StrToFloat(txt_rechnung.text);
if Rechenart = 1 then
  Speicher := Speicher + StrToFloat(txt_rechnung.text);
if Rechenart = 2 then
  Speicher := Speicher – StrToFloat(txt_rechnung.text); // also hier
if Rechenart = 3 then
  Speicher := Speicher * StrToFloat(txt_rechnung.text);
if Rechenart = 4 then
  Speicher := Speicher / StrToFloat(txt_rechnung.text);
Rechenart := 3;
txt_rechnung.text := '';
end;
hatte ja die hoffnung das geht jetzt aber war wohl mal wieder nichts.

biby90 28. Jul 2011 09:23

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
ok hab es rausbekommen.
jetzt will er es aber nicht zusammenrechnen wenn ich = klicke.
Delphi-Quellcode:
procedure TForm1.cmd_gleichClick(Sender: TObject);
begin
txt_rechnung.text := FloatToStr(Speicher);
Speicher := 0;
Rechenart := 0;
end;
was habe ich denn da wieder falsch?

himitsu 28. Jul 2011 09:37

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
Du machst da genau das Selbe wie in cmd_mulClick, also entsprechend der letzen Rechnung zusammenrechnen.

PS: Die Berechnungen kannst du in eine eigene Methode auslagern und dann brauchst'e die nur noch überall in deinen Berechnungs-Klickmethoden aufzurufen und danach jeweils den Operator (Rechenart), für die nächste Berechnung zu setzen.

biby90 28. Jul 2011 09:55

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
habe es jetzt so gelöst
Delphi-Quellcode:
Procedure Rechenarten;  //eigene Prozedur


procedure TForm1.Rechenarten;
begin
  if Rechenart = 0 then
    Speicher := StrToFloat(txt_rechnung.text);
  if Rechenart = 1 then
    Speicher := Speicher + StrToFloat(txt_rechnung.text);
  if Rechenart = 2 then
    Speicher := Speicher - StrToFloat(txt_rechnung.text);
  if Rechenart = 3 then
    Speicher := Speicher * StrToFloat(txt_rechnung.text);
  if Rechenart = 4 then
    Speicher := Speicher / StrToFloat(txt_rechnung.text);
end;

procedure TForm1.cmd_gleichClick(Sender: TObject);
begin
  Rechenarten;
  txt_rechnung.text := FloatToStr(Speicher);
  Speicher := 0;
  Rechenart := 0;
aber er streikt immer noch

DeddyH 28. Jul 2011 10:16

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
Interessant. Und inwiefern "streikt er"? Was ist Speicher? :glaskugel:

biby90 28. Jul 2011 11:00

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
ich habs jetzt!
ich habe nur vergessen den eingegebenen Wert in den Speicher zu verschieben sobald man eine rechenoperation klickt!
Delphi-Quellcode:
procedure TForm1.cmd_divClick(Sender: TObject);
begin
  label1.Caption := '/' ;
  Rechenarten;
  Rechenart := 4;
  Speicher := StrToFloat(txt_Rechnung.Text);
  txt_rechnung.text := '';
end;

biby90 28. Jul 2011 13:31

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
@deddyh
also er wollte es nicht zusammen rechnen....


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.
Seite 3 von 3     123   

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