MFC Taschenrechner

#386435
Lesenswert?

Hallo,

ich habe bisher nur Konsolenanwendungen geschrieben und bin auf diesem
Gebiet schon recht fortgeschritten...

Allerdings beginnen wir jetzt mit Windows Forms MFC Anwendungen zu
arbeiten und die Aufgabe war es, einen einfachen Taschenrechner - mit
zwei Textboxen für die Zahlen - und einem Label für das Ergebnis zu
schreiben das hab ich auch geschafft.

Allerdings möchte ich jetzt mal versuchen, aus reinem Interesse und um
einen kleinen Vorsprung zu bekommen einen Taschenrechner mit Buttons
(ähnlich dem Windows Calculator) zu schreiben.

Das Layout hab ich fertig es besteht (erstmal) aus den 10 Ziffern
Tasten (0-9) dann aus den Operanden +, -, *, / und = und aus zwei
Textboxen eine für die Eingabe und eine fürs Ergebnis ich würds gern so
machen, dass man ins Eingabefeld die Ganze Formel schreibt also 1+1 und
dann soll im Ergebnis Feld das Ergebnis erscheinen.

Ich habs auch schon mit folgendem Code geschafft das die Buttons ihren

Wert an die Eingabe Textbox liefern:

private: System::Void one_Click(System::Object^ sender,
System::EventArgs^  e)
  {
    Form1::eingabe->Text = Convert::ToString("1");
  }

(Das ist für den Button "1")

Und da kommt das erste Problem: Wie schaffe ich es das die Formel
nebeneinander geschrieben wird im Moment wird die aktuelle Eingabe
immer wieder überschrieben durch eine neue Zahl (also drücke ich auf
die 1 erscheint eine 1 drücke ich dann aber auf die 2 verschwindet die
1 und die 2 erscheint...)

Vielen Dank für eure Antworten!
#386436
Lesenswert?

> dass man ins Eingabefeld die Ganze Formel schreibt also 1+1 und
> dann soll im Ergebnis Feld das Ergebnis erscheinen

Oh, das wird kompliziert.

> Wie schaffe ich es das die Formel
> nebeneinander geschrieben wird

Na, ja

>   Form1::eingabe->Text = Convert::ToString("1");

Das hier ersetzt das Property 'Text' mit jeweils
einem neuen String. Was du brauchst ist ein
'Anhängen' an den String. Eine gute String-Klasse
bietet dafür normalerweise einen += Operator an, bzw.
es gibt eine Append() Funktion.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren