Уважаемые эксперты! Допустим есть код (см приложение) в котором циклически опрашивается состояние клавиатуры. Сначала, вроде, всё нормально, но в скором времени программа зависает. Может кто-нибудь встречался с подобным?
Доброе время суток, =FeanaR=! Не видно причин для зависания. Может окно теряет фокус, хотя и это не может причиной. Наверно, надо поискать причину в другом месте Я обычно использую такой код:
Приложение: Ответ отправлен: 31.03.2004, 18:56 Отправитель: Boriss Отвечает Grand
Добрый день, =FeanaR=! Работаетю Может быть дело в другом? Ответ отправлен: 01.04.2004, 22:21 Отправитель: Grand Отвечает Snowm@n
Приветствую Вас, =FeanaR=! для Extended клавиш надо опрашивать клавиатуру 2 раза. uses crt; var ch : char; begin repeat if keypressed then begin ch:=readkey; {...} if ch=0 then begin ch:=readkey; {...} end; end; until ch=#27; end. Ответ отправлен: 31.03.2004, 08:18 Отправитель: Snowm@n Отвечает Pawel
Приветствую Вас, =FeanaR=! Я ТЕСТИРОВАЛ ТАКУЮ ПРОГУ: uses crt; var ch : char; begin repeat if keypressed then begin ch:=readkey; write(ch); end; until ch=#27; end. и ни каких зависаний не было. Ответ отправлен: 31.03.2004, 10:34 Отправитель: Pawel Отвечает sir henry
Здравствуйте, =FeanaR=! Лучше сделать немножко по другому. В цикле Repeat ... Until будут проходить главные события, например, обработка каких либо данных, либо действие в зависимости от нажатой клавиши. А вот опрос клавиатуры сделать отдельной функцией, которая возвращает тот или иной результат в зависимости от нажатой клавиши. См. приложение.
Приложение: Ответ отправлен: 31.03.2004, 16:15 Отправитель: sir henry Отвечает VOVAN
Приветствую Вас, =FeanaR=! у меня ничего не виснет, хотя "в скором времени" - понятие растяжимое. Ответ отправлен: 31.03.2004, 16:49 Отправитель: VOVAN
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.