Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-46344
Miwa
2002-04-03 21:42
2002.04.15
Динамеческие массивы


1-46345
rem_
2002-04-04 10:05
2002.04.15
CoInitialize


1-46336
Malder
2002-04-03 22:56
2002.04.15
А как очистить канву (TCanvas) ?


4-46547
mishany
2002-02-13 04:13
2002.04.15
завершение процессов


1-46346
ArmArt
2002-04-03 23:34
2002.04.15
Как сделать Экспорт Quick Report в Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский