如何在 Inno Setup Form 中检测 Tab 按下

How to detect Tab press in Inno Setup Form

我想检测用户何时在设置中按下 Tab 键(例如,当焦点从一个控件更改到另一个控件时)。

这是我的代码,但是 MsgBox 从未执行过

我做错了什么?

[Code]

procedure OnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   MsgBox('Hello.', mbInformation, MB_OK);
end;

procedure OnKeyPress(Sender: TObject; var Key: Char);
begin
   MsgBox('Hello.', mbInformation, MB_OK);
end;

procedure OnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
   MsgBox('Hello.', mbInformation, MB_OK);
end;

procedure InitializeWizard();
begin
   MainForm.OnKeyDown := @OnKeyDown;
   MainForm.OnKeyPress := @OnKeyPress;
   MainForm.OnKeyUp := @OnKeyUp;
end;

您应该使用 WizardForm 而不是 MainForm 并将 KeyPreView 设置为 true:

procedure InitializeWizard();
begin
   WizardForm.OnKeyDown := @OnKeyDown;
   WizardForm.OnKeyPress := @OnKeyPress;
   WizardForm.OnKeyUp := @OnKeyUp;
   WizardForm.KeyPreview:=true;
end;

但我不确定它是否捕捉到虚拟键。