События KeyPress и KeyDown не вызываются для клавиши Tab - как определить, что она была нажата?

На уровне формы клавиша tab обычно обрабатывается Windows. В примере создается обработчик события CM_Dialog для перехвата Dialog keys.

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;
 
« Предыдущая статья   Следующая статья »