Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
ВнизЛамерский вопрос Найти похожие ветки
← →
Бурундук (2002-04-03 16:48) [4]Когда-то давно написал вспомогательный модуль для
работы с клавиатурой:
{**********************************************************
* *
* Unit Keys for Dos *
* version 2.38 *
* Las modification 17.02.98 *
* *
***********************************************************}
unit Keys;
interface
uses Crt;
const
{------ keys -----------}
NormalKey = False;
ScanKey = True;
keyEsc = #27;
keyEnter = #13;
keyZero = #0;
{------------- Int Key Codes------}
{--------normal keys---------------}
kcEsc = 27;
kcEnter = 13;
kcNil = 0;
kcZero = 0;
kcClear = 0;
kcTab = 9;
kcSpace = 32;
kcBkSpace = 8;
{-----------------------}
kcCtrlA = 1;
kcCtrlB = 2;
kcCtrlC = 3;
kcCtrlD = 4;
kcCtrlE = 5;
kcCtrlF = 6;
kcCtrlG = 7;
kcCtrlH = 8;
kcCtrlI = 9;
kcCtrlJ = 10;
kcCtrlK = 11;
kcCtrlL = 12;
kcCtrlM = 13;
kcCtrlN = 14;
kcCtrlO = 15;
kcCtrlP = 16;
kcCtrlQ = 17;
kcCtrlR = 18;
kcCtrlS = 19;
kcCtrlT = 20;
kcCtrlU = 21;
kcCtrlV = 22;
kcCtrlW = 23;
kcCtrlX = 24;
kcCtrlY = 25;
kcCtrlZ = 26;
kcCtrlEnter = 10;
kcCtrl3 = -3;
kcCtrl6 = 30;
kcCtrlMinus = 31;
kcCtrlSlash = 28;
kcCtrlBackSpace = 127;
{-----------------------}
{---- scan code --------}
kcShiftTab = -15;
kcArrowRight = -77; kcRight = -77;
kcArrowLeft = -75; kcLeft = -75;
kcArrowUp = -72; kcUp = -72;
kcArrowDown = -80; kcDown = -80;
kcHome = -71;
kcEnd = -79;
kcPgUp = -73;
kcPgDn = -81;
{-----------------------}
kcCtrlArrowRight = -116; kcCtrlRight = -116;
kcCtrlArrowLeft = -115; kcCtrlLeft = -115;
{-----------------------}
kcIns = -82;
kcDel = -83;
kcF1 = -59;
kcF2 = -60;
kcF3 = -61;
kcF4 = -62;
kcF5 = -63;
kcF6 = -64;
kcF7 = -65;
kcF8 = -66;
kcF9 = -67;
kcF10 = -68;
{-----------------------}
kcCtrlF1 = -94;
kcCtrlF2 = -95;
kcCtrlF3 = -96;
kcCtrlF4 = -97;
kcCtrlF5 = -98;
kcCtrlF6 = -99;
kcCtrlF7 = -100;
kcCtrlF8 = -101;
kcCtrlF9 = -102;
kcCtrlF10 = -103;
{-----------------------}
kcAltF1 = -104;
kcAltF2 = -105;
kcAltF3 = -106;
kcAltF4 = -107;
kcAltF5 = -108;
kcAltF6 = -109;
kcAltF7 = -110;
kcAltF8 = -111;
kcAltF9 = -112;
kcAltF10 = -113;
{-----------------------}
kcShiftF1 = -84;
kcShiftF2 = -85;
kcShiftF3 = -86;
kcShiftF4 = -87;
kcShiftF5 = -88;
kcShiftF6 = -89;
kcShiftF7 = -90;
kcShiftF8 = -91;
kcShiftF9 = -92;
kcShiftF10 = -93;
{-----------------------}
kcAltA = -30;
kcAltB = -48;
kcAltC = -46;
kcAltD = -32;
kcAltE = -18;
kcAltF = -33;
kcAltG = -34;
kcAltH = -35;
kcAltI = -23;
kcAltJ = -36;
kcAltK = -37;
kcAltL = -38;
kcAltM = -50;
kcAltN = -49;
kcAltO = -24;
kcAltP = -25;
kcAltQ = -16;
kcAltR = -19;
kcAltS = -31;
kcAltT = -20;
kcAltU = -22;
kcAltV = -47;
kcAltW = -17;
kcAltX = -45;
kcAltY = -21;
kcAltZ = -44;
kcAlt1 = -120;
kcAlt2 = -121;
kcAlt3 = -122;
kcAlt4 = -123;
kcAlt5 = -124;
kcAlt6 = -125;
kcAlt7 = -126;
kcAlt8 = -127;
kcAlt9 = -128;
kcAlt0 = -129;
kcAltMinus = -130;
kcAltPlus = -131;
{-----------------------}
type
TSetOfChar = set of Char;
PKey = ^TKey;
TKey = object
Scan: Boolean;
Value: Char;
Throu: Boolean;
constructor Init(ACode: Integer);
procedure SetEqual(AKey: TKey);
procedure SendCode(ACode: Integer);
procedure SendChar(AValue: Char);
procedure Get;
function Pressed: Boolean;
function FirstChar: Char;
function Code: Integer;
function Is(ACode: Integer): Boolean;
function IsChar(AValue: Char): Boolean;
function IsClear: Boolean;
function IsEsc: Boolean;
function IsEnter: Boolean;
function IsNumber: Boolean;
function IsSpec: Boolean;
function IsLetter: Boolean;
function IsText: Boolean;
function IsIn(SetOfChar: TSetOfChar): Boolean;
function IsEqual(AKey: TKey): Boolean;
function UpIsEqual(AKey: TKey): Boolean;
function UpIs(AValue: Char): Boolean;
function UpIsIn(SetOfChar: TSetOfChar): Boolean;
procedure Unget;
procedure Clear;
destructor Done;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c