2013-09-26 19 views
6

旧式の端末セッションのように見えるメモコンポーネントを作成しています。これは本当にシンプルなはずですが、FireMonkeyのスタイルの仕方は信じられないほど複雑に思えます。FireMonkeyのTMemoのフォントと背景色を変更してください

モバイル以外のFireMonkeyアプリケーションでは、コントロールを右クリックして[カスタムスタイルの編集]を選択できます。このオプションはモバイルアプリでは使用できません。 FireMonkey開発者の1人が与えた理由は次のとおりです。

iOSとAndroidで異なるスタイルをサポートしています。 iOSスタイルのAndroid上で アプリケーションを実行することはできません。しかし、 プラットフォームスタイルを変更しようとすると、自動的に各ターゲットプラットフォームで使用します。 fmコントロールのデフォルトスタイルを変更する場合は、 フォームスタイルのブックを入れてスタイルを作成するか、スタイルブック プラットフォームスタイルにロードして変更する必要があります。

あなたは、プラットフォームのスタイルをプラットフォームの2つのコピー(fmxパッケージの1つのシステムとスタイルブックの他のコピー)を持たないようにすることができます。 そのためには、TStylebook.UseStyleManagerでフラグをtrueに設定する必要があります。 では、スタイルブックのこのケーススタイルがプラットフォームスタイルを置き換えます。

OK、私はカスタムスタイルを作成する必要があると思います。フォントと背景のプロパティだけをオーバーライドするカスタムスタイルを作成するにはどうすればいいですか?

私はこのようなApplyStyleプロシージャをオーバーライドできると思います。

procedure TMyMemo.ApplyStyle; 
var 
    BackgroundObject: TFmxObject; 
begin 
    inherited; 

    BackgroundObject := FindStyleResource('content'); 

    if Assigned(BackgroundObject) then 
    begin 
    // Change the background color of the background 
    end; 
end; 

どのようなタイプの背景オブジェクトがあり、どのプロパティを変更する必要があるかはどのように分かりますか?

確かに、コントロールの背景色を変更することは、これほど難しいことではありません!私はFMスタイルの基本的なものを見逃していますか?

答えて

1

私が知ったことは、FireMonkeyでフォントを変更できないことです。別のフォントに設定することはできますが、デバイス上で実行するとデフォルトのフォントになります。

メモの背景色を変更する場合は、フォームにスタイルブックを追加し、必要なスタイルファイルを読み込む必要があります(既定のライトiOSスタイルのように)。スタイルをロードしたら、memostyleに行き、背景を変更します。

希望すると便利です。

0

uses System.UIConsts; 


procedure TfPlanJob.mDetailApplyStyleLookup(Sender: TObject); 
var Obj: TFmxObject; 
    Rectangle1: TRectangle; 
begin  
    Obj := mDetail.FindStyleResource('background'); 
    if Obj <> nil then 
    begin 
      TControl(Obj).Margins := TBounds.Create(TRectF.Create(-1, -1, -1, -1)); 
      Rectangle1    := TRectangle.Create(Obj); 
      Obj.AddObject(Rectangle1); 
      Rectangle1.Align  := TAlignLayout.Client; 
      Rectangle1.Fill.Color := claLightslategrey; 
      Rectangle1.Stroke.Color := claNull; 
      Rectangle1.HitTest  := False; 
      Rectangle1.SendToBack; 
    end; 
end; 
あなたは便利この回避策を願っています
関連する問題