HotKeys sunt combinații de chei la care o aplicație poate răspunde, chiar dacă nu are focalizare sau rulează în tavă.
Tasta rapidă constă într-o cheie de modificare (Win, Alt, Control, Shift) și prin apăsarea oricărei alte taste care are cod virtual.
Pentru a învăța programul să proceseze taste rapide, vom merge adânc în jungla misterioasă API,
dar înainte de aceasta vom crea managerul de evenimente WM_HOTKEY. Pentru a face acest lucru, declarați următoarea metodă în clasa TForm1: privată
Și definiți-o astfel:
În acest exemplu, managerul de mesaje WM_HOTKEY verifică dacă parametrii primiți sunt un semnal despre apăsarea combinației Alt-F10, iar în cazul unui răspuns pozitiv, linia corespunzătoare este afișată în antetul ferestrei principale de formular.
Acum, să mergem direct la crearea unei taste rapide - în exemplul nostru va fi același Alt-F10. Mai întâi trebuie să-l înregistrezi în sistem. Cum se face acest lucru? Utilizarea funcției:
- hWnd - fereastra de prelucrare a mesajului WM_HOTKEY,
- fsModificatoare - modificatori (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN),
- vk este codul cheii virtuale (vezi constantele cu prefixul VK_).
Parametrul id merită o conversație separată.
Pentru o aplicație, ID-ul poate fi în intervalul 0000h..BFFFh, iar pentru bibliotecile dinamice partajate intervalul va fi: C000h..FFFFh.
Cu toate acestea, pentru a evita conflictele dintre tastele rapide ale diferitelor procese, este recomandabil să folosiți valoarea returnată de funcția GlobalAddAtom, trecând la ea un anumit șir de null-terminat de până la 255 de caractere ca parametru.
Iată cum se face:
Declarați keyidul variabil global: întreg;
Acesta va deveni atomul care va fi creat prin funcția de mai sus și va servi ca identificator de taste. Pentru comoditate, vom pune două butoane pe formular - primul va crea HotKey, al doilea - pentru a distruge.
Deci, creați și înregistrați o cheie rapidă:
Iar următorul cod anulează cheia înregistrată și elimină atomul:
Luați în considerare un alt aspect important al lucrului cu tastatura - o modalitate de a urmări blocarea Num Lock, Caps Lock, Scroll Lock și Insert.
Este clar că Delphi nu poate face acest lucru cu unelte standard.
Vom scufunda API din nou. Mai întâi, setăm variabila "Cuvântul cuvântului de tip".
Această variabilă poate fi atribuită valorii uneia dintre constante:
Schimbarea tastaturii pentru comutatorul software - dacă Microsoft Word este capabil, atunci de ce să nu încercați și noi?
ActivateKeyboardLayout (0, HKL_NEXT) - cicluri prin aspect.
Puteți descărca rusă folosind următorul cod:
Aici, poate, și toată înțelepciunea de a lucra cu tastatura.