Помощь - Поиск - Пользователи - Календарь
Полная версия: Readkey
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Антошка
Можно ли так сделать, чтобы кроме 3 клавиш програма не реанировала на нажатия других? Если можно, то как?
volvo
Можно... Определи СВОЮ функцию с именем ReadKey, которая будет "пропускать" только нажатие трех нужных тебе клавиш, и игнорировать остальные...
Altair
Вариант...
Поставить резидента на 09h, читать скан коды при обработке, если клавиши запрещенные то чистить буфер клавы, если разрешенные, передавать работу стандартному обработчику.
Антошка
А как-то попроще нельзя? О_о
volvo
"Попроще" чем ЧТО? Чем ЭТО:
uses crt;

Function ReadKey: Char;
Var ch: Char;
Begin
repeat
Ch := Crt.ReadKey;
Case Ch Of
#0: Crt.ReadKey;
'a', 'b', 'c': Begin
ReadKey := Ch; Exit;
End;
End;
until false;
End;

begin
writeln(readkey);
end.
???

Ну, попробуй запустить и понажимать ЛЮБЫЕ клавиши, кроме 'a', 'b', 'c' ...
DFooz

Ch := Crt.ReadKey;


Что надо указать в настройках TB7, чтобы эта конструкция начала работать? Или в ТП такое невозможно?
APAL
А что, разве это не работает?
Код в студию.
DFooz
всё, разобрался
Код
#0: Crt.ReadKey;

в этой строке переменной в коде volvo нет, т.е. ch:=Crt.ReadKey. smile.gif

DFooz, не надо умничать! Если бы надо было присвоить значение переменной, я бы это сделал. Оно НЕ НУЖНО! А вызов функции как процедуры еще никто не отменял, если у тебя неправильно настроена IDE, то это ТВОЯ проблема, а вот говорить, что код - нерабочий я тебе не позволю!

Этот код, между прочим, копировался сюда из редактора. Купи выпрямитель рук!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.