Versteckte Anzeige beim Taschenrechner



  • akari schrieb:

    - Warum benutzt du ein verstecktes Label als Zwischenspeicher? Warum nicht gleich ein float? Dann must du nicht Werte konvertieren.

    weil die erste zahl im gleichen Label wie die zweite zahl und das ergebnis steht

    akari schrieb:

    - Wo kommt Ergebnis her? und wo x? Was macht x?

    x ist jetzt weg das stimmt

    akari schrieb:

    - Warum setzt du Label->Caption mehrmals?

    wie sollte ich es sonst tun?

    akari schrieb:

    Ergebnis += Zahl;

    hab ich jetzt auch geändert.

    aber er rechnet immer noch nicht.
    würde das prinzip mit der versteckten zahl fuktionieren?

    MfG



  • Hallo

    irgendwie verstehe ich dein Problem nicht. Meiner Meinung nach müßte es doch so aussehen (HideZahl ist ein float, das als Member von TUnique deklariert ist) :

    void __fastcall TUnique::PosOperatorClick(TObject *Sender) // PlusBottom
    {
      try
      {
        HideZahl = StrToFloat(Label->Caption); // Zahl aus Label holen
        }
      catch(...)
      {
        return; // fehlerbehandlung, wenn Umwandlung nicht möglich
        }
      Ergebnis += Hidezahl; // Ergebnis bestimmen
      Label ->Caption = ""; // Eingabe zurücksetzen
      }
    

    bis bald
    akari



  • tag

    (HideZahl ist ein float, das als Member von TUnique deklariert ist)

    hab ich deklariert aber er bringt die fehlermeldung

    [C++ Fehler] Styl.cpp(30): E2060 Unzulässige Verwendung einer Fließkommazahl
    

    stimmt was mit dem StrToFloat nicht oder?

    MfG



  • Paladin schrieb:

    tag

    (HideZahl ist ein float, das als Member von TUnique deklariert ist)

    hab ich deklariert aber er bringt die fehlermeldung

    [C++ Fehler] Styl.cpp(30): E2060 Unzulässige Verwendung einer Fließkommazahl
    

    stimmt was mit dem StrToFloat nicht oder?

    MfG

    ??????????

    Dein HideZahl ist doch ein Label???
    (Zumindest in Deinem ersten Beitrag)



  • Paladin schrieb:

    tag

    (HideZahl ist ein float, das als Member von TUnique deklariert ist)

    hab ich deklariert aber er bringt die fehlermeldung

    [C++ Fehler] Styl.cpp(30): E2060 Unzulässige Verwendung einer Fließkommazahl
    

    stimmt was mit dem StrToFloat nicht oder?

    MfG

    kann ich nicht nachvollziehen. Hast du auch das Label HideZahl gelöscht/umbenannt?

    bis bald
    akari



  • tag

    HideZahl ist ein Label
    hab oben bei den deklarationen
    float HideZahl, ... ;
    eingegeben (hab ich doch richtig gemacht oder?)



  • Hallo

    Du sollst doch auch das Label HideZahl komplett löschen (mit dem Objektinspektor) ! Es ist zum Speichern einer Floatzahl nicht passend. Stattdessen deklarierst du ein float gleichen Namens.

    bis bald
    akari



  • ok das hat geklappt
    aber er rechnet immer noch nicht richtig.
    man drückt zum beispiel 15 ein, drückt auf + ->anzeige wird gelöscht.
    wenn man eine andere zahl drückt und dann auf = kommt 15. macht man
    nochmals + und eine zahl kommt 30 usw.

    an was kann das liegen?



  • Hallo

    das kommt darauf an, was du mit Ergebnis machst.
    Las dir noch in PosOperatorClick denn Wert von Ergebnis anzeigen.
    Die Rechnung selber wird schon ausgeführt.

    bsi bald
    akari



  • tag

    hab versuch :

    void __fastcall TUnique::PosOperatorClick(TObject *Sender) // PlusBottom
    {
      try
      {
        HideZahl = StrToFloat(Label->Caption); // Zahl aus Label holen
        }
      catch(...)
      {
        return; // fehlerbehandlung, wenn Umwandlung nicht möglich
        }
      Ergebnis += HideZahl; // Ergebnis bestimmen
      Label ->Caption = ""; // Eingabe zurücksetzen
      [i]Label ->Caption = String(Ergebnis);[/i]
    }
    

    aber dann löscht er die anzeige nach der ersten zahl nicht und rechnen tut er auch nicht.
    das sollte doch möglich sein mit den ergebnis mit =

    MfG


Anmelden zum Antworten