AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner Ausgabe

Ein Thema von safak67 · begonnen am 5. Jun 2009 · letzter Beitrag vom 8. Jun 2009
Thema geschlossen
Seite 1 von 8  1 23     Letzte »    
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#1

Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:31
Hallo erstmal,

ich habe Probleme mit der Ausgabe von dem Taschenrechner. Ich kriege iwi keine Ausgabe. Vllt kann einer helfen

Delphi-Quellcode:
function TFormTR.BerechneTerm(Formular: string): Double;

  var Seg1,Seg2 : double;
      index : integer;
      Op : string;
begin
  Formular := LabelAnzeige.Caption;
  for index := 0 to 3 do
  begin
    case index of
    0: Op := '*';
    1: Op := '/';
    2: Op := '+';
    3: Op := '-';
    end;
    if pos(Op,Formular) > 1 then
    begin
      Seg1 := BerechneTerm(copy(Formular,1,pos(Op,Formular) - 1));
      Seg2 := BerechneTerm(copy(Formular,pos(Op,Formular) + 1,length(Formular)));
      case index of
        0: Result := Seg1 + Seg2;
        1: Result := Seg1 - Seg2;
        2: Result := Seg1 * Seg2;
        3: Result := Seg1 / Seg2;
     end;
  end;
end;
   Result := StrToFloat(FloatToStr(BerechneTerm(LabelAnzeige.Caption)));

end;
 
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:40
Vielleicht sollest du einfach deinen eigenen Sourcecode gründlich lesen.
Hast du einen Drucker? Dann bitte drucken und lesen.
Hier ein kleiner verkürzter Ausschnitt:
Delphi-Quellcode:
function TFormTR.BerechneTerm(Formular: string): Double;
...
begin
  Formular := LabelAnzeige.Caption; // ***
Die markierte Zeile ist ja wohl "Quatsch" - wozu übergibst du der Funktion den Parameter "Formular",
wenn dieser Parameter sogleich in der 1. Zeile überbügelt wird?
 
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:45
Hai safak67,

schaue Dir auch mal diese Codezeile genau an:

Result := StrToFloat(FloatToStr(BerechneTerm(LabelAnzeige.Caption))); Dir müsste hier sofort etwas auffallen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#4

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:49
Mit dem linken Teil ist was nicht i.O
 
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:54
Zitat von safak67:
Mit dem linken Teil ist was nicht i.O
Links ist da, wo der Daumen rechts ist. Schau aber einmal in die Mitte dieser Code-Zeile: was wird zuletzt gemacht, was wird unmittelbar davor gemacht, und was bedeutet beides zusammen?

Anderes Beispiel: Du schläfst, dann stehst du auf, dann schläfst du wieder ein. Was hat sich dadurch geändert?

Jürgen

PS. Ich wundere mich schon über die Geduld, mit der du über Tage hinweg immer wieder die gleichen Fragen stellst und trotzdem Antworten bekommst.

PS2. Du willst das Ergebnis ausgeben. Wo und wie denn bitte? Wenn du das einmal angeben würdest, würdest du vielleicht auf eine der vielen möglichen Lösungen kommen. Bisher schreibst du aber nur, wie gerechnet werden soll.
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
 
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:56
Zitat von safak67:
Mit dem linken Teil ist was nicht i.O
Das meine ich nicht. Schau doch mal genau hin.
Hier mal der Ablauf dieser Zeile:

1. Berechne den Term aus LabelAnzeige.Caption
2. Wandele dieses Fliesskommawert in einen String um
3. Wandele diesen String in einen Fliesskommawert um
Stephan B.
"Lasst den Gänsen ihre Füßchen"
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:01
Zitat von Jürgen Thomas:
PS2. Du willst das Ergebnis ausgeben. Wo und wie denn bitte? Wenn du das einmal angeben würdest, würdest du vielleicht auf eine der vielen möglichen Lösungen kommen. Bisher schreibst du aber nur, wie gerechnet werden soll.
Hier steht der Quelltext, und auch meine Antwort darauf...
http://www.delphi-forum.de/viewtopic...=565525#565525
Zitat von jaenicke:
Zweitens musst du BerechneTerm auch irgendwo benutzen, es nur hinzuschreiben nutzt eben nichts. Und den Rückgabewert kannst du z.B. mit FloatToStr in einen String umwandeln und in ein Label oder in eine ShowMessage packen.
Leider kam darauf keine Antwort...
Sebastian Jänicke
AppCentral
 
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:02
Zitat von Sharky:
Zitat von safak67:
Mit dem linken Teil ist was nicht i.O
Das meine ich nicht. Schau doch mal genau hin.
Hier mal der Ablauf dieser Zeile:

1. Berechne den Term aus LabelAnzeige.Caption
2. Wandele dieses Fliesskommawert in einen String um
3. Wandele diesen String in einen Fliesskommawert um
Das sollst Du doch nicht in einem Rutsch machen.

Ausgeben willst Du das Ergebnis (wahrscheinlich) als String.
Also sollte Result vom Typ String bzw. AnsiString sein.

Result := FloatToStr(BerechneTerm(LabelAnzeige.Caption)); Dein BerechneTerm liefert ein Double zurück, diesen Floatwert musst Du zu
einem String wandeln.

Grüße
Klaus
Klaus
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#9

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:05
Also eines wieder vorweg.. Ich bin auch daran begeistert soviele Fragen zu stellen. Aber ich habe vorher noch nie Delphi gemacht, ich bin auch grad dran die Grundlagen nachzuholen aber es ist nicht meine Schuld das ich von heue auf morgen ein Taschenrechner basteln muss..
Ich bin halt noch ein Noob und ich will das auch lernen aber leider geht das nicht in zwei tagen.

Das mit
Result := FloatToStr(BerechneTerm(LabelAnzeige.Caption)); hatte ich auch am Anfang aber dann kam ne fehlermedlung,
[DCC Fehler] Calculator_Main.PAS(79): E2010 Inkompatible Typen: 'Double' und 'string'
 
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:16
Also anscheinend ist der Typ von Result ein Double/Float.

Mit diesem Typ kannst Du aber nichts ausgeben, ohne vorher
den Typen konvertiert zu haben.

Also zeige mal wie und wo Du das Ergebnis
ausgeben willst.

Grüße
Klaus
Klaus
 
Thema geschlossen
Seite 1 von 8  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 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