Проверяйте значение переменной key на равенство VK_RIGHT, VK_LEFT, VK_F1 и т.д. на событии KeyDown формы

Автор: Arx 

Возможный вариант - присвоить ссылку на этот компонент свойству FocusControl TLabel'а. В примере используется невидимый Label для создания "быстрой" клавиши (Alt+M) компонента Memo. Чтобы использовать пример, разместите на форме компонент TMemo, Label и несколько других компонентов, которые могут принимать фокус ввода. Запустите программу, переведите фокус ввода куда-нибудь вне Memo и нажмите Alt+M - фокус ввода вернется в Memo.

 

Эта процедура посылает сообщение о нажатии клавиши.

 

 

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowWindow(Handle, SW_HIDE);

ShowWindow(Application.Handle, SW_HIDE);

end;

 

 

Code:

SendMessage(Handle,WM_SYSCOMMAND,SC_TASKLIST,0);

 Автор ответа: TwoK

Code:

procedure TForm1.Button1Click(Sender: TObject);//На русский

var

Layout: array[0.. KL_NAMELENGTH] of char;

begin

LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE);

end;

 

procedure TForm1.Button2Click(Sender: TObject);//На английский

var

Layout: array[0.. KL_NAMELENGTH] of char;

begin

LoadKeyboardLayout(StrCopy(Layout,'00000409'),KLF_ACTIVATE);

end;

 

 

Code:

function IsCapsLockOn : Boolean;

begin

Result := 0 <> (GetKeyState(VK_CAPITAL) and $01);

end;

 

 

Code:

VAR

KS: TKeyboardState;

begin

GetKeyboardState(KS);

KS[020] := KS[020] XOR 1; //Caps Lock

KS[144] := KS[144] XOR 1; //Num Lock

KS[145] := KS[145] XOR 1; //Scroll Lock

SetKeyboardState(KS);

end;

 

 

Code:

program Project1;

 

uses

Windows,

Forms,

Unit1 in 'Unit1.pas' {Form1};

 

{$R *.RES}

 

begin

if GetKeyState(vk_F8) < 1 then

   MessageBox(0, 'F8 was pressed during startup', 'MyApp', mb_ok);

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.