События KeyPress и KeyDown не вызываются для клавиши Tab

Вопрос:

События 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;

Комментариев Нет.

Написать Ответ

Вы должны войти чтобы оставить комментарий.