Janex72 Опубликовано 27 ноября, 2017 Поделиться Опубликовано 27 ноября, 2017 (изменено) Ешё проблемы с 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 Изменено 27 ноября, 2017 пользователем Janex72 Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 28 ноября, 2017 Модераторы Поделиться Опубликовано 28 ноября, 2017 посмотри тут https://github.com/rzaripov1990/ZMaterialComponents/blob/master/Library/FMX.ZMaterialEdit.pas Ingalime 1 Цитата Ссылка на комментарий
0 Janex72 Опубликовано 28 ноября, 2017 Автор Поделиться Опубликовано 28 ноября, 2017 (изменено) 4 часа назад, Равиль Зарипов (ZuBy) сказал: посмотри тут https://github.com/rzaripov1990/ZMaterialComponents/blob/master/Library/FMX.ZMaterialEdit.pas Спасибо, но тут он сылается на ТEdit у которого есть своиство TTextSettings : function TZMaterialEdit.GetTextSettings: TTextSettings; begin Result := FEdit.TextSettings; end; Но у меня свои пустои компонент которыи НЕ наслседовает другои компонент с своиством TTextSettings, и внутри тоже никого с готовым своиством TTextSettings Хотел прикрутить его для моих нужд... обект TTextSettings создаётся и доступен, вот только в дизаинтаиме он в Oбject Inspector-е почему то неразвёртвовается Изменено 28 ноября, 2017 пользователем Janex72 Цитата Ссылка на комментарий
0 mmover Опубликовано 28 ноября, 2017 Поделиться Опубликовано 28 ноября, 2017 Примерно так: 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. RoschinSpb и Равиль Зарипов (ZuBy) 2 Цитата Ссылка на комментарий
0 Janex72 Опубликовано 28 ноября, 2017 Автор Поделиться Опубликовано 28 ноября, 2017 mmover, спасибо, то что надо ... Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 29 ноября, 2017 Модераторы Поделиться Опубликовано 29 ноября, 2017 15 часов назад, Janex72 сказал: Спасибо, но тут он сылается на ТEdit у которого есть своиство TTextSettings : Anatoliy 1 Цитата Ссылка на комментарий
0 RoschinSpb Опубликовано 29 ноября, 2017 Поделиться Опубликовано 29 ноября, 2017 Для придания завершенности Вашему контролу надо бы еще реализовать интерфейс ITextSettings чтобы можно было использовать его как в примере: Цитата Ссылка на комментарий
Вопрос
Janex72
Ешё проблемы с 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
Ссылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.