Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 17:55   #1
paska
Новичок
Джуниор
 
Регистрация: 14.05.2009
Сообщений: 2
Сообщение Обработчик прерывания Клавиатуры

Здравствуйте. Подскажите пример считывания нажатой клавиши из буфера клавиатуры. Только не через DOS или BIOS. А Именно напрямую из буфера. В Заранее огромное спасибо.
paska вне форума Ответить с цитированием
Старый 04.07.2010, 12:11   #2
ellpascal
Пользователь
 
Аватар для ellpascal
 
Регистрация: 02.07.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от paska Посмотреть сообщение
Здравствуйте. Подскажите пример считывания нажатой клавиши из буфера клавиатуры. Только не через DOS или BIOS. А Именно напрямую из буфера. В Заранее огромное спасибо.
Тебе придется делать asmbler(овскую) вставку, стандартными функциями Pascal не получится.
ellpascal вне форума Ответить с цитированием
Старый 04.07.2010, 19:35   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Функция KeyPressed

Назначение: Возвращает значение Truе, если на клавиатуре нажата клавиша и False в противном случае.
Описание: function KeyPressed: Boolean;
Примечания: Символ (или символы) остаются в буфере клавиатуры. Данная функция не распознает клавиш перевода регистра, таких, как Shift, Аlt, NumLock и т.д. Клавишу можно считать с помощью функции ReadKey.

Пример 28.8
uses crt;
var
k:char;
BEGIN
write('Считывание символов с клавиатуры. Нажми Enter... (для выхода нажмите ESC)');
readln;

repeat {ЦИКЛ }
if KeyPressed=true then {если нажата клавиша, тогда}
begin
k:=ReadKey; {считать ее в переменную k }
writeln('Нажата клавиша с кодом ',ord(k),'=',k);
end;
until k=#27; {выход из цикла, если нажали ESC}
END.
Если правильно понял, то вот
И ещё учти вот это
Цитата:
Функция KeyPressed не извлекает код из буфера, а только проверяет , пуста ли очередь
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
резидентный обработчик прерывания hadji Помощь студентам 2 10.05.2010 21:00
Обработчик вектора прерывания Festovec Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 07.04.2010 10:05
Обработчик прерывания Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 16 04.12.2009 19:00
Обработчик клавиатуры Raven77 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.09.2009 09:04
Создание резидентной программы (обработчик прерывания). Петруха Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 23.03.2009 16:31