Можно ли так сделать, чтобы кроме 3 клавиш програма не реанировала на нажатия других? Если можно, то как?
volvo
18.03.2006 5:51
Можно... Определи СВОЮ функцию с именем ReadKey, которая будет "пропускать" только нажатие трех нужных тебе клавиш, и игнорировать остальные...
Altair
18.03.2006 14:40
Вариант... Поставить резидента на 09h, читать скан коды при обработке, если клавиши запрещенные то чистить буфер клавы, если разрешенные, передавать работу стандартному обработчику.
Антошка
18.03.2006 18:45
А как-то попроще нельзя? О_о
volvo
18.03.2006 19:06
"Попроще" чем ЧТО? Чем ЭТО:
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
21.03.2006 20:51
Ch := Crt.ReadKey;
Что надо указать в настройках TB7, чтобы эта конструкция начала работать? Или в ТП такое невозможно?
APAL
21.03.2006 20:57
А что, разве это не работает? Код в студию.
DFooz
21.03.2006 21:30
всё, разобрался
Код
#0: Crt.ReadKey;
в этой строке переменной в коде volvo нет, т.е. ch:=Crt.ReadKey.
DFooz, не надо умничать! Если бы надо было присвоить значение переменной, я бы это сделал. Оно НЕ НУЖНО! А вызов функции как процедуры еще никто не отменял, если у тебя неправильно настроена IDE, то это ТВОЯ проблема, а вот говорить, что код - нерабочий я тебе не позволю!
Этот код, между прочим, копировался сюда из редактора. Купи выпрямитель рук!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.