Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

menu sterowane strzałkami

Ostatnio zmodyfikowano 2016-04-13 08:18
Autor Wiadomość
mkami
Temat założony przez niniejszego użytkownika
menu sterowane strzałkami
» 2016-04-12 19:36:09
Witam! Mam problem z menu sterowanym strzałkami i Enterem w swojej bazie danych w C++. Nie działa mi klawisz Enter, szukałem już rozwiązania w internecie, ale żadne z proponowanych nie działało. Proszę o pomoc!

Oto mój kod:

C/C++
void menu( int iPozycja )
{
    system( "cls" );
    cout << "Baza danych motocykle : " << endl;
    cout << "1" <<(( iPozycja == 1 ) ? "*"
        : "." ) << "Stworz nowa baze danych" << endl;
    cout << "2" <<(( iPozycja == 2 ) ? "*"
        : "." ) << "Edytuj istniejaca baze danych" << endl;
    cout << "3" <<(( iPozycja == 3 ) ? "*"
        : "." ) << "Wyswietl baze" << endl;
}

int main()
{
    int znak = - 1;
    int znak2 = 0;
    int PozycjaMenu = 1;
    menu( PozycjaMenu );
    while( true )
    {
        if( _kbhit() )
             znak = _getch();
       
        if( znak != - 1 )
        {
            switch( znak )
            {
            case 1:
                nowa_baza();
                cout << "Baza zostala stworzona" << endl;
                cout << "Wcisnij dowolny klawisz, aby przejsc do menu" << endl;
                getchar();
                getchar();
                menu( PozycjaMenu );
                znak = - 1;
                system( "cls" );
                break;
            case 2:
                wczytaj_plik();
                cout << "Baza danych wczytana" << endl;
                cout << "Wcisnij dowolny klawisz, aby przejsc do menu" << endl;
                getchar();
                getchar();
                menu( PozycjaMenu );
                znak = - 1;
                system( "cls" );
                break;
            case 3:
                wyswietl();
                cout << "Wcisnij dowolny przycisk, aby przejsc do menu" << endl;
                getchar();
                getchar();
                menu( PozycjaMenu );
                znak = - 1;
                system( "cls" );
                break;
               
            case 13:
                znak = '1' +( PozycjaMenu - 1 ); /// case który odpowiada nie działającemu Enterowi
                break;
               
            case 224:
                znak = _getch();
                switch( znak )
                {
                case 80: //klawisz dó3
                    if( PozycjaMenu < L_MENU )
                         PozycjaMenu++;
                   
                    break;
                case 72: //klawisz góra
                    if( PozycjaMenu > 1 )
                         PozycjaMenu--;
                   
                    break;
                   
                    default:
                    cout << "224." << znak << ":" <<( char ) znak << endl;
                }
               
                menu( PozycjaMenu );
                znak = - 1;
                break;
               
                default:
                cout << "Nie ma takiej mozliwosci,wcisnij dowolny przycisk" << endl;
                getchar();
                menu( PozycjaMenu );
                znak = - 1;
                break;
            }
        }
    }
    return 1;
}

Z góry dzięki za pomoc!
P-147214
mkami
Temat założony przez niniejszego użytkownika
re
» 2016-04-12 23:07:32
Czy program może nie działać poprawnie jeśli występuje problem przy jego odpalaniu tz. gdy zaczyna się kompilować wyskakuje okienko że program przestał dziać, jednak po chwili włącza się w czarnym okienku.
P-147221
darko202
» 2016-04-13 08:18:56
dziwne :-)  u mnie w VS2010 działa !

po naciśnięciu klawisza ENTER
wchodzi w pętle i dochodzi do case 13 i wykonuje to co tam jest
a jest niewiele

ewentualnie musisz bardziej opisać problem 


2.
użyj technologii debug'owania programu, aby śledzić program krok po kroku
np.
https://msdn.microsoft.com​/pl-pl/library/bb384844.aspx
podobnie w innych kompilatorach


ułatwi Ci to znacznie zrozumienie co się dzieje
P-147225
« 1 »
  Strona 1 z 1