unerwartetes Loop durch MessageBox



  • Hi Leute,

    ich hab einen seltsames Verhalten meines Programmes entdeckt und kann es mir nicht erklären. Ich hab eine Funktion die bekommt einen Parameter übergeben (int stufe).Dieser Parameter wird in dem nachfolgenenden Quelltext ausgewertet (zumindestens der Teil der von Interesse ist, die ganze Funktion ist so 6 oder 7 DinA4 seiten lang).

    switch(stufe)
    {
    case 1:
    {
    switch(d_r42)           //prüfen ob Checkbutton eingelockt oder nicht
    {
    case 0:             //ist nicht gelockt
    {
        m_r42.SetCheck(1);
        d_r42 = 1;
        d_d1 = 1;
        if( (m_disz_tmp+1) <= m_disz_ges)
        {
             switch(m_dt1)
             {
            case 0:
            {
            m_disz_tmp++;
            m_dt1 = 1;
            break;
            }
            default:
            {
            MessageBox("Fehler bei Disziplinsberechnung   Disziplin  1/1)",NULL,MB_OK);
            break;
            }
             }//switch(m_dt1)
        }
        else 
        {
        m_r42.SetCheck(0);
        d_r42 = 0;
            d_d1 = 0;
        //MessageBox("Nicht genug Disziplinspunkte oder Freebies!!!",NULL,MB_OK);
        }
        break;
        }
    

    So nun zu dem verhalten.
    Wenn die "if( (m_disz_tmp+1) <= m_disz_ges" - Anweisung nicht erfüllt ist und die dazugehörige else Anweisung durchläuft springt mir dieser Teil der Funktion in einen Loop(die Messagebox wird 29 neu aufgerufen und muß mit Ok. bestättigt werden) wenn die auskommentierte Messagebox am ende des Quelltextes aktiviert ist. Ohne diese Messagebox verhält sich der Quelltext normal.
    Zur erklärung:
    Diese Funktion wertet fünf Gruppen zu je fünf Radiobuttons aus. Jeder Button hat einen wert von 1 bis 5. Durch eine andere Einstellung wird festgelegt wie hoch m_disz_ges sein darf. Um nun herauszufinden ob der User überhaupt diesen Button noch drücken darf oder ob schon das Maximum erreicht ist hab ich diese Funktion entwickelt. sie Prüft den Status jedes einzelnen Buttons in jeden Gruppe bei aktivierung durch und speichert dann welcher Button aktiv ist und welchen temporären Gesamtwert ich habe. Sollte der User versuchen einen Button über dem Gesamtwert zu aktivieren wird dieser wieder deaktiviert , die Hilfsvariablen werden zurückgesetzt und er soll eine Meldung bekommen.
    Alles funzt nur nicht die Meldungsausgabe.

    Hat diese Erscheinung schon mal jemand gehabt ? 😕 😕


Log in to reply