Главная страница | назад





Article #17060: Detecting tab key press

 Question and Answer Database

FAQ2060D.txt   Detecting tab key press
Category   :VCL
Platform    :All
Product    :All 32 bit  

Question:
Since the KeyPress and the KeyDown events do not get called 
for the tab key, how do I trap the tab key at the form level?



Answer:
At form level, the tab key is generally handled by Windows. The
following example demonstrates creating a CM_Dialog message 
handler to trap for Dialog keys. The code surfaces the tab 
character through the KeyPress event.

Example:

type
  TForm1 = class(TForm)
  private
    procedure CMDialogKey( Var msg: TCMDialogKey );
     message CM_DIALOGKEY;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.CMDialogKey(var msg: TCMDialogKey);
begin
  if msg.Charcode <> VK_TAB then
   inherited;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_TAB then
    Form1.Caption := 'Tab Key Down!';
end;


7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99