Code:

vk_LButton   = $01;

vk_RButton   = $02;

vk_Cancel    = $03;

vk_MButton   = $04;   { генерятся только системой вместе с L & RBUTTON }

vk_Back      = $08;

vk_Tab       = $09;

vk_Clear     = $0C;

vk_Return    = $0D;

vk_Shift     = $10;

vk_Control   = $11;

vk_Menu      = $12;

vk_Pause     = $13;

vk_Capital   = $14;

vk_Escape    = $1B;

vk_Space     = $20;

vk_Prior     = $21;

vk_Next      = $22;

 

 

vk_End       = $23;

vk_Home      = $24;

vk_Left      = $25;

vk_Up        = $26;

vk_Right     = $27;

vk_Down      = $28;

vk_Select    = $29;

vk_Print     = $2A;

vk_Execute   = $2B;

vk_SnapShot  = $2C;

{ vk_Copy      = $2C не используется клавиатурой }

 

vk_Insert    = $2D;

vk_Delete    = $2E;

vk_Help      = $2F;

{ vk_A - vk_Z такие же, как и их ASCII-эквиваленты: 'A' - 'Z' }

{ vk_0 - vk_9 такие же, как и их ASCII-эквиваленты: '0' - '9' }

 

 

vk_NumPad0   = $60;

vk_NumPad1   = $61;

vk_NumPad2   = $62;

vk_NumPad3   = $63;

vk_NumPad4   = $64;

vk_NumPad5   = $65;

vk_NumPad6   = $66;

vk_NumPad7   = $67;

vk_NumPad8   = $68;

vk_NumPad9   = $69;

vk_Multiply  = $6A;

vk_Add       = $6B;

vk_Separator = $6C;

vk_Subtract  = $6D;

vk_Decimal   = $6E;

vk_Divide    = $6F;

vk_F1        = $70;

vk_F2        = $71;

vk_F3        = $72;

vk_F4        = $73;

vk_F5        = $74;

 

 

vk_F6        = $75;

vk_F7        = $76;

vk_F8        = $77;

vk_F9        = $78;

vk_F10       = $79;

vk_F11       = $7A;

vk_F12       = $7B;

vk_F13       = $7C;

vk_F14       = $7D;

vk_F15       = $7E;

vk_F16       = $7F;

vk_F17       = $80;

vk_F18       = $81;

vk_F19       = $82;

vk_F20       = $83;

vk_F21       = $84;

vk_F22       = $85;

vk_F23       = $86;

vk_F24       = $87;

vk_NumLock   = $90;

vk_Scroll    = $91;

 

 

Используйту WinAPI функцию GetKeyState() для определения нажатия клавиши в тексте проекта. Для того чтобы увидеть текст файла проекта в главном меню Delphi 3 выберите "View">>"ProjectSource" в Delphi 4 "Project">>"View Source".

Использование клавиш для управления компонентами

Автор: Robert Wittig

 Так, если у меня есть своего рода кнопка (check, radio, speed и т.п.), то почему я не могу с помощью клавиш курсора управлять ею?

 

Пример использования:

Code:

ChangeLayout(LANG_RUSSIAN);

ChangeLayout(LANG_ENGLISH);

Code:

procedure TForm1.AppOnMessage(var Msg: TMsg; var Handled: Boolean);

var

  ccode: Word;

begin

  case Msg.Message of

    WM_KEYDOWN, WM_KEYUP:

      begin

        if (GetKeyState(VK_NUMLOCK) >= 0{NumLock not active} and

          ((Msg.lParam and $1000000) = 0{not a gray key} then

        begin

          ccode := 0;

          case Msg.wParam of

            VK_HOME: ccode   := VK_NUMPAD7;

            VK_UP: ccode     := VK_NUMPAD8;

            VK_PRIOR: ccode  := VK_NUMPAD9;

            VK_LEFT: ccode   := VK_NUMPAD4;

            VK_CLEAR: ccode  := VK_NUMPAD5;

            VK_RIGHT: ccode  := VK_NUMPAD6;

            VK_END: ccode    := VK_NUMPAD1;

            VK_DOWN: ccode   := VK_NUMPAD2;

            VK_NEXT: ccode   := VK_NUMPAD3;

            VK_INSERT: ccode := VK_NUMPAD0;

            VK_DELETE: ccode := VK_DECIMAL;

          end; {Case}

          if ccode <> 0 then

            Msg.wParam := ccode;

        end; {If}

      end; {Case Msg.Message}

  end; {Case}

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  Application.OnMessage := AppOnMessage;

end;

 

Для того, чтобы перехватить нажатие какой-то клавиши на клавиатуре можно использовать зарегистрированную "горячую клавишу" (HotKey). Эта программа пикает при нажатии "1".

 

Пример демонстрирует установку горячей клавиши CTRL-F7:

 

Code:

function GettingKeybType: string

var

Flag:   integer;

begin

Flag:=0;

Case GetKeyboardType(Flag) of

   1:  Result:='IBM PC/XT or compatible (83-key) keyboard';

   2:  Result:='Olivetti "ICO" (102-key) keyboard';

   3:  Result:='IBM PC/AT (84-key) or similar keyboard';

   4:  Result:='IBM enhanced (101- or 102-key) keyboard';

   5:  Result:='Nokia 1050 and similar keyboards';

   6:  Result:='Nokia 9140 and similar keyboards';

   7:  Result:='Japanese keyboard';

end;

end;

 

Перевод одноимённой статьи с сайта delphi.about.com )

Начиная с самого рассвета компьютерной промышленности, клавиатура была первичным устройством ввода информации, и вероятнее всего сохранит свою позицию ещё долгое время.

События клавиатуры, наряду с событиями мыши, являются основными элементами взаимодействия пользователя с программой. В данной статье пойдёт речь о трёх событиях, которые позволяют отлавливать нажатия клавиш в приложении Delphi: OnKeyDown, OnKeyUp и OnKeyPress.

Приведённая здесь функция делает копию изображения экрана и сохраняет её в буфере обмена (Clipboard). Так же необходимо включить в Ваш проект файл ClipBrd.pas.

 

 

Code:

function InsertOn: Boolean;

begin

{©Drkb v.3}

 

Result:=LowOrderBitSet(GetKeyState(VK_INSERT));

end;