Tastele rapide Delphi - taste rapide - totul despre el și programare

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, verificări mesaj handler WM_HOTKEY dacă parametrii de semnal primit de presare combinații Alt-F10, iar în cazul unui răspuns pozitiv la antetul principal forma fereastra linie de ieșire corespunzătoare.

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 diferitele procese de chei fierbinți adecvate pentru a utiliza valoarea returnată funcției GlobalAddAtom, trecându-l ca parametru la unele șir terminat-nul de până la 255 de caractere în lungime.

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.

Mai jos este codul care procesează semnalul audio recepționat de la intrarea plăcii de sunet (SoundBlaster). Sper că vă ajută să înțelegeți acest subiect dificil. Inclus în modulul de coduri RECUNIT, toate lucrările exhaustive de extragere a sunetului de la intrarea în placa de sunet. Var WaveRe.

const crMyCursor = 1; Procedura TForm1.FormCreate (Expeditor: TObject); - (Mycursor.ani fișier care conține cursorul animat, îl puteți crea folosind Microsoft aniedit.exe de program.) începe // Încărcați indicatorul. Singura modalitate de a face acest lucru este Screen.Cursors [crMyCursor]: = LoadCursorFromFile ('c.

În primul rând (deoarece mulți intră în această capcană), asigurați-vă că numele fișierului .res în care stocați cursorul diferă de fișierul .RES al proiectului dvs., adică dacă proiectul dvs. este numit MyApp.DPR, atunci nu utilizați fișierul MyApp.RES pentru a stoca noi resurse. Trebuie să creați un departament.

/ * Root (MINIMIZE.DPR) Programul Minimizarea; utilizează Windows, Mesaje; Count var: integer; funcția EnumProc (WinHandle: hWnd; Param: LongInt): Boolean; stdcall; începe dacă (getParent (WinHandle) = 0) și (nu IsIconic (WinHandle)) și (IsWindowVisible (WinHandle)) apoi începe PostMessage (.

mov ax, 5301h sub-bx, bx int 15h oprire jb mov ax, sub-bx 530eh, bx int 15h oprire jb mov ax, 5307h mov bx, cx 0001h mov, 0003h oprire int 15h: int 20h.

Articole similare