1

我想在我新创建的 Delphi XE8 Firemonkey 应用程序中设置状态栏的背景颜色(和前景色)。状态栏是指带有时间和 wifi 小部件的顶部栏。

我只是找不到它。我需要一些帮助 :-)

谢谢,爱德华

4

2 回答 2

0

来自 Harry Stahl 的“Cross-Platform Development with Delphi XE7 and FireMonkey for Windows & MAC OS X”一书的推荐

TStatusbar(一种弥补缺失“面板”的方法)

在 VCL 状态栏中,您可以在“面板”属性上或通过“SimpleText”属性显示文本。在 FireMonkey 状态栏中,没有任何类似的内容,没有文本属性。因此,您可以将状态栏用作容器,例如,插入 Labels 。

更好的解决方案:只需使用 TGrid!正如您在下面显示的屏幕截图中看到的那样,我在 StatusBar 中包含了一个 TGrid。在 TGrid 中,我添加了 2 个 TStringColumns、一个 TImageColumn、一个 TStringColumn 和一个 TProgressColumn。在 Objectinspector 中,我为 TGrid 设置了:

于 2015-05-22T12:08:08.253 回答
0

表单的 Fill.Color 控制工具栏的颜色,该颜色的平均亮度控制文本是白色还是黑色

Borderstyle 必须为 <> None,否则工具栏将被隐藏。

如果您有多个表单,则不清楚使用哪种表单,但它似乎是项目文件中自动创建的最后一个表单。

以下是一些相关的源代码,FMX.Platform.iOS.pas它记录了文本的颜色:

procedure TPlatformCocoaTouch.UpdateStatusBarColor(const AForm: TCommonCustomForm);
  ...
  AppDelegate.MainWindow.RootViewController.SetStatusBarBackgroundColor((AForm as TCustomForm).Fill.Color);
  ...

procedure TFMXViewController.SetStatusBarBackgroundColor(const ABackgroundColor: TAlphaColor);
  ...
  FStatusBarLuminance := Luminance(ABackgroundColor);
  ...

function TFMXViewController.preferredStatusBarStyle: UIStatusBarStyle;
begin
  if FStatusBarLuminance < 0.5 then
    Result := UIStatusBarStyleLightContent
  else
    Result := UIStatusBarStyleDefault;
end;

PS。我还有另一个未回答的关于如何使状态栏透明的问题,这是本机 iOS 7+ 行为。

于 2015-05-22T12:59:36.857 回答