在一个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;
2条答案
按热度按时间b5buobof1#
你需要仔细阅读FMX.Graphics.ITextSettings,你会发现
TStyledSettings
和TTextSettings
之间有一个重要的关系。在您的问题中,您担心水平对齐不符合您的设置:
lb.TextSettings.HorzAlign := TTextAlign.Leading;
这是因为您通过将
TStyledSetting.Other
包含在lb.StyledSettings
中而否决了它。从
lb.StyledSettings
中删除TStyledSetting.Other
,您将看到HorzAlign
、VertAlign
、Trimming
和WordWrap
将遵循您自己的设置。u5i3ibmn2#
我希望这对你有帮助。TLabel的属性“Alignment”需要配置为taCenter。但仅仅这样是不够的。除此之外,你需要配置属性“AutoSize”为false。然后,一切都会好的。
lb.对齐:= taCenter;磅自动调整大小:=假;
属性“Align”不是用来对齐标签内的文本,而是用来对齐表单内的标签组件。“Alignment”是用来对齐标签内文本的正确属性。是的,我知道,他们可以更清楚地给出这些属性名称。