Jak w c++ deklaruje się klawisze że np: jeśli klikniesz szczałkę w lewo to button przesunie się w lewo,jeśli klikniesz szczałkę w prawo to button przesunie się w prawo,jeśli klikniesz szczałkę w górę to button przesunie się w górę,jeśli klikniesz szczałkę w dół to button przesunie się w dół i może wiek ktoś z kąd można pobrać zapis klawiszy taką całą klawiaturę w symbolach w c++
Musisz znać kody ASCI klawiszy. Są w dokumentacji.
w onkeydown formy dajesz :
switch(Key)
{
case VK_UP : // strzalka w gore
{
//costam
}
break;
case VK_DOWN : // dol
{
//costam
}
break;
case VK_RIGHT : // prawo
{
//costam
}
break;
case VK_LEFT : //lewo
{
//costam
}
break;
}
moge sie mylić ale nawiasy , które zaznaczyłem na czerwono są zbędne :
switch(Key)
{
case VK_UP : // strzalka w gore
<font color="red">{ </span>
//costam
<font color="red">} </span>
break;
case VK_DOWN : // dol
<font color="red">{ </span>
//costam
<font color="red">} </span>
break;
case VK_RIGHT : // prawo
<font color="red">{ </span>
//costam
<font color="red">} </span>
break;
case VK_LEFT : //lewo
<font color="red">{ </span>
//costam
<font color="red">} </span>
break;
}
Sa zbedne ale za to kod masz bardziej przejrzysty :)
oczywiście to tylko i wyłącznie kwestia gustu , ja np. jak zobaczyłem te case'y z tymi zbędnymi nawiasami to zobaczyłem bałagan ;) , bo wg mnie po co ładować break poza nawiasy , skoro jest on opcjonalny i jest częścią instrukcji case ?? Ale jak mówiłem jest to kwestia gustu
te nawiasy nie sa zbedne kiedy chce do jednego case'a wrzucic wiecej niz jedna instrukcje
ja nigdy nie używałem tych nawiasów przy case'ach jak miałem nawet klikanaście instrukcji między jednym a drugim casem i wszystko dobrze działało
Z tego co wiem nawiasy w case'ach potrzebne są kiedy w case'ach deklaruje się zmienne.
te nawasy nigdy nie są potrzebne , chyba że chcesz żeby zmienna którą zadeklarujesz w casie była dostępna tylko w tym casie wtedy robisz blok i zmienna działa tylko w tym bloku . Gdyby były potrzebne to wtedy break; też musiałby sie w nich znajdować , bo jest opcjonalny i jest częścią instrukcji case'a . zobaczcie gdziekolwiek , te nawiasy nigdy nie były częścią case'a
Zgadzam sie z przedmowca.
Deklarujac zmienna przy case miedzy { } bedziesz mial ja jako zmienna lokalna tylko od { do }, jesli tych nawasow nie bedzie to ta zmienna bedzie zmienna lokalna w bloku, ktory okreslaja gdzies tam wczesniej { } np.
foo()
<font color="green">{</span> // zm_lokalna - tylko od tego miejsca
int <font color="green">zm_lokalna</span>;
....
case cos:
<font color="red">{</span> // zm_lokalna2 - od tego miejsca
int <font color=red>zm_lokalna2</span>;
<font color="red">}</span> // zm_lokalna2 - do tego miejsca
....
<font color="green">}</span> // zm_lokalna - do tego miejsca
Bez nawiaskow przy case zm_lokalna2 bedzie obowiazywac w calej funkcji foo()
Przynajmniej tak jest w standardowych zalozeniach jesli chodzi o c choc niektore kompilatory sybia jakimis warningami :D
Podsumowujac, nie trzeba ale mozna :P