Delphi Firemonkey DX Seattle TTabControl 在 TVertScrollBox 中时无法正确重新打印
Delphi Firemonkey DX Seattle TTabControl not reprinting correctly when inside a TVertScrollBox
这在 Delphi XE8
中有效
这是一个示例项目
https://github.com/dangas56/DelphiDXSeattle-BrokenTabControl
当键盘在设备上弹出时,我们有一个 VertScrollBox
并有多个选项卡控件和选项卡项在屏幕之间轻弹
注意到 Delphi DX Seattle
中的标签有时无法正确打印
这是要重现的代码示例 - 您可以从上面的 git link 下载示例
procedure TForm2.tbcMainChange(Sender: TObject);
begin
if tbcMain.ActiveTab = tbtmSettings then
tbcMain.TabPosition := TTabPosition.None
else begin
tbcMain.TabPosition := TTabPosition.Bottom;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
tbcMain.ActiveTab := tbtmHome;
end;
这是主屏幕的示例,单击第二个选项卡可将原始 tabControl 上的 TabPosition 设置为 none(以隐藏选项卡)。
这是第二个选项卡 - 通常底部有更多选项卡项目
当我们单击按钮返回原始选项卡时,它将原始选项卡的 Tabposition 设置为底部并将活动项目设置为第一个选项卡项目
正如您在下面看到的,它没有重新打印屏幕底部的选项卡项
我们找到了一个临时修复程序
而不是仅仅将 tabPosition 从 none 设置到底部,例如
tbcMain.TabPosition := TTabPosition.Bottom;<br>
如果你这样做似乎又可以重印了
tbcMain.TabPosition := TTabPosition.Bottom;
tbcMain.TabPosition := TTabPosition.Dots;
tbcMain.TabPosition := TTabPosition.Bottom;
这在 Delphi XE8
中有效这是一个示例项目 https://github.com/dangas56/DelphiDXSeattle-BrokenTabControl
当键盘在设备上弹出时,我们有一个 VertScrollBox
并有多个选项卡控件和选项卡项在屏幕之间轻弹
注意到 Delphi DX Seattle
这是要重现的代码示例 - 您可以从上面的 git link 下载示例
procedure TForm2.tbcMainChange(Sender: TObject);
begin
if tbcMain.ActiveTab = tbtmSettings then
tbcMain.TabPosition := TTabPosition.None
else begin
tbcMain.TabPosition := TTabPosition.Bottom;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
tbcMain.ActiveTab := tbtmHome;
end;
这是主屏幕的示例,单击第二个选项卡可将原始 tabControl 上的 TabPosition 设置为 none(以隐藏选项卡)。
这是第二个选项卡 - 通常底部有更多选项卡项目
当我们单击按钮返回原始选项卡时,它将原始选项卡的 Tabposition 设置为底部并将活动项目设置为第一个选项卡项目
正如您在下面看到的,它没有重新打印屏幕底部的选项卡项
我们找到了一个临时修复程序
而不是仅仅将 tabPosition 从 none 设置到底部,例如
tbcMain.TabPosition := TTabPosition.Bottom;<br>
如果你这样做似乎又可以重印了
tbcMain.TabPosition := TTabPosition.Bottom;
tbcMain.TabPosition := TTabPosition.Dots;
tbcMain.TabPosition := TTabPosition.Bottom;