在我的应用程序中,我使用带有 3 个选项卡的 TTabControl:带有 3 个按钮的主选项卡 (TabItem1):Button1 将带我到 TabItem2,Button2 到 TabItem3,按钮 3 到 TabItem3。
我处理 FormKeyUp 事件来控制导航和:
如果按下的键是 vkHardwareBack,那么如果 ActiveTab 是 TabItem1,我会弹出一条消息,询问用户是否要退出应用程序。如果答案是肯定的,我会关闭应用程序,如果不是,则什么也不会发生。这部分工作得很好!
但是,如果 ActiveTab 是 TabItem2 或 TabItem3,那么我希望应用程序通过触发具有属性的 TTabChangeItem 标准操作返回到主选项卡 (TabItem1):
- 标签:TabItem1
- 方向:tdReversed
- 交易:ttSlide
但这并没有发生。当用户在 ActiveTab 为 TabItem2 或 TabItem3 时按下 vkHardwareBack 时,应用程序将进入后台并显示主屏幕。
任何想法我做错了什么?
这是一个 FormKeyUp 程序:
procedure TfMain.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
if Key = vkHardwareBack then
if TabControl.ActiveTab = TabItem1 then
if MessageDlg('Are you sure you want to Exit?', TMsgDlgType.mtWarning,
[TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
MainActivitiy.finish
else
ChangeTabAction1.Execute; // I tried here also: TabControl.ActiveTab := TabItem2; but still the same results
end;