【问题标题】:Delphi-XE4 FireMonkey Styles and iOSDelphi-XE4 FireMonkey 样式和 iOS
【发布时间】:2014-05-15 21:24:15
【问题描述】:

好吧,这让我发疯了。这是我的代码:

我下载了高级样式并将 iOS 放在C:\Users\Public\Documents\RAD Studio\11.0\Styles\iOS

begin
  TStyleManager.SetStyleFromFile('iOSJet.style');
  TStyleManager.SetStyleFromFileHiRes('iOSJet2x.style');
  Application.Initialize;
  Application.CreateForm(TFormMain, FormMain);
  Application.Run;
end

如果已将这两个文件添加到“部署”中

  • iOSJet.style
  • iOSJet2x.style

但我的应用仍然使用默认的 ios6 样式打开。当我单步执行代码时,会发生这种情况:

  Result := False;
  S := LoadFromFile(FileName);
  if Assigned(S) then
  begin
    // Does NOT enter here?
    Result := True;
    SetStyle(S);
  end;

令人困惑的是,我使用的是 Embarcadero 官方展示的代码:

有没有人让样式起作用?如果是这样,具体是怎样的?

【问题讨论】:

  • 您看到表单设计器中应用的新样式了吗?
  • 您需要将样式文件部署到设备,然后将完整文件路径传递给 SetStyleFromFile。最好将文件作为资源包含进来,并从资源中读取到系统样式中。
  • @DougRudd 是的 - 是的。
  • @MikeSutton 我认为使用 TStyleBook 就足够了。谢谢!
  • TStyleBook 仅设置放置它的表单的样式。此外,您还需要将表单的 StyleBook 属性设置为指向它(我不记得 XE4 上的 HiRes 样式会发生什么 - 可能是 StyleBookHiRes 属性?)。

标签: ios delphi firemonkey delphi-xe4


【解决方案1】:

这似乎有效

procedure msSetupStyles;
var
  vAppDataDirPathRoot: string;
  vAppDataDirPathExec: string;
  vStylePath: string;
  vAppTitle: string;
  AppService: IFMXApplicationService;
begin
  vAppTitle := Application.Title;
  if vAppTitle = '' then
    begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationService, IInterface(AppService)) then
        begin
          vAppTitle := AppService.GetTitle;
        end
      ;
    end
  ;
  vAppDataDirPathRoot := TPath.GetHomePath + PathDelim;
  vAppDataDirPathExec := vAppDataDirPathRoot + vAppTitle + '.app' + PathDelim; 
  //--
  vStylePath := vAppDataDirPathExec + 'iOSJet.style';
  if FileExists(vStylePath) then
    begin
      TStyleManager.SetStyleFromFile(vStylePath);
      vStylePath := vAppDataDirPathExec + 'iOSJet2x.style';
      if FileExists(vStylePath) then
        begin
          TStyleManager.SetStyleFromFileHiRes(vStylePath);
        end
      ;
    end
  ;
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2013-05-09
    相关资源
    最近更新 更多