Примерно так:
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics;
type
TMyLabel = class(TControl)
private
FFontTextSettingInfo: TTextSettingsInfo;
function GetTextSettings: TTextSettings;
procedure SetTextSettings(const Value: TTextSettings);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property LabelFont: TTextSettings read GetTextSettings write SetTextSettings;
end;
implementation
type
TMyTextSettings = class (TTextSettingsInfo.TCustomTextSettings)
public
constructor Create(const AOwner: TPersistent); override;
published
property Font;
property FontColor;
property HorzAlign;
property VertAlign;
// можно убрать ненужные свойства
// property WordWrap default True;
// property Trimming default TTextTrimming.Character;
end;
constructor TMyTextSettings.Create(const AOwner: TPersistent);
begin
inherited;
WordWrap := False;
Trimming := TTextTrimming.Character;
end;
constructor TMyLabel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FFontTextSettingInfo := TTextSettingsInfo.Create(Self,TMyTextSettings);
// FFontTextSettingInfo.TextSettings.FontColor := TAlphaColors.Black;
// FFontTextSettingInfo.TextSettings.OnChanged := FontChanged;
end;
destructor TMyLabel.Destroy;
begin
FFontTextSettingInfo.Free;
inherited Destroy;
end;
function TMyLabel.GetTextSettings: TTextSettings;
begin
Result := FFontTextSettingInfo.TextSettings;
end;
procedure TMyLabel.SetTextSettings(const Value: TTextSettings);
begin
FFontTextSettingInfo.TextSettings.Assign(Value);
end;
end.