FMX.TextLayout.TTextAttribute

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

  TTextAttribute = record
  public
    Font: TFont;
    Color: TAlphaColor;
    constructor Create(const AFont: TFont;
                       AColor : TAlphaColor); overload;
    constructor Create(const AExisting: TTextAttribute;
                       const ANewFont: TFont); overload;
    constructor Create(const AExisting: TTextAttribute;
                       ANewColor: TAlphaColor); overload;
  end;

C++

struct DECLSPEC_DRECORD TTextAttribute
{
public:
    Fmx::Graphics::TFont* Font;
    System::Uitypes::TAlphaColor Color;
    __fastcall TTextAttribute(Fmx::Graphics::TFont* const AFont, System::Uitypes::TAlphaColor AColor)/* overload */;
    __fastcall TTextAttribute(const TTextAttribute &AExisting, Fmx::Graphics::TFont* const ANewFont)/* overload */;
    __fastcall TTextAttribute(const TTextAttribute &AExisting, System::Uitypes::TAlphaColor ANewColor)/* overload */;
    TTextAttribute() {}
};

プロパティ

種類 可視性 ソース ユニット
record
struct
public
FMX.TextLayout.pas
FMX.TextLayout.hpp
FMX.TextLayout FMX.TextLayout


説明

テキスト属性を保持します。

Font は、テキストのフォントを保持します。Color は、テキストのを保持します。

TTextAttribute は、次の 3 つの方法で作成できます:

  • 既存のフォントと色から作成
  • 既存の TTextAttribute から作成(色は新規)
  • 既存の TTextAttribute から作成(フォントは新規)


メモ: RAD Studio 10.2 Tokyo Release 3 より、TTextLayout クラスが、第 1 コンストラクタで TFont インスタンスを解放しません。このため、代わりにプログラムが TFont インスタンスを削除しなければなりません。

非 ARC プラットフォームの場合(Windows と macOS を含む)、 TTextAttribute.Create の最初のパラメータを使用するフォント インスタンスが使用されなくなったら、Free メソッドを手動で呼び出さなければなりません。
ARC プラットフォームの場合、インスタンスが使用されなくなった際に、ARC がそれを削除します。

以下の例を参照してください:

Layout := TTextLayoutManager.TextLayoutByCanvas(self.Canvas.ClassType).Create;
try
 BoldFont := TFont.Create;
 try
   ATTR1 := TTextAttribute.Create(BoldFont,TAlphaColorRec.Blue); 
   ATTR2 := TTextAttribute.Create(ATTR1,TAlphaColorRec.Red);


   Layout.AddAttribute(TTextRange.Create(0,5), ATTR1);
   Layout.AddAttribute(TTextRange.Create(12,5), ATTR2);


 finally
   BoldFont.Free;  // for ARC platform, Free method does nothing. This code keeps single source for all platforms.
 end;
finally
 FreeAndNIL(Layout);
end;

関連項目