Другие языки программирования и технологии

КТО знает подскажите как прогу в паскале написать с применением аски кодов

короч нада что б прога распознавала какие стрелки нажали а по Эск выходила
Доброго времени суток.

Сначала объявляете константы

const
Null = #0; Esc = #27; Enter = #13;
HomeKey = #71; EndKey = #79; CtrlPgUpKey = #132;
LeftKey = #75; RightKey = #77; CtrlPgDnKey = #118;
DownKey = #80; UpKey = #72; CtrlHomeKey = #119;
PgUpKey = #73; PgDnKey = #81; CtrlEndKey = #117;
F1Key = #59;

mcExit = 0; mcSelect = 1; mcLeft = 2; mcRight = 3;
mcHome = 4; mcEnd = 5; mcUp = 6; mcDown = 7;
mcPgUp = 8; mcPgDn = 9; mcCtrlPgUp = 10; mcCtrlPgDn = 11;
mcHelp =12; mcCtrlEnd = 13; mcCtrlHome = 14;
mcNoCommand = 255;

Потом функцию

function GetKey: byte;
var
Ret : byte;
ch : char;
begin
Ret := mcNoCommand;
repeat
ch := ReadKey;
ch := UpCase(ch);
if (ch = null) and KeyPressed then begin
ch := ReadKey; Ret := ord(ch); {если нажата функциолнальная клавиша, то ReadKey возвращает 2 байта (первый 0), поэтому читаем еще раз}
case ch of
DownKey : Ret := mcDown;
UpKey : Ret := mcUp;
RightKey : Ret := mcRight;
LeftKey : Ret := mcLeft;
HomeKey : Ret := mcHome;
EndKey : Ret := mcEnd;
PgUpKey : Ret := mcPgUp;
PgDnKey : Ret := mcPgDn;
CtrlPgUpKey : Ret := mcCtrlPgUp;
CtrlPgDnKey : Ret := mcCtrlPgDn;
CtrlHomeKey : Ret := mcCtrlHome;
CtrlEndKey : Ret := mcCtrlEnd;
F1Key : Ret := mcHelp;
end;
end
else
case ch of
Enter : Ret := mcSelect;
Esc : Ret := mcExit;
'0'..'9',
'A'..'F' : Ret := ord(ch);
end;
until (Ret < mcNoCommand);
GetKey := Ret;
end;

А потом в цикле обращаетесь к ней и в зависимости от возвращаемого значения предпринимаете те или иные действия.

repeat
cm := GetKey;
case cm of
mcExit : CurInd := 1;
else begin
TurnItem(CurInd, false);
case cm of
mcLeft : if CurInd <> 1 then Dec(CurInd)
else CurInd := h;
mcRight : if CurInd <> h then Inc(CurInd)
else CurInd := 1;
mcEnd : CurInd := h;
mcHome : CurInd := 1;
end;
TurnItem(CurInd,true);
end;
end;
until (cm <= mcSelect);

Полагаю, вы понимете, что это только пример и функция GetKey может иметь тип Char и возмвращать символ. Тогда в программе нужно будет сравнивать значение этой функции с соответствующими константами.

Удачи!
КР
Константин Русанов
59 612
Лучший ответ
Юзай readkey и тому подобное. Для стрелок изучи что такое скан-коды.