home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161b.iso / handson / archive / Issue154 / delphi / virtualkeys / VKEYS.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1999-04-23  |  3.5 KB  |  157 lines

  1. unit vkeys;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls;
  8.  
  9. (* Borland's list of Virtual Key Values...
  10.   vk_LButton   = $01;
  11.   vk_RButton   = $02;
  12.   vk_Cancel    = $03;
  13.   vk_MButton   = $04;   { NOT contiguous with L & RBUTTON }
  14.   vk_Back      = $08;
  15.   vk_Tab       = $09;
  16.   vk_Clear     = $0C;
  17.   vk_Return    = $0D;
  18.  
  19.   vk_Shift     = $10;
  20.   vk_Control   = $11;
  21.   vk_Menu      = $12;
  22.   vk_Pause     = $13;
  23.   vk_Capital   = $14;
  24.   vk_Escape    = $1B;
  25.   vk_Space     = $20;
  26.   vk_Prior     = $21;
  27.   vk_Next      = $22;
  28.  
  29.   vk_End       = $23;
  30.   vk_Home      = $24;
  31.   vk_Left      = $25;
  32.   vk_Up        = $26;
  33.   vk_Right     = $27;
  34.   vk_Down      = $28;
  35.   vk_Select    = $29;
  36.   vk_Print     = $2A;
  37.   vk_Execute   = $2B;
  38.   vk_SnapShot  = $2C;
  39. { vk_Copy      = $2C not used by keyboards }
  40.  
  41.   vk_Insert    = $2D;
  42.   vk_Delete    = $2E;
  43.   vk_Help      = $2F;
  44. { vk_A thru vk_Z are the same as their ASCII equivalents: 'A' thru 'Z' }
  45. { vk_0 thru vk_9 are the same as their ASCII equivalents: '0' thru '9' }
  46. \par \par \par \par \par \par
  47.   vk_NumPad0   = $60;
  48.   vk_NumPad1   = $61;
  49.   vk_NumPad2   = $62;
  50.   vk_NumPad3   = $63;
  51.   vk_NumPad4   = $64;
  52.   vk_NumPad5   = $65;
  53.   vk_NumPad6   = $66;
  54.   vk_NumPad7   = $67;
  55.   vk_NumPad8   = $68;
  56.   vk_NumPad9   = $69;
  57.  
  58.   vk_Multiply  = $6A;
  59.   vk_Add       = $6B;
  60.   vk_Separator = $6C;
  61.   vk_Subtract  = $6D;
  62.   vk_Decimal   = $6E;
  63.   vk_Divide    = $6F;
  64.   vk_F1        = $70;
  65.   vk_F2        = $71;
  66.   vk_F3        = $72;
  67.   vk_F4        = $73;
  68.   vk_F5        = $74;
  69.  
  70.   vk_F6        = $75;
  71.   vk_F7        = $76;
  72.   vk_F8        = $77;
  73.   vk_F9        = $78;
  74.   vk_F10       = $79;
  75.   vk_F11       = $7A;
  76.   vk_F12       = $7B;
  77.   vk_F13       = $7C;
  78.   vk_F14       = $7D;
  79.   vk_F15       = $7E;
  80.  
  81.   vk_F16       = $7F;
  82.   vk_F17       = $80;
  83.   vk_F18       = $81;
  84.   vk_F19       = $82;
  85.   vk_F20       = $83;
  86.  
  87.   vk_F21       = $84;
  88.   vk_F22       = $85;
  89.   vk_F23       = $86;
  90.   vk_F24       = $87;
  91.   vk_NumLock   = $90;
  92.   vk_Scroll    = $91;
  93. *)
  94.  
  95. type
  96.   TForm1 = class(TForm)
  97.     Memo1: TMemo;
  98.     Button1: TButton;
  99.     Button2: TButton;
  100.     Button3: TButton;
  101.     Label1: TLabel;
  102.     Button4: TButton;
  103.     Button5: TButton;
  104.     procedure Memo1KeyDown(Sender: TObject; var Key: Word;
  105.       Shift: TShiftState);
  106.     procedure Button1KeyDown(Sender: TObject; var Key: Word;
  107.       Shift: TShiftState);
  108.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  109.       Shift: TShiftState);
  110.   private
  111.     { Private declarations }
  112.   public
  113.     { Public declarations }
  114.   end;
  115.  
  116. var
  117.   Form1: TForm1;
  118.  
  119. implementation
  120.  
  121. {$R *.DFM}
  122.  
  123. procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  124.   Shift: TShiftState);
  125. begin
  126.    case(Key) of
  127.      vk_Right   : Key := vk_Left;
  128.      vk_Left    : Key := vk_Right;
  129.    end;
  130. end;
  131.  
  132. procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
  133.   Shift: TShiftState);
  134. begin
  135.   if Key = vk_F1 then ShowMessage('Message From Button1 -> This is Button One!');
  136. end;
  137.  
  138. procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  139.   Shift: TShiftState);
  140. begin
  141.   if Key = vk_F1 then
  142.      ShowMessage('Message from Form1 -> This is ' + ActiveControl.name )
  143.   else if Key = vk_F2 then
  144.   if ssCtrl in Shift then
  145.   begin
  146.      MessageDlg('Don''t say I didn''t warn you!',
  147.        mtWarning, [mbOK], 0);
  148.      Close;
  149.   end
  150.   else
  151.     if MessageDlg('Are you sure you want to quit?',
  152.        mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  153.           Close;
  154. end;
  155.  
  156. end.
  157.