PDA

Zobacz pełną wersję : Dziwny problem w Pascalu



kyle_xy
29-06-07, 16:34
Problem jest taki:
mam program, włączam tryb graficzny i na ten przykład mam instrukcję
ch:=readkey;
no ale nic nie idzie. Wogóle nie wczytuje znaków z klawiatury. Program zawisa w próżni i czeka na wciśnięcie klawisza ale niestety sie nie doczeka...
Wszystko jest prawidłowo napisane, nawet wczytujac inne programy napisane choćby przez firmę borland nic nie idzie...
Próbowałem w Turbo Pascalu 5.5, w Free Pascal Compiler ale nic.
Czy ktokolwiek wie jak to naprawić??

RRybak
06-08-07, 13:38
A w trybie tekstowym działa? Jeśli tak, to może Ci się coś na grafice wywala i jest wcale nie związane z ReadKey. Jeśli nie, to podejrzewałbym błąd sterowników klawiatury w trybie DOSowym... Chociaż i to dziwne, bo FP ma chyba odpowiednio zaimplementowane przerwania.

Tak czy owak, bez większego kodu nie ma nawet co gdybać, czy to na pewno ta funkcja powoduje problem (tylko dlaczego nie działają Ci borlandowskie..)

Spróbuj w trybie tekstowym wywołać ReadLn; (czy zareaguje na Enter) i posprawdzaj, czy KeyPressed zwraca true lub false (najlepiej w jakiejś pętli).
Do tego drugiego w trybie tekstowym wypisuj na ekranie jakieś znaczki, np.

if KeyPressed Write("A")
w trybie graficznym rysuj jakieś piksele, o ile dobrze pamiętam, np.

if KeyPressed PutPixel(Random(320),Random(240),Random(16))

Oczywiście wszystko w pętli. Metodą eliminacji można znaleźć źródło problemu.

Aha, spróbuj zainstalować Patcha do BP7. Bez tego był walnięty moduł CRT. Teoretycznie nie odpaliłby Ci się w ogóle program (Runtime Error), ale kto ich tam wie..