• 0
Janex72

TTextSettings неразвёртвовается

Вопросы

Ешё проблемы с TTextSettings;

Делаю свои компонент, хочу в него добавить TTextSettings. Смотрел всякие примеры, но у меня почему то он

в Oбject Inspector-е  неразвёртвовается, тоесть, клиекая на +/- стоит в однои строке.

Код примерно такои:
 

 TxdfLabel = Class(TControl)
  Private
    FTextSettings :TTextSettings;
    Procedure SetTextSettings(const Value: TTextSettings);
  Public
    Constructor Create(AOwner: TComponent); Override;
  Published
    Property TextSettings :TTextSettings Read FTextSettings Write SetTextSettings;
  End;

Constructor TxdfLabel.Create(AOwner: TComponent);
begin
  Inherited Create(AOwner);
  FTextSettings  := TTextSettings.Create(Nil);
End;

procedure TxdfLabel.SetTextSettings(const Value: TTextSettings);
begin
  FTextSettings.Assign(Value);
End;

Немогу понять где грабли ...

WBR

Janex

 

Изменено пользователем Janex72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 ответов на этот вопрос

  • 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 часа назад, Равиль Зарипов (ZuBy) сказал:

Спасибо, но тут он сылается на ТEdit у которого есть своиство TTextSettings :

 
function TZMaterialEdit.GetTextSettings: TTextSettings;
begin
Result := FEdit.TextSettings;
end; 

Но у меня свои пустои компонент которыи НЕ наслседовает другои компонент с своиством TTextSettings, и внутри тоже никого с готовым своиством TTextSettings :(

Хотел прикрутить его для моих нужд... обект TTextSettings создаётся и доступен, вот только в дизаинтаиме он

в Oбject Inspector-е  почему то неразвёртвовается

Изменено пользователем Janex72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Примерно так:

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.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
15 часов назад, Janex72 сказал:

Спасибо, но тут он сылается на ТEdit у которого есть своиство TTextSettings :

 

lclass.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Для придания завершенности Вашему контролу надо бы еще реализовать интерфейс ITextSettings чтобы можно было использовать его как в примере:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу