[Pascal] - Cusik jest nie tak z klawiszami (chyba)...

0

No wiec napisalem program (a raczej jego poczatek...) i mam problem...
Oto program:

program nazwa;
uses crt;
var znak:char;
begin
clrscr;
writeln(chr(7));
writeln('powitanie');
repeat until keypressed;
clrscr;
writeln('costam, costam');
gotoXY(20,10);
writeln('pytanie');
gotoXY(20,11);
writeln('ENTER - tak');
gotoXY(20,12);
writeln('ESC - nie');
repeat
znak:=readkey;
until (znak=#13) or (znak=#27);
if znak=#13 then
writeln('blabla1');
if znak=#27 then
writeln('blabla2');
repeat until keypressed;
end.

Problem polega na tym, ze po wcisnieciu ENTER (#13) powinien wystapic napis "blabla1", a po wcisnieciu ESCAPE (#27) napis "blabla2"... Tymczasem tak sie nie dzieje (ekhem, czesciowo) :(. Poczatek programu dziala i wszystko jest tak jak powinno - wyswietla sie napis "powitanie" i czeka na wcisniecie jakiegos klawisza. I tu pojawia sie problem! Po wcisnieciu klawisza powinny pojawic sie napisy: "pytanie", "ENTER - tak", "ESC - nie", a nastepnie czekac na wcisniecie klawisza ENTER lub ESC, po czym wyswietlic napis "blabla1" dla ENTERa lub "blabla2" dla ESCapea. I owszem - napisy: "pytanie", "ENTER - tak", "ESC - nie" pojawiaja sie, ale pojawia sie takze od razu "blabla1" jesli wczesniej wcisnalem ENTER lub "blabla2" jesli wczesniej wcisnalem ESC! A tak nie ma byc - powinny tylko wyswietlic sie napisy: "pytanie", "ENTER - tak", "ESC - nie", a "blabla1" dopiero wtedy, gdy drugi raz (jesli po "powitaniu" wcisnalem ENTER) wcisne ENTER. O to samo chodzi z ESCapem! Powinny tylko wyswietlic sie napisy: "pytanie", "ENTER - tak", "ESC - nie", a "blabla2" dopiero wtedy, gdy drugi raz (jesli po "powitaniu" wcisnalem ENTER) wcisne ENTER. Co sie dzieje?... Blagam, pomozcie!

0

przechwyć znak po repeat until keypressed, bo tak jak naciskasz entera ten znak nie jest pobierany z bufora i
później go zabiera stamtšd twój readkey.
KPW?
--Szymek

Prawo Bolingsa - jeżeli czujesz się świetnie, nie martw się, to minie.

0

Wlasnie nie KPW :(. Pardon, ale mi to trzeba jak krowie na rowie :(. Co oznacza "przechwycic"?

0

Oki, thx, juz dziala :D.

0

Trochę to bez sensu

1 użytkowników online, w tym zalogowanych: 0, gości: 1