Delphi-PRAXiS

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)

-Ptype- 11. Mai 2010 10:58


Delphiproblem - Taschenrechner brauche hilfe !
 
Hallo Delphi-Community,
bin jetzt erst seit kurzem am Delphi proggen.
Wie viele andere fange ich auch mit einem Taschenrechner an :)
In der Suche habe ich leider nichts zu meinem Problem gefunden und google spuckt auch nur Müll aus.

Zu meinem Problem:

Also ich habe ein Edit-Feld in dieses werden Zahlen durch Button Klicks eingefügt.
Rechenarten habe ich schon einige jedoch fehlt mir noch eine die ich gerne einbauen würde bei der ihr mir eventuell auch helfen könntet (wobei dies eigentlich nicht mein richtiges problem ist. Dazu später mehr). So ich habe auch einen Komma Button der auch einwandfrei funktioniert, allerdings kommt jetzt mein Problem: Ich habe eine Del button der die letzte ziffer löscht, allerdings hab ich meinem komma button zugewiesen, dass er nach einmaligem drücken auf Enabled := False ist, damit man nicht in eine zahl 2 Kommas einbauen kann. Nun will ich es aber so haben das wenn ich z.B. die zahl 17,5 habe und dann 2 mal auf den DEL button drücke, sodass das komma weg ist der Komma button wieder auf enabled := True springt.

Zur rechenart die ich noch gerne haben würde, wäre die n-te wurzel aus x zu berechnen ohne die function oder wie das auch genannt wir "Power" aus der Unit math zu verwenden.

Ich hoffe ihr versteht mein/e Problem/e und könnt mir so schnell wie möglich helfen.

Schon mal ein Dickes Danke an alle die mir helfen :D

Mfg Alex

Wolfgang Mix 11. Mai 2010 11:23

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Zur rechenart die ich noch gerne haben würde, wäre die n-te wurzel aus x zu berechnen ohne die function oder wie das auch genannt wir "Power" aus der Unit math zu verwenden.
Wenn die Funktion power nicht erwünscht ist, machst du das mit Hilfe der
Logarithmengesetze, am einfachsten mit dem natürlichen Logarithmus und
einer e-Funktion.

-Ptype- 11. Mai 2010 11:29

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Wenn die Funktion power nicht erwünscht ist, machst du das mit Hilfe der
Logarithmengesetze, am einfachsten mit dem natürlichen Logarithmus und
einer e-Funktion.
Danke für die schnelle Antwort :), aber wie schon oben geschrieben hab ich erst vor kurzem angefangen und weiß deshalb jetzt nicht genau was du damit meinst.
Es wäre nett wenn du mir ein Beispiel geben könntest oder es genauer erklären könntest.

Hoffe es findet sich noch jemand der mir bei meinem erstem Problem helfen kann :wink:

Wolfgang Mix 11. Mai 2010 11:35

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Delphi-Quellcode:
// nte Wurzel aus x
procedure TForm1.Button1Click(Sender: TObject);
var x,n,Ergebnis:double;
begin
  x:=StrToFloat(Edit1.Text);
  n:=3;
  Ergebnis:=exp((1/n)*ln(x));
  Edit2.Text:=FloatToStr(Ergebnis);
end;
[Edit] Das Ganze funktioniert auch ohne unit math. [/Edit]

Google einmal nach Logarithmen, Potenzen und Wurzeln oder schaue
in deine Mathe-Formelsammlung. :)

-Ptype- 11. Mai 2010 11:42

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Das Ganze funktioniert auch ohne unit math.

Google einmal nach Logarithmen, Potenzen und Wurzeln oder schaue
in deine Mathe-Formelsammlung.
Und wieder kann ich nur meinen Dank aussprechen :D

Wolfgang Mix 11. Mai 2010 11:44

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Gerne wieder :)

PS: 2 Fragen --> 2 Threads !

himitsu 11. Mai 2010 11:48

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Erstmal wissen wir garnicht wie dein Taschenrechner arbeitet, da ist es schwer zu sagen, wie du was lösen kannst.

Dann kann ich garnicht verstehen, wie du nichts finden konntest, denn immerhin gibt es alleine mehrere Taschenrechner und Mathe-Bibliotheken hier in der DP, da sollte sich langsam mal für alles eine Lösung finden lassen.

Zitat:

Zitat von -Ptype-
Zur rechenart die ich noch gerne haben würde, wäre die n-te wurzel aus x zu berechnen ohne die function oder wie das auch genannt wir "Power" aus der Unit math zu verwenden.

Tja, das sagt abernichts darüber aus, was du alles zum Lösen nutzen kannst.

PS: Es läßt sich eigentlich fast jede mathematische Operation auf die grundlegenste Operation reduzueiren.
> Die Addition
Das ginge selbst mit sowas, wie den Wurzeln.

PSS: Wenn ich mal so in meine letze Mathe-Lib reinschaue, dann wurde wird da grundsätzlich alles manuell errechnet und diese Lib ist hier in der DP zu finden.
In diese Lib ist zwar keine Funktion für die n-te Wurzel zu finden, aber wenn man sich das "einfache" Prinzip der "Quadratwurzel" ansieht, dann ist es ein Leichtes dieses für eine mehrfache Wurzelfunktion zu verwenden.




Zu dem Komma ... wenn dein Löschbutton das Komma löscht (du kannst ja vor dem Löschen prüfen was gelöscht wird), dann stellst du einfach das Button.Enable wird auf True und fertig.
Ist das denn so schwer?

PS: Hier mal eine etwas ältere und einfache Power-Funktio aus Delphi.
(in neueren Versionen ist ja eine optimiertere Variante verbaut)
Delphi-Quellcode:
{ Power: Raise base to any power.
  For fractional exponents, or |exponents| > MaxInt, base must be > 0. }
function Power(const Base, Exponent: Extended): Extended;
begin
  if Exponent = 0.0 then
    Result := 1.0               { n**0 = 1 }
  else if (Base = 0.0) and (Exponent > 0.0) then
    Result := 0.0               { 0**n = 0, n > 0 }
  else if (Frac(Exponent) = 0.0) and (Abs(Exponent) <= MaxInt) then
    Result := IntPower(Base, Integer(Trunc(Exponent)))
  else
    Result := Exp(Exponent * Ln(Base))
end;

-Ptype- 11. Mai 2010 12:02

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Erstmal wissen wir garnicht wie dein Taschenrechner arbeitet, da ist es schwer zu sagen, wie du was lösen kannst.

Dann kann ich garnicht verstehen, wie du nichts finden konntest, denn immerhin gibt es alleine mehrere Taschenrechner und Mathe-Bibliotheken hier in der DP, da sollte sich langsam mal für alles eine Lösung finden lassen.
Dazu kann ich falls du mir dadurch helfen kannst meinen Quellcode posten und nur das dus weißt das ist bei mir für die schule und wir haben mit dem thema erst grade angefangen:

Zitat:

-Ptype- hat folgendes geschrieben:
Zur rechenart die ich noch gerne haben würde, wäre die n-te wurzel aus x zu berechnen ohne die function oder wie das auch genannt wir "Power" aus der Unit math zu verwenden.

Tja, das sagt abernichts darüber aus, was du alles zum Lösen nutzen kannst.

PS: Es läßt sich eigentlich fast jede mathematische Operation auf die grundlegenste Operation reduzueiren.
> Die Addition
Das ginge selbst mit sowas, wie den Wurzeln.

PSS: Wenn ich mal so in meine letze Mathe-Lib reinschaue, dann wurde wird da grundsätzlich alles manuell errechnet und diese Lib ist hier in der DP zu finden.
In diese Lib ist zwar keine Funktion für die n-te Wurzel zu finden, aber wenn man sich das "einfache" Prinzip der "Quadratwurzel" ansieht, dann ist es ein Leichtes dieses für eine mehrfache Wurzelfunktion zu verwenden.
Falls du es noch nicht gelesen hast hab ich darauf bereits eine antwort bekommen und der Antwortgeber hat mir es so gegeben das es bei mir funktioniert.

Zitat:

Zu dem Komma ... wenn dein Löschbutton das Komma löscht (du kannst ja vor dem Löschen prüfen was gelöscht wird), dann stellst du einfach das Button.Enable wird auf True und fertig.
Ist das denn so schwer?
wie zum ersten zitat geschrieben hab ich vor kurzem angefangen und das programmieren interessiert mich. Ich kann auch nichts dafür wenn ich nicht genau das finde was ich brauche und wenn google nicht das ausspuckt was ich gerade brauche. Zufälligerweise weiß ich leider nicht wie ich das prüfen kann und da denke ich mir wäre es besser von jemandem hilfe zu bekommen, anstatt das ich hier von einer Community die sich eigentlich gegenseitig helfen soll, angemotzt werde weil ich etwas nicht kann!

-Ptype- 11. Mai 2010 12:06

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Gerne wieder

PS: 2 Fragen --> 2 Threads !
Dankeschön, werde ich beim nächsten Mal beachten ^^

user0815 11. Mai 2010 12:11

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Pack die Abfrage doch in das Edit Feld:

Button1 = Komma

Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Ansipos(DecimalSeparator, Edit1.Text) > 0
   then Button1.Enabled := False
    else Button1.Enabled := True;
end;

Wolfgang Mix 11. Mai 2010 12:14

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zur Beantwortung deiner ersten Frage wirst du wohl
ein bisschen Quellcode zeigen müssen :)

-Ptype- 11. Mai 2010 12:19

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Delphi-Quellcode: markieren
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Ansipos(DecimalSeparator, Edit1.Text) > 0
then Button1.Enabled := False
else Button1.Enabled := True;
end;
okay danke für den code, aber jetzt bräuchte ich nochmal ein bisschen erklärung:
Also procedur ist klar das soll das Edit Feld sein, Decimalseperator soll die Trennung der Dezimalzahl durch das Komma sein.
aber was hat das >0 am ende zu bedeuten :S

Zitat:

Zur Beantwortung deiner ersten Frage wirst du wohl
ein bisschen Quellcode zeigen müssen
Hab die Frage jetzt beantwortet gekriegt aber poste trotzdem auf Wunsch meinen Code :)


Danke an alle die mir geholfen haben :D

Noedel 11. Mai 2010 12:25

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
das >0 bedeutet, dass das Komma (',') im Edit.Text enthalten ist (Also an der Position >=1). Ansonsten, wenn das Komma nicht enthalten ist, bekommt man 0 ausgespuckt.

Noedel

himitsu 11. Mai 2010 12:26

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

Zitat von -Ptype-
und nur das dus weißt das ist bei mir für die schule und wir haben mit dem thema erst grade angefangen

Hab ich mir fast schon gedacht, aber dennoch weiß man jetzt immernoch nicht, wie die Aufgabenstellung heißt
oder ob es wirklich bedeutet "dem Lehrer isses egal, Hauptsache kein Power".

PS: Das IntPower in der gezeigten Funktion kann man weglassen, da es "nur" eine Optimierung der letzen Zeile darstellt.


Zitat:

Falls du es noch nicht gelesen hast hab ich darauf bereits eine antwort bekommen
Nach dem Absenden hatte ich es dann gesehn ... manchmal vergißt die DP einem zu sagen, daß es schon eine Antwort gibt. :stupid:

@user0815: Das läßt sich auch noch etwas kürzen.
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  Button1.Enabled := Pos(DecimalSeparator, Edit1.Text) = 0;
  // bzw. Button1.Enabled := Pos(',', Edit1.Text) = 0;
end;
Zitat:

Zitat von -Ptype-
aber was hat das &gt;0 am ende zu bedeuten :S

Rate mal (oder schau in die OH), was AnsiPos oder einfach nur Delphi-Referenz durchsuchenPos für ein Ergebnis liefert und was >0 damit macht. :zwinker:

Ergebnis=0 ... nicht gefunden
Ergebnis>0 ... gefunden

Ergebnis = Position des Suchwortes

[edit] OK, jetzt wurde mal der Post von Noedel angezeigt, aber ich sende es dennoch ab. :angel:

-Ptype- 11. Mai 2010 12:33

Re: Delphiproblem - Taschenrechner brauche hilfe !
 
Zitat:

das >0 bedeutet, dass das Komma (',') im Edit.Text enthalten ist (Also an der Position >=1). Ansonsten, wenn das Komma nicht enthalten ist, bekommt man 0 ausgespuckt.

Noedel

Zitat:

-Ptype- hat folgendes geschrieben:
aber was hat das &gt;0 am ende zu bedeuten :S

Rate mal (oder schau in die OH), was AnsiPos oder einfach nur Pos für ein Ergebnis liefert und was >0 damit macht.

Ergebnis=0 ... nicht gefunden
Ergebnis>0 ... gefunden

Ergebnis = Position des Suchwortes
Danke euch beiden ^^

Zitat:

Hab ich mir fast schon gedacht, aber dennoch weiß man jetzt immernoch nicht, wie die Aufgabenstellung heißt
oder ob es wirklich bedeutet "dem Lehrer isses egal, Hauptsache kein Power".

PS: Das IntPower in der gezeigten Funktion kann man weglassen, da es "nur" eine Optimierung der letzen Zeile darstellt.
Wir haben jetzt letzte woche in der schule damit angefangen, und daraufhin meinte mein Lehrer das wir uns nächste Stunde anschauen wie man x hoch n bzw n-te wurzel aus x berechnet, wobei er zu den x hoch n gesagt hatte das wir das mit nem string machen und da man wie ich schon in manchen foren gelesen habe beides mit power machen kann dachte ich mir halt wenn du x hoch n mit nem string lösen sollst löst du auch n-te wurzel aus x mit nem string oder etc. halt außer mit power

biby90 27. Jul 2011 15:10

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
hallo leute!
da ich so ein ähnliches problem habe schreib ichs mal hier rein.

ich programmiere einen taschenrechner mit nur einem editfeld. weiß aber nicht wie ich das machen soll wenn man + geklickt hat, man dann ne neue zahl eingibt und die beiden zusammgerechnet wird.
wäre cool wenn ihr mir helfen könnt.

gruß

himitsu 27. Jul 2011 15:20

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
Du mußt praktisch den eigebenen Text zerlegen (parsen) und dann entsprechend behandeln (ausrechnen).


Tipp: SuFu / Forensuche / ...

Es gibt hier schon Unmassen an Threads zu dem Thema, dann noch mehrere Mathe-Parser, fertige Taschenrechner und einige Tutorials, wo man abgucken kann. :angle2:
(ja, auch von mir verstecken sich hier mindestens 2 Taschenrechner)

biby90 27. Jul 2011 15:59

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
komme i-wie trotzdem net weiter... also dder kann sich zu mindest schonma zahl1 merken. aber wenn ich auf + klicke wird 0 und das soll nicht. und mit dem = weiß ich auch net weiter.

DeddyH 27. Jul 2011 16:05

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
Wenn man einmal Punkt- vor Strichrechnung, Klammern usw. ignoriert, dann ist es doch ganz einfach:
- Zwischenergebnis = 0
- Eingabe eines Operanden -> in Variable merken
- Eingabe eines Operators (/, *, +, -, =) -> Zwischenergebnis ermitteln und darstellen, Operator merken

P.S.: Ich möchte nochmals darum bitten, in einigermaßen vernünftigem Deutsch zu schreiben, das ist dann nicht so anstrengend zu lesen, das ist schließlich ein Forum hier und kein Chat.

biby90 27. Jul 2011 16:12

AW: Delphiproblem - Taschenrechner brauche hilfe !
 
naja dieser "slang" is überall gängig... aber naja

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 &#8211; 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 14:25 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