2014-04-03 63 views
1

好吧,这是让我疯狂的。这是我的代码:Delphi-XE4 FireMonkey样式和iOS

我下载的溢价风格,并放置了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公司正式所示的代码:

有没有人得到的风格加工?如果是这样,怎么样?

+0

你看到在窗体设计应用了新的风格? –

+0

您需要将样式文件部署到设备,然后将完整的文件路径传递给SetStyleFromFile。最好将文件包含为资源,并将其从资源读入系统风格。 –

+0

@DougRudd是的 - 是的。 – Tom

回答

0

这似乎是工作

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;