Помощь - Поиск - Пользователи - Календарь
Полная версия: Ввод с клавиатуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Archvingel
Вот такой вот вопрос появился, точнее даже три, но по одной теме:
во-первых, как сделать, чтобы при зажатии клавиши комп считывал бы ее непрерывно, пока ее не отпустят? Дело в том, что при обычно он сперва считывает ее код а потом около секунды думает, хотя клавиша зажата. Даже если я делаю
uses
crt;
var
key:char;
begin
...
while keypressed do key:=readkey;
...

он все равно делает существенный перерыв между первым символом и последующими. При выводе кода на экран это выглядит примерно так:
а (пауза) ааааааааааааааа... При написании игр это жутко мешает, потому что зачастую нет времени ждать, пока он закончит эту паузу;
во-вторых: как сделать так, чтобы комп считывал несколько зажатых клавиш одновременно - я имею в виду не стандартные комбинации типа Alt+F1, а именно буквенные или специальные, потому что при обычном readkey он считывает ту, которая зажата позже; и, наконец,
в-третьих: как считывать клавиши типа shift, ctrl, alt и все прочие такие же.
Заранее спасибо.
volvo
Поиском пользоваться не пробовал (я насчет Ctrl / Alt / Shift) ?

Насчет задержки после первого символа - есть возможность ее УМЕНЬШИТЬ, но не убрать совсем, так что навряд ли тебе это поможет.

Ну, а насчет нескольких клавиш одновременно - вешай свой обработчик прерывания клавиатуры и работай со скан-кодами (через массив состояний нужных тебе клавиш, нажата = True, отпущена = False)... Это тоже уже рассматривалось, "Поиск" тебе поможет...
Archvingel
Спасибо большое, видимо плохо искал.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.