1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
нажатие кнопок..., считывание нажатия в цикле без его ост.
я хотел бы знать как в цикле фиксировать нажатие кнопки не останавливая при этом цикл ... т.е. например в теле цикла х имзеняется по форуле x:=x+1; ... нажал что нада а цикл всё идёт и ёдет ... но уже x:=x+2; ... вот так вот ...
Вот каркас (так как написание процедур обработки прерываний - достаточно опасная вещь, я не буду писать ничего кроме "каркаса" программы с коментариями ):
uses Dos, Crt; var Int09Save : Pointer; {$F+} procedure KbdHandler; interrupt; begin {Если пришли сюда, то была нажата клавиша. Здесь определяется нажатие на клавишу и ее скэн-код записывается в какую-либо глобальную переменную, после чего вызывается "настоящее" прерывание 9Н} end; {$F-} begin GetIntVec($09,Int09Save); { Запоминание настоящего вектора прерывания } SetIntVec($09,Addr(KbdHandler)); { и подмена его своей процедурой обработки}
{здесь расположен тот цикл, в течении которого нужно отслеживать нажатия на клавиши}
SetIntVec($09,Int09Save); { Возврат настоящего вектора прерывания } end.
P.S. А для чего это нужно, более конкретно можно описать? Возможно есть другой, более безопасный способ...