|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.01.2013, 15:50 | #1 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
Чтение данных с клавиатуры без прерывания
Здравствуйте, мне хочется узнать, каким образом можно проверить какая клавиша нажата, без ожидания нажатия оной(как делает функция readkey). Тобеж будет цикл который проверяет буфер в котором должна хранится клавиша, и если там ничего нет то цикл запускается по новой до тех пор пока нужная клавиша не будет нажата. Можно ли реализовать это используя BIOS ? И если да то как? Скажу сразу, модуль Dos не предлагать, т.к. у меня Linux.
Компилятор: Free Pascal Заранее спасибо! Последний раз редактировалось Evgenuych96; 04.01.2013 в 16:01. |
05.01.2013, 00:43 | #2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Возможно поможет KeyPressed.
Функция возвращает true, если клавиша была нажата. Функция ReadKey - позволяет прочитать код из буфера. Ежели была нажата функциональная клавиша, то первое применение ReadKey возвращяет 0, а повторное - символ. Т.е., наприер, Код:
Возможно, что вопрос понят не так ...
Как-то так, ...
|
05.01.2013, 10:51 | #3 |
Пользователь
Регистрация: 07.10.2012
Сообщений: 37
|
Благодарю, хоть это и не совсем то, но возможно сработает=)
|
05.01.2013, 11:05 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Это именно то, что Вы ищите!
Согласитесь, трудно прочитать клавишу, которую ЕЩЁ НЕ нажали. А функция keypressed проверяет, если ли нажатые клавиши в буфере клавиатуры, НЕ ОСТАНАВЛИВАЯ выполнение программы (функция ничего не ждёт - проверила - пустой буфер/очередь клавиатуры или нет). только VictorR наделал в коде множество мелких ошибок (вероятно, писал код прямо в браузере). ну и использовать repeat until keypressed, разумеется НЕ НУЖНО, ведь вам не нужно ждать нажатия клавиши. в целом схема использовать может выглядеть примерно так: Код:
Последний раз редактировалось Serge_Bliznykov; 05.01.2013 в 11:21. |
05.01.2013, 12:28 | #5 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Serge_Bliznykov
Цитата:
Писал по памяти, а когда то, для вывода кодов функциональных клавиш Код:
Так тоже бывает ...
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подмена прерывания клавиатуры | Teor | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 28.02.2011 00:09 |
<b>Осуществление ввода с клавиатуры без последующего подтверждения(без ENTER)</b> | khorolpavel | Общие вопросы C/C++ | 2 | 30.12.2010 12:04 |
TASM. Перепрограммирование DOS прерывания клавиатуры | Dimon12345 | Помощь студентам | 1 | 03.12.2010 18:04 |
Чтение данных типа double введенных с клавиатуры | Vinnipux | Общие вопросы по Java, Java SE, Kotlin | 1 | 16.11.2010 08:22 |
Обработчик прерывания Клавиатуры | paska | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.07.2010 19:35 |