Integer Eingabefeld leeren
-
Du kannst auf jedes Editfeld 2 Variablen anlegen:
Eine für den Inhalt (CString, int usw.) und eine
um das Editfeld selber zu steuern.Devil
-
Aso wusste ich nicht. Klappt allerdings imemr noch nicht.
ich benutze das nun so: m_ctlZahl.Clear();
DIe Zahl bleibt allerdings trotzdem stehen auch wenn cih UpdateData(FALSE); mache....
Wo könnte das Problem sein?
-
m_ctlZahl ist vom Typ CEdit ?
Devil
-
Ja und trotzdem geht es leider nicht
-
ExtremeSnail schrieb:
Ja und trotzdem geht es leider nicht
Zeig mal deinen Code...
Devil
-
void CListview_testDlg::OnBtnsuchen() { UpdateData(TRUE); m_ctlList.DeleteAllItems(); m_ctlZahl.Clear(); UpdateData(FALSE);usw. der Rest ist unwichtig, es soll nach dem drücken des Buttons das EIngabefeld geleert werden.
Der Compiler spuckt keinen Fehler aus und alles davor udn danach geht auch wudnerbar nur das Leeren nicht
-
Also bei mir klappt es. Ka wo bei dir der Fehler liegt.
Der Code ist so korrekt...Devil
-
Am Anfang steh im EIngabefeld eine 0 wenn cih nun 50 eintrage udn den Button klicke bleibt es allerdings eine 50 anstatt leer also " " zu werden, Mensch weiso cih plan das nicht zum heulen

-
hmmm normalerweise kannst du ueberpruefen ob es im zahlenbereich liegt und wenn nicht dann den else teil
else { SetDlgItemText ( IDC_EDIT_Mein_Eingafeld, ""); // oder // SetDlgItemText ( IDC_EDIT_Mein_Eingafeld, " Ungueltiger Wert !!!"); // danach glauch die markierung aufs eingabefeld richten und markieren damit mann gleich neu versuchen kann }viel glueck
-
Vielen Dank werde das nochmal versuchen alelrdings erst später muss jetzt erstmal andere Sachen amchen, leider sidn nicht so toll

SO ich habs nun versucht geht auch nicht. Der leert das Feld einfach nicht habs chon alles versucht was ihr mir gesagt habt....
Hat noch jemand Rat?
-
also wenn von den tips gar nichts geholfen hat wirds entweder schwer oder leicht.
hast du breakpoints gesetzt? hast du nach geschaut ob er in diebetroffenen code zeilen springt welche dir vorgeschlagen wurden??
vielleicht ist deine ueberpruefung falsch
-
Also er führt den Code direkt davor und direkt dahinter richtig aus.
wenn cih m_intZahl = '0' setze steht da eine Null das klappt auch, aber ich will da halt nichts stehen haben nichtmal die Null und das geht nicht
-
ExtremeSnail schrieb:
void CListview_testDlg::OnBtnsuchen() { UpdateData(TRUE); m_ctlList.DeleteAllItems(); m_ctlZahl.Clear(); UpdateData(FALSE);Dir ist klar, was UpdateData macht?
mit m_ctlZahl.Clear() Greift Du direkt auf den Inhalt des Editfeldes zu und löschst diesen. In deiner Int-Variable steht aber jetzt der Wert, der am Anfang mit UpdateData(TRUE) aus dem Edit-Feld ausgelesen wurde (in deinem Beispiel 50)
Mit UpdateData(False) schreibst Du den Wert aus Deiner Int-Variable wieder zurück in das Edit-Feld.
-
Ja aber wenn cih nicht UpdateData macht wird an dem Feld doch auch nichts geändert, es muss doch dem Feld gfesagt werden das es sich ändern soll daher muss ich UpdateData doch benutzen oder sehe cih das falsch, ohne dieses UpdateData geht es nämlich auch nicht.
Bisher hat nichts geklappt ausser eine andere Zahl hinein zu schreiben aber das ist nicht mein Ziel...
-
Wenn Du über die Control-Variable auf den Inhalt des Edit-Feldes zugreifst, dann brauchst Du kein UpdateData. UpdateData ist dazu da den Inhalt des Edit-Feldes (und anderer Controls) mit den definierten Wert-Variablen zu synchronisiern:
* UpdateData(TRUE): Inhalt des Controls wird in Wert-Variable übernommen.
* UpdateData(FALSE): Wert aus Wert-Variable wird in Control geschrieben.
Achtung es kann sein, dass Du an anderen Stellen des Programms explizit oder implizit weiter UpdateData-Aufrufe hast.Außerdem habe ich nochmal in der Hilfe nachgesehen. Die Methode Clear() von CEdit löscht nur den markierten Text. Nimm also lieber SetWindowText("").