Stay Tuned
Grünschnabel
Hallo. Ich bin grade dabei aus übungszwecken einen Taschenrechner zu programmieren.
Ich arbeite Dialogfeldbasierend und bin bereits mit dem Design der Oberfläche fertig.
Die Knöpfe wurden mit Hilfe des Klassen-Assistenten ebenfalls implementiert.
So, nun bin ich dabei die Zahlen einfach schlicht anzeigen zu lassen und dies funktioniert nur begrenzt.
Zuerst möchte ich nur mit den Zahlen "0" und "1" arbeiten.
Sobald ich auf 1 drücke, wird mir die 1 angezeigt. Drücke ich dann auf die 0, um eine 10 aus der Zahl zu machen, wird jedoch keine 10, sondern die 0 angezeigt. Der Fehler liegt auf der hand -> die Variable wird überschrieben.
Also habe ich eine zweite Variable und eine neue Funktion, getZahl(), erstellt.
Bis jetzt sieht das so aus
Die Idee dahinter ist, dass ich durch das drücken von "1" die 1 anzeigen lasse, dieser Wert dann in mZahl2 gespeichert wird ( durch getZahl() ) und dann mZahl2 ausgegeben wird.
Drücke ich nun die "0", wird ganz kurz die 0 ausgegeben, dann aber mit mZahl2 "addiert" und dann sofort erneut als "10" ausgegeben. Fürs menschliche Auge wäre die 0 am anfang nicht zu sehen...
Aber das funktioniert so irgendwie NICHT.
Das einzige was ich bekomme sind dann ausgaben alá "11" oder "00" nach einem einzigen Knopfdruck auf 1 oder 0.
Wie lässt sich sowas realisieren...? Wie muss der Code aussehen damit ich z.B. 5x auf die 1 drücke und mir dann schön nacheinander erst die 1, dann 11, dann 111, usw. ausgegeben wird?
Später kommt noch das Plus, Minus, ect... damit hab ich mich aber noch nicht beschäftigt... wer will kann mir dazu aber auch ein paar Tips geben...
Danke schon mal und mit freundlichen Grüßen
Stay Tuned
Ich arbeite Dialogfeldbasierend und bin bereits mit dem Design der Oberfläche fertig.
Die Knöpfe wurden mit Hilfe des Klassen-Assistenten ebenfalls implementiert.
So, nun bin ich dabei die Zahlen einfach schlicht anzeigen zu lassen und dies funktioniert nur begrenzt.
Zuerst möchte ich nur mit den Zahlen "0" und "1" arbeiten.
Sobald ich auf 1 drücke, wird mir die 1 angezeigt. Drücke ich dann auf die 0, um eine 10 aus der Zahl zu machen, wird jedoch keine 10, sondern die 0 angezeigt. Der Fehler liegt auf der hand -> die Variable wird überschrieben.
Also habe ich eine zweite Variable und eine neue Funktion, getZahl(), erstellt.
Bis jetzt sieht das so aus
Code:
void CTaschenrechnerDlg::getZahl(){
GetDlgItemText( IDC_ERGEBNIS, mZahl2);
mZahl2 = mZahl+mZahl2;
}
void CTaschenrechnerDlg::OnButton0() {
mZahl = "0";
SetDlgItemText( IDC_ERGEBNIS, mZahl );
getZahl();
SetDlgItemText( IDC_ERGEBNIS, mZahl2 );
}
void CTaschenrechnerDlg::OnButton1() {
mZahl = "1";
SetDlgItemText( IDC_ERGEBNIS, mZahl );
getZahl();
SetDlgItemText( IDC_ERGEBNIS, mZahl2 );
}
Die Idee dahinter ist, dass ich durch das drücken von "1" die 1 anzeigen lasse, dieser Wert dann in mZahl2 gespeichert wird ( durch getZahl() ) und dann mZahl2 ausgegeben wird.
Drücke ich nun die "0", wird ganz kurz die 0 ausgegeben, dann aber mit mZahl2 "addiert" und dann sofort erneut als "10" ausgegeben. Fürs menschliche Auge wäre die 0 am anfang nicht zu sehen...
Aber das funktioniert so irgendwie NICHT.
Das einzige was ich bekomme sind dann ausgaben alá "11" oder "00" nach einem einzigen Knopfdruck auf 1 oder 0.
Wie lässt sich sowas realisieren...? Wie muss der Code aussehen damit ich z.B. 5x auf die 1 drücke und mir dann schön nacheinander erst die 1, dann 11, dann 111, usw. ausgegeben wird?
Später kommt noch das Plus, Minus, ect... damit hab ich mich aber noch nicht beschäftigt... wer will kann mir dazu aber auch ein paar Tips geben...
Danke schon mal und mit freundlichen Grüßen
Stay Tuned
Zuletzt bearbeitet: