我遇到了StyleLookup
在TTabControl
嵌套在FMX Frame中的错误。如果具有控件的框架嵌套在HorzScrollBox
中,并且在创建表单时框架的位置在窗体的可见区域之外,则控件的外观不接受样式。换句话说,如果在显示表单时控件是可见的,则控件将被涂上必要的样式外观 - 否则。不是。
重现错误:
Align
的{{1}}设置为TabControl
。比方说,添加4个TTabItems。完成。运行该项目。你会得到这个bug。 在运行时,TabItem的外观如下所示:
如果在运行时手动设置StyleLookup,则外观可能不会更改,也不会更改为设置为每个其他项目(例如,虽然您将相同的StyleLookup分配给所有TabItems,但是设置为1st和3rd,而不设置为2nd和4th)。另一个有趣的发现。如果您有其他表单包含alClient
TabControls
(嵌套没有框架并且更接近表单的左边框),例如Form2,则会得到以下内容。如果您在运行时首先显示错误的Form1,您将看到该错误,但如果您关闭此表单并显示Form2,您会看到正确的TabItems
。关闭Form2并在之后显示Form1(有缺陷)将以错误的形式为您提供TabControl的正确外观。
它与我之前报道的错误有一些共同之处:Incorrect selection of items in an FMX TListbox (Grid Metropolis UI).它仍未完全解决。
昨天还有一个question,但这与VCL帧的确切问题有关,并且该解决方案不适合FMX。
追加。
方式是部分设置样式是在父窗体单元中为TTabControl设置OnPainting事件处理程序(它不能在框架单元中设置)并写下这样的内容:
TabControl
但是你仍然遇到问题 - 选项卡没有正确绘制 - 请参阅非活动标签的下边缘。
或者甚至喜欢这样:
附加2
我刚刚在设计时遇到了在框架中放置框架并为TabItems指定样式后出现的错误。 TabControl如图1所示。 3。