Skocz do zawartości
Czarny Ass

[Pascal] Klawisze rozszerzone

Rekomendowane odpowiedzi

What the...?

 

USES CRT;

 

Var

c1,c2:char;

 

Begin

Repeat

c1:=ReadKey;

c2:=' '; {1}

if c1=chr(0) then c2:=ReadKey; {2}

if c2='H' then WriteLn('Kursor w górę');

if c2='P' then WriteLn('Kursor w dół');

if c2='M' then WriteLn('Kursor w prawo');

if c2='K' then WriteLn('Kursor w lewo');

Until c1=chr(27);

End.

 

Przeanalizujmy kod:

 

Powtarza wszystko póki nie nadusimy przycisku ESC.

Wczytuje klawisz.

Ustawia c2 na ' '.

I teraz warunki:

- jeśli c1 to klawisz rozszerzony (#0) wtedy c2 ustawia readkey czyli powinno jeszcze raz sprawdzić klawisz teraz skoro nadusiłem rozszerzony (teoretycznie ale tego nie zrobiłem).

- Teraz sprawdza czy c2 to H, P, M lub K. Jeśli któreę z nich to wyświetla napis.

No to teraz pozostaje wyjaśnić dlaczego tylko raz naduszę i się wyświetli bo tamten kolo nie wytłumaczył jak to działa.

Skoro c2 pobiera przycisk po tym jak c1 tez pobrało to musimy 2 razy nadusić na przycisk. A tu nic! Nie ma tak! Skoro c2 obi to co c1 to czemu jak naduszę to samo zrobi co innego? Skoro za pierwszym razem jak nadusze przycisk to będę miał ' ' a potem nagle 'H'???!!! Ten kolo nie umie tłumaczyć! Mój but lepiej tłumaczy!

 

EDIT:

Zamykam temat! Sam wykombinowałem jak to zrobić aby były klawisze rozszerzone.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×