Fehlerabfrage



  • Langsam dämmert es mir. 🙂

    Also: Du behandelst einfach die Nachricht WM_KILLFOCUS für das Monats- und das Tagsedit.
    Von da aus rufst du eine Funktion auf, die die eingegebenen Daten prüft.

    Eine Meldung machst du mit AfxMessageBox.
    Das Feld blau machst du mit

    GetDlgItem(IDC_DES_EDIT)->SetFocus();
    

    Wie du an den Inhalt kommst, hast du ja sicher schon herausgefunden. 😉

    Okay?



  • Hallo

    Ich habe es geschafft. Danke für eure Hilfe und ich muss sagen, am Ende war es wirklich nicht so schwer.

    Vielen, vielen Dank

    chrische



  • spiel aber doch mal mit dem DateTimePicker rum, der ist viel schöner! Da kann man auch seine Int eingeben, aber man hat wesentlich bessere Behandlungsroutinen. Genügend Anleitung solltest ja jetzt haben. Du kannst deine Berechnungen und alles ja lassen, da du ja von oben genannten Funktionen immer ein int zurück bekommst!
    Probiers, merk dass es besser ist, nutze es danach in Zukunft immer 😃



  • estartu_de schrieb:

    Also: Du behandelst einfach die Nachricht WM_KILLFOCUS für das Monats- und das Tagsedit.
    Von da aus rufst du eine Funktion auf, die die eingegebenen Daten prüft.

    Eine Meldung machst du mit AfxMessageBox.
    Das Feld blau machst du mit

    GetDlgItem(IDC_DES_EDIT)->SetFocus();
    

    Das ist aber ganz schön gefährlich, hatte ich auch mal so programmiert (kein Datum, sondern andere Überprüfungen). Aber wenn man nun zum Beispiel den 52. (oder was auch immer) eingibt, und dann "ESC" drückt befindet man sich in einer Endlosschleife. Der Dialog ist schon verschwunden, aber er springt immer wieder ins CEdit rein und raus (erneute Überprüfung) - da hilft dann nur der Taskmanager 😃

    Also dann entweder den Tag vorm Setfocus auf einen gültigen Wert setzen, oder die Zum Beispiel erst gar keine blödsinnigen Eingaben zulassen (WindowProc überschreiben) 🙂

    DateTimePicker hat den Vorteil das er die schon alles berücksichtigt - zum Beispiel auch die Schaltjahre 😉



  • Ups, das kannte ich noch nicht. 😮

    Das Problem war ja nur leider, dass so gut wie keine Kenntnisse vorhanden zu sein schienen und da hab ich das allerallereinfachste rausgesucht.
    Mit Spinbutton wäre auch gegangen (da hätte es automatisch geprüft), man hätte nur je nach Monat die Grenze manuell einstellen müssen. 🙂



  • mit der gültigen eingabe, bzw mit dem eingabefilter gibt es viele schöne Sachen bei Codeproject ist mir nur grad so aufgefallen. 😉



  • Hallo

    Das beschriebene Prolem ist auch bei mir aufgetreten und ich habe die Prüfung der Eingabe erst gemacht, wenn der Benutzer auf Berechnen klickt. Habe also versucht mit Killfocus zu arbeiten und es hat bei mir rausgestellt, dass ich alles noch einfacher hätte haben können.

    chrische



  • Viel einfacher? Na wie denn?? 😉



  • Ich meinte damit, dass ich killfocus gar nicht behandeln musste, weil ich ja erst geprüft habe, wenn der Benutzer den Knopf gedrückt hat. Dann habe ich einfach wieder Focus auf ein Feld gesetzt und die Berechnungen natürlich nur durchgeführt, wenn der Eingabechaeck true war.

    chrische



  • ah OK wenn ich dich jetzt richig verstanden habe, dann klappts jetzt??



  • 😃 Genau 😃

    Danke 👍


Anmelden zum Antworten