Menu Steuerung



  • Das kommt davon, wenn du nur die Hälfte meiner Bemerkungen liest 😉

    CStoll schrieb:

    Wie sieht denn der Fehler aus, der da kommt? Mir fällt auf Anhieb nur auf, daß du nach am Beginn der while()-Schleife ch noch zurücksetzen solltest - sonst rattert das Programm so schnell durch dein Menü, daß du nicht mehr hinterherkommst.

    Oder nochmal ganz klar:

    char ch;
    while(ch!='\n')
    {
      ch=0;//<- GANZ WICHTIG !!!
      if(kbhit() ch=getch()
      //...
    }
    


  • lalala

    hm irgendwie gehts jezze ^^
    tjo nu noch nen prob wenn ich nach oben drücke geht er auf posi1 wenn ich
    noch ma nach oben drück dann geht der pfeil zu koords die ich nirgendsfestgelegt hab -.-



  • wie wärs z.B. damit:

    if (ch==72 && ypos(pos)>5)
    {
    	gotoxy(xpos(pos),ypos(pos));
    	cout<<"   ";
    	pos=(pos-1)%befehlszahl;//ein Feld hoch
    	gotoxy(xpos(pos),ypos(pos));
    	cout<<"==>";
    }
    if (ch==80 && ypos(pos)<11)
    {
    	gotoxy(xpos(pos),ypos(pos));
    	cout<<"   ";
    	pos=(pos+1)%befehlszahl;//ein Feld runter
    	gotoxy(xpos(pos),ypos(pos));
    	cout<<"==>";
    }
    

    Sprich du fragst einfach in den if's bevor du den Pfeil bewegst ypos ab und gibst halt an wie weit er nach oben bzw. nach unten gehen soll (hier z.B. 5 und 11)

    Nichtsdestotrotz hätte ich ne Frage:
    Ich hab den Code auch probiert, nur verlässt er bei mir die while Schleife nicht wenn ich Enter drücke.

    Kann mir nicht erklären warum...



  • @steve: kannst du mal den Debugger anwerfen und darauf achten, welche Werte pos jeweils bekommt? (kann sein, daß ich die Modulo-Arithmetik etwas falsch verstanden habe)

    @holh:
    1. Warum prüfst du dort nicht direkt den Wert von pos (sollte zwischen 0 und 1 liegen)?
    2. Wenn er oben angekommen ist, sollte der Pfeil eigentlich ans untere Ende des Menüs wandern 😉

    Ich hab den Code auch probiert, nur verlässt er bei mir die while Schleife nicht wenn ich Enter drücke.

    Kann mir nicht erklären warum...

    Möglicherweise hast du die Abbruchbedingung falsch gesetzt.


Anmelden zum Antworten