C++ Builder 10.4,FMX:表单 TabOrder 问题

C++ Builder 10.4, FMX: Form TabOrder problem

在控制字段之间切换的 Tab 功能似乎不适用于 C++ Builder 10.4(带有补丁 1、2 和 3),如果表单控件包含一些 taborder字段,以编程方式获取另一个父表单控件。

这可以很容易地通过创建一个多设备应用程序来重现,在一个表单上只有 2 个 TLayout-控件和 2 个 TEdit-控件:

重现步骤:

    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.fmx"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
    {
        Layout1->Parent = Layout2;
    }

为什么?如果在 C++ Builder 10.2 中执行相同的步骤,Tab 功能在将 Layout1 的父级设置为 Layout2 后继续工作。

Unit1.fmx 的内容,应“Schneider Infosystems Ltd”的要求:

    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 480
      ClientWidth = 640
      FormFactor.Width = 320
      FormFactor.Height = 480
      FormFactor.Devices = [Desktop]
      OnShow = FormShow
      DesignerMasterStyle = 0
      object Layout1: TLayout
        Position.X = 8.000000000000000000
        Position.Y = 8.000000000000000000
        Size.Width = 305.000000000000000000
        Size.Height = 409.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 0
        object Edit1: TEdit
          Touch.InteractiveGestures = [LongTap, DoubleTap]
          TabOrder = 0
          Text = 'edit1'
          Position.X = 64.000000000000000000
          Position.Y = 72.000000000000000000
        end
        object Edit2: TEdit
          Touch.InteractiveGestures = [LongTap, DoubleTap]
          TabOrder = 1
          Text = 'edit2'
          Position.X = 64.000000000000000000
          Position.Y = 112.000000000000000000
        end
      end
      object Layout2: TLayout
        Position.X = 328.000000000000000000
        Position.Y = 8.000000000000000000
        Size.Width = 305.000000000000000000
        Size.Height = 409.000000000000000000
        Size.PlatformDefault = False
        TabOrder = 1
      end
    end

是的! 安装“C++ Builder 10.4.1”后即可使用! 所以,这是 10.4 中的一个错误。

我必须执行更多操作来构建和测试我关心的所有现有软件,但我很高兴 TAB-key 功能似乎已解决! :)

我必须完全卸载和安装 RadStudio。第三方软件也必须在 IDE 中再次集成。很多工作。我一直想知道为什么这是必要的,并且无法通过 10.4 版中的“GetIt”补丁更新来解决。