Sylwester Wojnar 的答案部分正确,适用于桌面应用程序也很好,但在移动设备上,这变得更加复杂(至少在 XE5 上,不确定 XE6 是否解决了这个问题)。
当然,您可以(并且必须)使用TStyleBook 和StyleLookup 属性来设置控件的样式,但是您不能轻易复制控件的默认样式,因为移动表单设计器没有Edit custom style 菜单选项,因此您必须完全重新创建样式。幸运的是,有一个解决方法。首先切换到您要编辑样式的任何平台(Android,iOS 6/7),然后在文本模式(Alt+F12)中打开dfm 设置DesignerMobile = False 再次切换到设计模式,你会看到你'仍然是移动风格,但使用古典设计师然后只需右键单击所需的控件并选择Edit custom/default style。
如果您计划在多个平台上运行您的应用程序,您可以将多个 TStyleBooks 添加到您的表单并为每个重复此操作以获得您需要的所有平台的不同且正确的样式,那么您需要在表单构建期间选择一个:
procedure TForm1.AfterConstruction;
begin
inherited;
{$IF Defined(MSWINDOWS)}
StyleBook := StyleBookWindows;
{$ELSEIF Defined(MACOS) AND NOT Defined(IOS)}
// MAC OS shares the same as Windows both default styles appear to be the same
StyleBook := StyleBookWindows;
{$ELSEIF Defined(ANDROID)}
StyleBook := StyleBookAndoird;
{$ELSEIF Defined(IOS)}
if (TOSVersion.Check(7)) then
StyleBook := StyleBookIOS7
else
StyleBook := StyleBookIOS6;
{$ENDIF}
end;
更新:这仅适用于 Delphi XE5,在 XE6 中已“修复”。
更新 2:
还有另一种解决方案可能也适用于 XE6。
首先你需要获取默认的平台风格,iOS风格应该保存在你的Delphi安装的bin\ios下。如何提取Android风格阅读http://delphihaven.wordpress.com/2013/12/31/inspecting-platform-styles-redux/。
然后将TStyleBook添加到您的表单中,双击它并单击Add(不加载,因为这将无法加载),单击Apply and close并再次重新打开样式(以确保它在IDE中正确重新创建)。现在单击Save... 并将其保存在您喜欢的任何位置。这会将其保存为文本,以便您可以手动编辑它。查找tabitemstyle 并删除所有其他样式,使其看起来像这样:
object TStyleContainer
object TLayout
StyleName = 'tabitemstyle'
DesignVisible = False
...
end
end
现在再次编辑样式书并单击Clear All 重新打开样式书并单击Add 并选择您刚刚编辑的样式。再次重新打开样式书,现在应该加载样式,重命名它以便 Delphi 不会将它用于所有TTabItems。使用您刚刚输入的名称选择控件中的样式,并确保在表单中也选择了样式书。
编辑样式:
TTabItem 的默认样式使用图像来绘制底部的蓝色条。修改图像确实很困难,因为它是多分辨率图像,更简单的方法是在样式中添加一个矩形。因此,在样式的top 部分下添加一个矩形,将其定位到底部,在调整位置和大小之后,您应该会得到想要的结果。