2014-04-03 9 views
1

좋아,이 말은 내 마음을 끌고있다. 이건 내 코드입니다 :이 두 파일을 추가 한 경우 I는 프리미엄 스타일을 다운로드 C:\Users\Public\Documents\RAD Studio\11.0\Styles\iOSDelphi-XE4 FireMonkey Styles and iOS

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

의 아이폰 OS 사람을 배치

"배포"

  • iOSJet.style
  • 에 iOSJet2x.style

하지만 내 앱은 기본값 ios6 스타일. 내가 코드를 단계별로 때 발생합니다 :

사람은 누구나 입수 스타일 : 혼란 무엇

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

내가 공식적 엠바 카데로 표시된 코드를 사용하는 모자입니다 일? 그리고 그렇다면 얼마나 정확하게?

+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;