文本 HorzAlign 不适用于运行时创建的标签
Text HorzAlign doesn't work on runtime created Label
在 Android 应用程序中,我试图在运行时将标签创建到矩形中,除文本的水平对齐外,所有属性都工作正常。我的代码有问题吗?
procedure TForm7.Button1Click(Sender: TObject);
var
lb : TLabel;
begin
lb := TLabel.Create(Rectangle1);
lb.Parent := Rectangle1;
lb.Align := TAlignLayout.Center;
lb.TextSettings.HorzAlign := TTextAlign.Leading;
lb.Width := 300;
lb.TextSettings.Font.Size := 12;
lb.StyledSettings:=[TStyledSetting.Family,TStyledSetting.Style,
TStyledSetting.FontColor,TStyledSetting.Size,TStyledSetting.Other];
lb.Margins.Bottom := 100;
lb.Text := 'Programming Language is Delphi 10.4 31/3/2022';
end;
您需要阅读 FMX.Graphics.ITextSettings。你会发现TStyledSettings
和TTextSettings
之间有一个重要的关系。
在您的问题中,您担心水平对齐不符合您的设置:
lb.TextSettings.HorzAlign := TTextAlign.Leading;
那是因为您通过在 lb.StyledSettings
中包含 TStyledSetting.Other
否决了它。
从 lb.StyledSettings
中删除 TStyledSetting.Other
,您将看到 HorzAlign
、VertAlign
、Trimming
和 WordWrap
将跟随您自己的设置。
在 Android 应用程序中,我试图在运行时将标签创建到矩形中,除文本的水平对齐外,所有属性都工作正常。我的代码有问题吗?
procedure TForm7.Button1Click(Sender: TObject);
var
lb : TLabel;
begin
lb := TLabel.Create(Rectangle1);
lb.Parent := Rectangle1;
lb.Align := TAlignLayout.Center;
lb.TextSettings.HorzAlign := TTextAlign.Leading;
lb.Width := 300;
lb.TextSettings.Font.Size := 12;
lb.StyledSettings:=[TStyledSetting.Family,TStyledSetting.Style,
TStyledSetting.FontColor,TStyledSetting.Size,TStyledSetting.Other];
lb.Margins.Bottom := 100;
lb.Text := 'Programming Language is Delphi 10.4 31/3/2022';
end;
您需要阅读 FMX.Graphics.ITextSettings。你会发现TStyledSettings
和TTextSettings
之间有一个重要的关系。
在您的问题中,您担心水平对齐不符合您的设置:
lb.TextSettings.HorzAlign := TTextAlign.Leading;
那是因为您通过在 lb.StyledSettings
中包含 TStyledSetting.Other
否决了它。
从 lb.StyledSettings
中删除 TStyledSetting.Other
,您将看到 HorzAlign
、VertAlign
、Trimming
和 WordWrap
将跟随您自己的设置。