wtorek, 21 kwietnia 2015

Zakładanie hooka w Delphi- metoda Short Cut

Metoda Short Cut


    Jest to najbardziej skomplikowana metoda z tych trzech zaprezentowanych (por. Metoda Key Press i Metoda Hot Key). Służy ona do tworzenia skrótów klawiaturowych z użyciem klawiszy rozszerzonych Ctrl i Alt oraz ich połączenia, czyli Ctrl+Alt+klawisz. Jak widzimy po tabeli skrótów, obejmuje ona znaczną ich część. W sumie, za jej pomocą utworzyliśmy aż 165 skrótów. Każdy z nich będzie generował osobną procedurę o nazwie Procedura 1, 2, 3 aż do 165. W jej obrębie zawarliśmy naszą procedurę „Opcja niedostępna”, którą Czytelnik-programista może wymienić na inny zbiór poleceń do wykonania.

     Wszystkie informacje o stworzonych skrótach zawieramy w tablicy rekordów o nazwie ShortCutArray, którą wypełniamy danymi przy uruchomieniu programu (FormCreate):

ShortCutArray[0].sShortCut := TextToShortCut('Alt+`');

ShortCutArray[0].pAction := Procedura1;

     Każda komórka tablicy zawiera dwie dane: tworzony przez nas skrót oraz nazwę procedury, która ma zostać wykonana po uruchomieniu tego skrótu. Zauważmy, że skrót wpisujemy w postaci tekstowej, który dopiero podlega konwersji (TextToShortCut) do postaci skrótu klawiaturowego. W metodzie tej nie stosujemy więc kodów klawiszy, tylko ich tekstowe odpowiedniki.


     Aby móc skorzystać z metody Short Cut musimy do sekcji uses dołączyć odpowiedni moduł, co też robimy, dopisując po przecinku słowo Menus. Po deklaracji wszystkich używanych przez nas procedur, zmiennych i rekordów, przystępujemy do ich wypełniania. Jako pierwszą wypełnimy procedurę Action, która będzie analizowała wciskane przez użytkownika klawisze i badała czy nie pojawił się jakiś skrót klawiaturowy. Tworzymy ją poprzez ręczne wpisanie jej do kodu programu. Co prawda zdarzenie OnAction znajduje się w zakładce Events (w Inspektorze Obiektów), jednak standardowym, podwójnym kliknięciem jej nie utworzymy. Pozostałe dwa systemowe zdarzenia, czyli OnCreate i OnKeyDown tworzymy w zakładce Events, klikając wpierw na puste miejsce formy głównej (gdziekolwiek, byleby nie na jakiś komponent), a następnie podwójnym kliknięciem otwierając je w kodzie.

 

Zdarzenia OnKeyDown, OnKeyUp i OnKeyPress



     Zdarzenie OnKeyDown zostaje wywołane w chwili wciśnięcia klawisza, w przeciwieństwie do zdarzenia OnKeyUp, które jest wywoływane w chwili puszczenia klawisza. Trzecim zdarzeniem w zakładce Events związanym z klawiszami jest zdarzenie OnKeyPress. Ta opcja akurat nie rozróżnia tych dwóch wcześniejszych stanów i jest generowana zawsze po naciśnięciu i puszczeniu klawisza. 
 
     Aby dobrze to wszystko zrozumieć, wyobraźmy sobie, że czynność naciskania na klawisz dzielimy na dwie części: naciskamy na klawisz, a po chwili puszczamy go. Zdarzenie OnKeyPress zostanie wywołane dopiero po zakończeniu całej tej operacji, czyli po puszczeniu klawisza. Zdarzenie OnKeyDown zostanie natomiast wykonane już w pierwszej części, po wciśnięciu klawisza, nie czekając na jego puszczenie. 
 
Jak widzimy, procedura FormKeyDown zawiera tylko jedno polecenie: jakikolwiek klawisz nie zostanie wciśnięty, ma uruchomić procedurę Action, która zanalizuje, czy czasem naciskane klawisze nie są skrótem klawiaturowym.

     Procedurę Action tworzy pętla for...to...do, która analizuje każdy element tablicy ShortCutArray:

for I := 0 to High(ShortCutArray) do

    begin

             { rozbicie skrótu z tablicy }

       ShortCutToKey(ShortCutArray[i].sShortCut, pKey, pShift);

             { porównanie zmiennych }

            if ((pKey = wKey) and (sShift = pShift)) then

                 ShortCutArray[i].pAction; //wywołanie odpowiedniej procedury

    end;

     Z uwagi na to, iż skrót składa się z dwóch klawiszy (klawisz rozszerzony i zwykł klawisz), należy rozbić ten skrót na dwie zmienne: pKey, która oznacza kod ASCII klawisza, oraz pShift, która zawiera informację, który z klawiszy rozszerzonych (Ctrl, Alt czy Shift) został naciśnięty. Teraz następuje analiza poprzez porównanie, czy te zmienne są takie same, jak zmienne wKey i sShift, innymi słowy, czy naciśnięte klawisze odpowiadają któremuś ze skrótów zapisanych w tablicy ShortCutArray. Jeżeli odpowiadają, wtedy następuje wywołanie procedury pAction zadeklarowanej w rekordzie, która z kolei uruchomi naszą procedurę do wykonania.


     A oto kod całej metody:

unit Unit1;



interface



uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus; //dodać moduł Menus



type

TForm1 = class(TForm)

procedure Opcja_niedostepna;

procedure FormCreate(Sender: TObject);

procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);



private

{ Private declarations }



//procedura, która zanalizuje każde naciśnięcie klawisza

procedure Action(wKey : Word; sShift : TShiftState);



//to są procedury które będą wykonywane, gdy ktoś wciśnie skrót

procedure Procedura1; //Alt+`~

procedure Procedura2; //Alt+1

procedure Procedura3; //Alt+2

procedure Procedura4; //Alt+3

procedure Procedura5; //Alt+4

procedure Procedura6; //Alt+5

procedure Procedura7; //Alt+6

procedure Procedura8; //Alt+7

procedure Procedura9; //Alt+8

procedure Procedura10; //Alt+9

procedure Procedura11; //Alt+0

procedure Procedura12; //Alt+-

procedure Procedura13; //Alt+=

procedure Procedura14; //Alt+q

procedure Procedura15; //Alt+w

procedure Procedura16; //Alt+e

procedure Procedura17; //Alt+r

procedure Procedura18; //Alt+t

procedure Procedura19; //Alt+y

procedure Procedura20; //Alt+u

procedure Procedura21; //Alt+i

procedure Procedura22; //Alt+o
procedure Procedura23; //Alt+p

procedure Procedura24; //Alt+[

procedure Procedura25; //Alt+]

procedure Procedura26; //Alt+a

procedure Procedura27; //Alt+s

procedure Procedura28; //Alt+d

procedure Procedura29; //Alt+f

procedure Procedura30; //Alt+g

procedure Procedura31; //Alt+h

procedure Procedura32; //Alt+j

procedure Procedura33; //Alt+k

procedure Procedura34; //Alt+l

procedure Procedura35; //Alt+;

procedure Procedura36; //Alt+\

procedure Procedura37; //Alt+z

procedure Procedura38; //Alt+x

procedure Procedura39; //Alt+c

procedure Procedura40; //Alt+v

procedure Procedura41; //Alt+b

procedure Procedura42; //Alt+n

procedure Procedura43; //Alt+m

procedure Procedura44; //Alt+,

procedure Procedura45; //Alt+.

procedure Procedura46; //Alt+/



procedure Procedura47; //Ctrl+`~

procedure Procedura48; //Ctrl+1

procedure Procedura49; //Ctrl+2

procedure Procedura50; //Ctrl+3

procedure Procedura51; //Ctrl+4

procedure Procedura52; //Ctrl+5

procedure Procedura53; //Ctrl+6

procedure Procedura54; //Ctrl+7

procedure Procedura55; //Ctrl+8

procedure Procedura56; //Ctrl+9

procedure Procedura57; //Ctrl+0

procedure Procedura58; //Ctrl+-

procedure Procedura59; //Ctrl+=



procedure Procedura60; //Ctrl+q

procedure Procedura61; //Ctrl+w

procedure Procedura62; //Ctrl+e

procedure Procedura63; //Ctrl+r

procedure Procedura64; //Ctrl+t

procedure Procedura65; //Ctrl+y

procedure Procedura66; //Ctrl+u

procedure Procedura67; //Ctrl+i

procedure Procedura68; //Ctrl+o

procedure Procedura69; //Ctrl+p

procedure Procedura70; //Ctrl+[

procedure Procedura71; //Ctrl+]

procedure Procedura72; //Ctrl+a

procedure Procedura73; //Ctrl+s

procedure Procedura74; //Ctrl+d

procedure Procedura75; //Ctrl+f

procedure Procedura76; //Ctrl+g

procedure Procedura77; //Ctrl+h

procedure Procedura78; //Ctrl+j

procedure Procedura79; //Ctrl+k

procedure Procedura80; //Ctrl+l

procedure Procedura81; //Ctrl+;

procedure Procedura82; //Ctrl+\

procedure Procedura83; //Ctrl+z

procedure Procedura84; //Ctrl+x

procedure Procedura85; //Ctrl+c

procedure Procedura86; //Ctrl+v

procedure Procedura87; //Ctrl+b
procedure Procedura88; //Ctrl+n

procedure Procedura89; //Ctrl+m

procedure Procedura90; //Ctrl+,

procedure Procedura91; //Ctrl+.

procedure Procedura92; //Ctrl+/



procedure Procedura93; //Shift+`~



procedure Procedura94; //Ctrl+Alt+z

procedure Procedura95; //Ctrl+Alt+\

procedure Procedura96; //Ctrl+Alt+x

procedure Procedura97; //Ctrl+Alt+c

procedure Procedura98; //Ctrl+Alt+v

procedure Procedura99; //Ctrl+Alt+b

procedure Procedura100; //Ctrl+Alt+n

procedure Procedura101; //Ctrl+Alt+m

procedure Procedura102; //Ctrl+Alt+,(przecinek)

procedure Procedura103; //Ctrl+Alt+.(kropka)

procedure Procedura104; //Ctrl+Alt+/

procedure Procedura105; //Ctrl+Alt+`~

procedure Procedura106; //Ctrl+Alt+1

procedure Procedura107; //Ctrl+Alt+2

procedure Procedura108; //Ctrl+Alt+3

procedure Procedura109; //Ctrl+Alt+4

procedure Procedura110; //Ctrl+Alt+5

procedure Procedura111; //Ctrl+Alt+6

procedure Procedura112; //Ctrl+Alt+7

procedure Procedura113; //Ctrl+Alt+8

procedure Procedura114; //Ctrl+Alt+9

procedure Procedura115; //Ctrl+Alt+0

procedure Procedura116; //Ctrl+Alt+-

procedure Procedura117; //Ctrl+Alt+=

procedure Procedura118; //Ctrl+Alt+q

procedure Procedura119; //Ctrl+Alt+w

procedure Procedura120; //Ctrl+Alt+e

procedure Procedura121; //Ctrl+Alt+r

procedure Procedura122; //Ctrl+Alt+t

procedure Procedura123; //Ctrl+Alt+y

procedure Procedura124; //Ctrl+Alt+u

procedure Procedura125; //Ctrl+Alt+i

procedure Procedura126; //Ctrl+Alt+o

procedure Procedura127; //Ctrl+Alt+p

procedure Procedura128; //Ctrl+Alt+[

procedure Procedura129; //Ctrl+Alt+]

procedure Procedura130; //Ctrl+Alt+a

procedure Procedura131; //Ctrl+Alt+s

procedure Procedura132; //Ctrl+Alt+d

procedure Procedura133; //Ctrl+Alt+f

procedure Procedura134; //Ctrl+Alt+g

procedure Procedura135; //Ctrl+Alt+h

procedure Procedura136; //Ctrl+Alt+j

procedure Procedura137; //Ctrl+Alt+k

procedure Procedura138; //Ctrl+Alt+l

procedure Procedura139; //Ctrl+Alt+;

procedure Procedura140; //Ctrl+Alt+Esc

procedure Procedura141; //Ctrl+Alt+F1

procedure Procedura142; //Ctrl+Alt+F2

procedure Procedura143; //Ctrl+Alt+F3

procedure Procedura144; //Ctrl+Alt+F4

procedure Procedura145; //Ctrl+Alt+F5

procedure Procedura146; //Ctrl+Alt+F6

procedure Procedura147; //Ctrl+Alt+F7

procedure Procedura148; //Ctrl+Alt+F8

procedure Procedura149; //Ctrl+Alt+F9

procedure Procedura150; //Ctrl+Alt+F10

procedure Procedura151; //Ctrl+Alt+F11

procedure Procedura152; //Ctrl+Alt+F12

procedure Procedura153; //Ctrl+Alt+Tab

procedure Procedura154; //Ctrl+Alt+Caps Lock

procedure Procedura155; //Ctrl+Alt+Enter

procedure Procedura156; //Ctrl+Alt+'(apostrof)

procedure Procedura157; //Ctrl+Alt+Scroll Lock

procedure Procedura158; //Ctrl+Alt+Home

procedure Procedura159; //Ctrl+Alt+End

procedure Procedura160; //Ctrl+Alt+Strzałka w prawo

procedure Procedura161; //Ctrl+Alt+Strzałka w lewwo

procedure Procedura162; //Ctrl+Alt+Strzałka w górę

procedure Procedura163; //Ctrl+Alt+Strzałka w dół



procedure Procedura164; //Ctrl+' (apostrof)

procedure Procedura165; //Alt+' (apostrof)

end;


 
TProcedure = procedure of object;



{ rekord, który przechowuje informacje o skrócie klawiaturowym i

o procedurze która będzie wykonywana w następstwie naciśnięcia

takowego skrótu }

TShortCutArray = packed record

sShortCut: TShortCut;

pAction : TProcedure;





public

{ Public declarations }

end;



var

Form1: TForm1;

ShortCutArray : array[0..164] of TShortCutArray; //tablica rekordow do

skrótów...


implementation



{$R *.dfm}



// PROCEDURA OPCJA NIEDOSTEPNA //

procedure TForm1.Opcja_niedostepna;

   begin

       ShowMessage('Opcja niedostępna');

   end;







procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

   begin

       Action(Key, Shift); //wywołaj z parametrami procedurę Action

   end;







              // PROCEDURA ANALIZUJĄCA SKRÓT KLAWIATUROWY

procedure TForm1.Action(wKey: Word; sShift: TShiftState);

var

i : Integer;

pKey : Word;

pShift : TshiftState;



begin

for i := 0 to High(ShortCutArray) do

begin

{ rozbicie skrótu z tablicy }

ShortCutToKey(ShortCutArray[i].sShortCut, pKey, pShift);

{ porównanie zmiennych }

if ((pKey = wKey) and (sShift = pShift)) then

ShortCutArray[i].pAction; //wywołanie odpowiedniej procedury

end;

end;



//rejestracja skrótów klawiaturowych

procedure TForm1.FormCreate(Sender: TObject);

begin
///////////////// Alt + klawisz /////////////////////



ShortCutArray[0].sShortCut := TextToShortCut('Alt+`');

ShortCutArray[0].pAction := Procedura1;

ShortCutArray[1].sShortCut := TextToShortCut('Alt+1');

ShortCutArray[1].pAction := Procedura2;

ShortCutArray[2].sShortCut := TextToShortCut('Alt+2');

ShortCutArray[2].pAction := Procedura3;

ShortCutArray[3].sShortCut := TextToShortCut('Alt+3');

ShortCutArray[3].pAction := Procedura4;

ShortCutArray[4].sShortCut := TextToShortCut('Alt+4');

ShortCutArray[4].pAction := Procedura5;

ShortCutArray[5].sShortCut := TextToShortCut('Alt+5');

ShortCutArray[5].pAction := Procedura6;

ShortCutArray[6].sShortCut := TextToShortCut('Alt+6');

ShortCutArray[6].pAction := Procedura7;

ShortCutArray[7].sShortCut := TextToShortCut('Alt+7');

ShortCutArray[7].pAction := Procedura8;

ShortCutArray[8].sShortCut := TextToShortCut('Alt+8');

ShortCutArray[8].pAction := Procedura9;

ShortCutArray[9].sShortCut := TextToShortCut('Alt+9');

ShortCutArray[9].pAction := Procedura10;

ShortCutArray[10].sShortCut := TextToShortCut('Alt+0');

ShortCutArray[10].pAction := Procedura11;

ShortCutArray[11].sShortCut := TextToShortCut('Alt+-');

ShortCutArray[11].pAction := Procedura12;

ShortCutArray[12].sShortCut := TextToShortCut('Alt+=');

ShortCutArray[12].pAction := Procedura13;

ShortCutArray[13].sShortCut := TextToShortCut('Alt+q');

ShortCutArray[13].pAction := Procedura14;

ShortCutArray[14].sShortCut := TextToShortCut('Alt+w');

ShortCutArray[14].pAction := Procedura15;

ShortCutArray[15].sShortCut := TextToShortCut('Alt+e');

ShortCutArray[15].pAction := Procedura16;

ShortCutArray[16].sShortCut := TextToShortCut('Alt+r');

ShortCutArray[16].pAction := Procedura17;

ShortCutArray[17].sShortCut := TextToShortCut('Alt+t');

ShortCutArray[17].pAction := Procedura18;

ShortCutArray[18].sShortCut := TextToShortCut('Alt+y');

ShortCutArray[18].pAction := Procedura19;

ShortCutArray[19].sShortCut := TextToShortCut('Alt+u');

ShortCutArray[19].pAction := Procedura20;

ShortCutArray[20].sShortCut := TextToShortCut('Alt+i');

ShortCutArray[20].pAction := Procedura21;

ShortCutArray[21].sShortCut := TextToShortCut('Alt+o');

ShortCutArray[21].pAction := Procedura22;

ShortCutArray[22].sShortCut := TextToShortCut('Alt+p');

ShortCutArray[22].pAction := Procedura23;

ShortCutArray[23].sShortCut := TextToShortCut('Alt+[');

ShortCutArray[23].pAction := Procedura24;

ShortCutArray[24].sShortCut := TextToShortCut('Alt+]');

ShortCutArray[24].pAction := Procedura25;

ShortCutArray[25].sShortCut := TextToShortCut('Alt+a');

ShortCutArray[25].pAction := Procedura26;

ShortCutArray[26].sShortCut := TextToShortCut('Alt+s');

ShortCutArray[26].pAction := Procedura27;

ShortCutArray[27].sShortCut := TextToShortCut('Alt+d');

ShortCutArray[27].pAction := Procedura28;

ShortCutArray[28].sShortCut := TextToShortCut('Alt+f');

ShortCutArray[28].pAction := Procedura29;

ShortCutArray[29].sShortCut := TextToShortCut('Alt+g');

ShortCutArray[29].pAction := Procedura30;

ShortCutArray[30].sShortCut := TextToShortCut('Alt+h');

ShortCutArray[30].pAction := Procedura31;

ShortCutArray[31].sShortCut := TextToShortCut('Alt+j');

ShortCutArray[31].pAction := Procedura32;

ShortCutArray[32].sShortCut := TextToShortCut('Alt+k');

ShortCutArray[32].pAction := Procedura33;

ShortCutArray[33].sShortCut := TextToShortCut('Alt+l');

ShortCutArray[33].pAction := Procedura34;

ShortCutArray[34].sShortCut := TextToShortCut('Alt+;');

ShortCutArray[34].pAction := Procedura35;

ShortCutArray[35].sShortCut := TextToShortCut('Alt+\');

ShortCutArray[35].pAction := Procedura36;

ShortCutArray[36].sShortCut := TextToShortCut('Alt+z');

ShortCutArray[36].pAction := Procedura37;

ShortCutArray[37].sShortCut := TextToShortCut('Alt+x');

ShortCutArray[37].pAction := Procedura38;

ShortCutArray[38].sShortCut := TextToShortCut('Alt+c');

ShortCutArray[38].pAction := Procedura39;

ShortCutArray[39].sShortCut := TextToShortCut('Alt+v');

ShortCutArray[39].pAction := Procedura40;

ShortCutArray[40].sShortCut := TextToShortCut('Alt+b');

ShortCutArray[40].pAction := Procedura41;

ShortCutArray[41].sShortCut := TextToShortCut('Alt+n');

ShortCutArray[41].pAction := Procedura42;

ShortCutArray[42].sShortCut := TextToShortCut('Alt+m');

ShortCutArray[42].pAction := Procedura43;

ShortCutArray[43].sShortCut := TextToShortCut('Alt+,');

ShortCutArray[43].pAction := Procedura44;

ShortCutArray[44].sShortCut := TextToShortCut('Alt+.');

ShortCutArray[44].pAction := Procedura45;

ShortCutArray[45].sShortCut := TextToShortCut('Alt+/');

ShortCutArray[45].pAction := Procedura46;



//////////////// Ctrl + klawisz //////////////////



ShortCutArray[46].sShortCut := TextToShortCut('Ctrl+`');

ShortCutArray[46].pAction := Procedura47;

ShortCutArray[47].sShortCut := TextToShortCut('Ctrl+1');

ShortCutArray[47].pAction := Procedura48;

ShortCutArray[48].sShortCut := TextToShortCut('Ctrl+2');

ShortCutArray[48].pAction := Procedura49;

ShortCutArray[49].sShortCut := TextToShortCut('Ctrl+3');

ShortCutArray[49].pAction := Procedura50;

ShortCutArray[50].sShortCut := TextToShortCut('Ctrl+4');

ShortCutArray[50].pAction := Procedura51;

ShortCutArray[51].sShortCut := TextToShortCut('Ctrl+5');

ShortCutArray[51].pAction := Procedura52;

ShortCutArray[52].sShortCut := TextToShortCut('Ctrl+6');

ShortCutArray[52].pAction := Procedura53;

ShortCutArray[53].sShortCut := TextToShortCut('Ctrl+7');

ShortCutArray[53].pAction := Procedura54;

ShortCutArray[54].sShortCut := TextToShortCut('Ctrl+8');

ShortCutArray[54].pAction := Procedura55;

ShortCutArray[55].sShortCut := TextToShortCut('Ctrl+9');

ShortCutArray[55].pAction := Procedura56;

ShortCutArray[56].sShortCut := TextToShortCut('Ctrl+0');

ShortCutArray[56].pAction := Procedura57;

ShortCutArray[57].sShortCut := TextToShortCut('Ctrl+-');

ShortCutArray[57].pAction := Procedura58;

ShortCutArray[58].sShortCut := TextToShortCut('Ctrl+=');

ShortCutArray[58].pAction := Procedura59;

ShortCutArray[59].sShortCut := TextToShortCut('Ctrl+q');

ShortCutArray[59].pAction := Procedura60;

ShortCutArray[60].sShortCut := TextToShortCut('Ctrl+w');

ShortCutArray[60].pAction := Procedura61;

ShortCutArray[61].sShortCut := TextToShortCut('Ctrl+e');

ShortCutArray[61].pAction := Procedura62;

ShortCutArray[62].sShortCut := TextToShortCut('Ctrl+r');

ShortCutArray[62].pAction := Procedura63;

ShortCutArray[63].sShortCut := TextToShortCut('Ctrl+t');

ShortCutArray[63].pAction := Procedura64;

ShortCutArray[64].sShortCut := TextToShortCut('Ctrl+y');

ShortCutArray[64].pAction := Procedura65;

ShortCutArray[65].sShortCut := TextToShortCut('Ctrl+u');

ShortCutArray[65].pAction := Procedura66;

ShortCutArray[66].sShortCut := TextToShortCut('Ctrl+i');

ShortCutArray[66].pAction := Procedura67;

ShortCutArray[67].sShortCut := TextToShortCut('Ctrl+o');

ShortCutArray[67].pAction := Procedura68;

ShortCutArray[68].sShortCut := TextToShortCut('Ctrl+p');

ShortCutArray[68].pAction := Procedura69;

ShortCutArray[69].sShortCut := TextToShortCut('Ctrl+[');

ShortCutArray[69].pAction := Procedura70;

ShortCutArray[70].sShortCut := TextToShortCut('Ctrl+]');

ShortCutArray[70].pAction := Procedura71;

ShortCutArray[71].sShortCut := TextToShortCut('Ctrl+a');

ShortCutArray[71].pAction := Procedura72;

ShortCutArray[72].sShortCut := TextToShortCut('Ctrl+s');

ShortCutArray[72].pAction := Procedura73;

ShortCutArray[73].sShortCut := TextToShortCut('Ctrl+d');

ShortCutArray[73].pAction := Procedura74;

ShortCutArray[74].sShortCut := TextToShortCut('Ctrl+f');

ShortCutArray[74].pAction := Procedura75;

ShortCutArray[75].sShortCut := TextToShortCut('Ctrl+g');

ShortCutArray[75].pAction := Procedura76;

ShortCutArray[76].sShortCut := TextToShortCut('Ctrl+h');

ShortCutArray[76].pAction := Procedura77;

ShortCutArray[77].sShortCut := TextToShortCut('Ctrl+j');

ShortCutArray[77].pAction := Procedura78;

ShortCutArray[78].sShortCut := TextToShortCut('Ctrl+k');

ShortCutArray[78].pAction := Procedura79;

ShortCutArray[79].sShortCut := TextToShortCut('Ctrl+l');

ShortCutArray[79].pAction := Procedura80;

ShortCutArray[80].sShortCut := TextToShortCut('Ctrl+;');

ShortCutArray[80].pAction := Procedura81;

ShortCutArray[81].sShortCut := TextToShortCut('Ctrl+\');

ShortCutArray[81].pAction := Procedura82;

ShortCutArray[82].sShortCut := TextToShortCut('Ctrl+z');

ShortCutArray[82].pAction := Procedura83;

ShortCutArray[83].sShortCut := TextToShortCut('Ctrl+x');

ShortCutArray[83].pAction := Procedura84;

ShortCutArray[84].sShortCut := TextToShortCut('Ctrl+c');

ShortCutArray[84].pAction := Procedura85;

ShortCutArray[85].sShortCut := TextToShortCut('Ctrl+v');

ShortCutArray[85].pAction := Procedura86;

ShortCutArray[86].sShortCut := TextToShortCut('Ctrl+b');

ShortCutArray[86].pAction := Procedura87;

ShortCutArray[87].sShortCut := TextToShortCut('Ctrl+n');

ShortCutArray[87].pAction := Procedura88;

ShortCutArray[88].sShortCut := TextToShortCut('Ctrl+m');

ShortCutArray[88].pAction := Procedura89;

ShortCutArray[89].sShortCut := TextToShortCut('Ctrl+,');

ShortCutArray[89].pAction := Procedura90;

ShortCutArray[90].sShortCut := TextToShortCut('Ctrl+.');

ShortCutArray[90].pAction := Procedura91;

ShortCutArray[91].sShortCut := TextToShortCut('Ctrl+/');

ShortCutArray[91].pAction := Procedura92;



////////////////// Shift + klawisz //////////////////



ShortCutArray[92].sShortCut := TextToShortCut('Shift+`');

ShortCutArray[92].pAction := Procedura93;



/////////////// Ctrl+ Alt+ klawisz //////////////////



ShortCutArray[93].sShortCut := TextToShortCut('Ctrl+Alt+z');

ShortCutArray[93].pAction := Procedura94;

ShortCutArray[94].sShortCut := TextToShortCut('Ctrl+Alt+\');

ShortCutArray[94].pAction := Procedura95;

ShortCutArray[95].sShortCut := TextToShortCut('Ctrl+Alt+x');

ShortCutArray[95].pAction := Procedura96;

ShortCutArray[96].sShortCut := TextToShortCut('Ctrl+Alt+c');

ShortCutArray[96].pAction := Procedura97;

ShortCutArray[97].sShortCut := TextToShortCut('Ctrl+Alt+v');

ShortCutArray[97].pAction := Procedura98;

ShortCutArray[98].sShortCut := TextToShortCut('Ctrl+Alt+b');

ShortCutArray[98].pAction := Procedura99;

ShortCutArray[99].sShortCut := TextToShortCut('Ctrl+Alt+n');

ShortCutArray[99].pAction := Procedura100;

ShortCutArray[100].sShortCut := TextToShortCut('Ctrl+Alt+m');

ShortCutArray[100].pAction := Procedura101;

ShortCutArray[101].sShortCut := TextToShortCut('Ctrl+Alt+,');

ShortCutArray[101].pAction := Procedura102;

ShortCutArray[102].sShortCut := TextToShortCut('Ctrl+Alt+.');

ShortCutArray[102].pAction := Procedura103;

ShortCutArray[103].sShortCut := TextToShortCut('Ctrl+Alt+/');

ShortCutArray[103].pAction := Procedura104;



ShortCutArray[104].sShortCut := TextToShortCut('Ctrl+Alt+`');

ShortCutArray[104].pAction := Procedura105;

ShortCutArray[105].sShortCut := TextToShortCut('Ctrl+Alt+1');

ShortCutArray[105].pAction := Procedura106;

ShortCutArray[106].sShortCut := TextToShortCut('Ctrl+Alt+2');

ShortCutArray[106].pAction := Procedura107;

ShortCutArray[107].sShortCut := TextToShortCut('Ctrl+Alt+3');

ShortCutArray[107].pAction := Procedura108;

ShortCutArray[108].sShortCut := TextToShortCut('Ctrl+Alt+4');

ShortCutArray[108].pAction := Procedura109;

ShortCutArray[109].sShortCut := TextToShortCut('Ctrl+Alt+5');

ShortCutArray[109].pAction := Procedura110;

ShortCutArray[110].sShortCut := TextToShortCut('Ctrl+Alt+6');

ShortCutArray[110].pAction := Procedura111;

ShortCutArray[111].sShortCut := TextToShortCut('Ctrl+Alt+7');

ShortCutArray[111].pAction := Procedura112;

ShortCutArray[112].sShortCut := TextToShortCut('Ctrl+Alt+8');

ShortCutArray[112].pAction := Procedura113;

ShortCutArray[113].sShortCut := TextToShortCut('Ctrl+Alt+9');

ShortCutArray[113].pAction := Procedura114;

ShortCutArray[114].sShortCut := TextToShortCut('Ctrl+Alt+0');

ShortCutArray[114].pAction := Procedura115;

ShortCutArray[115].sShortCut := TextToShortCut('Ctrl+Alt+-');

ShortCutArray[115].pAction := Procedura116;

ShortCutArray[116].sShortCut := TextToShortCut('Ctrl+Alt+=');

ShortCutArray[116].pAction := Procedura117;



ShortCutArray[117].sShortCut := TextToShortCut('Ctrl+Alt+q');

ShortCutArray[117].pAction := Procedura118;

ShortCutArray[118].sShortCut := TextToShortCut('Ctrl+Alt+w');

ShortCutArray[118].pAction := Procedura119;

ShortCutArray[119].sShortCut := TextToShortCut('Ctrl+Alt+e');

ShortCutArray[119].pAction := Procedura120;

ShortCutArray[120].sShortCut := TextToShortCut('Ctrl+Alt+r');

ShortCutArray[120].pAction := Procedura121;

ShortCutArray[121].sShortCut := TextToShortCut('Ctrl+Alt+t');

ShortCutArray[121].pAction := Procedura122;

ShortCutArray[122].sShortCut := TextToShortCut('Ctrl+Alt+y');

ShortCutArray[122].pAction := Procedura123;

ShortCutArray[123].sShortCut := TextToShortCut('Ctrl+Alt+u');

ShortCutArray[123].pAction := Procedura124;

ShortCutArray[124].sShortCut := TextToShortCut('Ctrl+Alt+i');

ShortCutArray[124].pAction := Procedura125;

ShortCutArray[125].sShortCut := TextToShortCut('Ctrl+Alt+o');

ShortCutArray[125].pAction := Procedura126;

ShortCutArray[126].sShortCut := TextToShortCut('Ctrl+Alt+p');

ShortCutArray[126].pAction := Procedura127;

ShortCutArray[127].sShortCut := TextToShortCut('Ctrl+Alt+[');

ShortCutArray[127].pAction := Procedura128;

ShortCutArray[128].sShortCut := TextToShortCut('Ctrl+Alt+]');

ShortCutArray[128].pAction := Procedura129;



ShortCutArray[129].sShortCut := TextToShortCut('Ctrl+Alt+a');

ShortCutArray[129].pAction := Procedura130;

ShortCutArray[130].sShortCut := TextToShortCut('Ctrl+Alt+s');

ShortCutArray[130].pAction := Procedura131;

ShortCutArray[131].sShortCut := TextToShortCut('Ctrl+Alt+d');

ShortCutArray[131].pAction := Procedura132;

ShortCutArray[132].sShortCut := TextToShortCut('Ctrl+Alt+f');

ShortCutArray[132].pAction := Procedura133;

ShortCutArray[133].sShortCut := TextToShortCut('Ctrl+Alt+g');

ShortCutArray[133].pAction := Procedura134;

ShortCutArray[134].sShortCut := TextToShortCut('Ctrl+Alt+h');

ShortCutArray[134].pAction := Procedura135;

ShortCutArray[135].sShortCut := TextToShortCut('Ctrl+Alt+j');

ShortCutArray[135].pAction := Procedura136;

ShortCutArray[136].sShortCut := TextToShortCut('Ctrl+Alt+k');

ShortCutArray[136].pAction := Procedura137;

ShortCutArray[137].sShortCut := TextToShortCut('Ctrl+Alt+l');

ShortCutArray[137].pAction := Procedura138;

ShortCutArray[138].sShortCut := TextToShortCut('Ctrl+Alt+;');

ShortCutArray[138].pAction := Procedura139;



ShortCutArray[139].sShortCut := TextToShortCut('Ctrl+Alt+Esc');

ShortCutArray[139].pAction := Procedura140;

ShortCutArray[140].sShortCut := TextToShortCut('Ctrl+Alt+F1');

ShortCutArray[140].pAction := Procedura141;

ShortCutArray[141].sShortCut := TextToShortCut('Ctrl+Alt+F2');

ShortCutArray[141].pAction := Procedura142;

ShortCutArray[142].sShortCut := TextToShortCut('Ctrl+Alt+F3');

ShortCutArray[142].pAction := Procedura143;

ShortCutArray[143].sShortCut := TextToShortCut('Ctrl+Alt+F4');

ShortCutArray[143].pAction := Procedura144;

ShortCutArray[144].sShortCut := TextToShortCut('Ctrl+Alt+F5');

ShortCutArray[144].pAction := Procedura145;

ShortCutArray[145].sShortCut := TextToShortCut('Ctrl+Alt+F6');

ShortCutArray[145].pAction := Procedura146;

ShortCutArray[146].sShortCut := TextToShortCut('Ctrl+Alt+F7');

ShortCutArray[146].pAction := Procedura147;

ShortCutArray[147].sShortCut := TextToShortCut('Ctrl+Alt+F8');

ShortCutArray[147].pAction := Procedura148;

ShortCutArray[148].sShortCut := TextToShortCut('Ctrl+Alt+F9');

ShortCutArray[148].pAction := Procedura149;

ShortCutArray[149].sShortCut := TextToShortCut('Ctrl+Alt+F10');

ShortCutArray[149].pAction := Procedura150;

ShortCutArray[150].sShortCut := TextToShortCut('Ctrl+Alt+F11');

ShortCutArray[150].pAction := Procedura151;

ShortCutArray[151].sShortCut := TextToShortCut('Ctrl+Alt+F12');

ShortCutArray[151].pAction := Procedura152;



ShortCutArray[152].sShortCut := TextToShortCut('Ctrl+Alt+Tab');

ShortCutArray[152].pAction := Procedura153;

ShortCutArray[153].sShortCut := TextToShortCut('Ctrl+Alt+Caps Lock');

ShortCutArray[153].pAction := Procedura154;

ShortCutArray[154].sShortCut := TextToShortCut('Ctrl+Alt+Enter');

ShortCutArray[154].pAction := Procedura155;

ShortCutArray[155].sShortCut := TextToShortCut('Ctrl+Alt+'''); //apostrof

ShortCutArray[155].pAction := Procedura156;

ShortCutArray[156].sShortCut := TextToShortCut('Ctrl+Alt+Scroll Lock');

ShortCutArray[156].pAction := Procedura157;

ShortCutArray[157].sShortCut := TextToShortCut('Ctrl+Alt+Home');

ShortCutArray[157].pAction := Procedura158;

ShortCutArray[158].sShortCut := TextToShortCut('Ctrl+Alt+End');

ShortCutArray[158].pAction := Procedura159;

ShortCutArray[159].sShortCut := TextToShortCut('Ctrl+Alt+RIGHT');

//strzałka w prawo

ShortCutArray[159].pAction := Procedura160;

ShortCutArray[160].sShortCut := TextToShortCut('Ctrl+Alt+LEFT');

//strzałka w lewo

ShortCutArray[160].pAction := Procedura161;

ShortCutArray[161].sShortCut := TextToShortCut('Ctrl+Alt+UP');

//strzałka w górę

ShortCutArray[161].pAction := Procedura162;

ShortCutArray[162].sShortCut := TextToShortCut('Ctrl+Alt+DOWN');

//strzałka w dół

ShortCutArray[162].pAction := Procedura163;



ShortCutArray[163].sShortCut := TextToShortCut('Ctrl+'''); //apostrof

ShortCutArray[163].pAction := Procedura164;

ShortCutArray[164].sShortCut := TextToShortCut('Alt+'''); //apostrof

ShortCutArray[164].pAction := Procedura165;

end;





// PROCEDURY WYKONAWCZE DO SKRÓTÓW Alt+klawisz i Ctrl+klawisz //



procedure TForm1.Procedura1; // wywolywana gdy ktos nacisnie Alt+` czyli...

   begin //...

         Opcja_niedostepna;

   end;


(...)
 
procedure TForm1.Procedura165; //wywolywana gdy ktos nacisnie Alt+' (apostrof)

   begin //...

       Opcja_niedostepna;

   end;


end.

                      < Wstecz    1...4/5    Dalej >

Artykuł pochodzi z mojej książki pt. "Delphi w przykładach dla początkujących". Zapraszam na Stronę książki.

poradnik programowania Delphi


Brak komentarzy:

Prześlij komentarz

Wspomóż mnie lub zostań moim patronem już od 5 zł - sprawdź szczegóły

Moje e-booki

Kliknij w okładkę, aby przejść do strony książki

Przejdź do strony książki Przejdź do strony książki