delphi 文本HorzAlign不适用于运行时创建的标签

pxy2qtax  于 2023-03-18  发布在  其他
关注(0)|答案(2)|浏览(150)

在一个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;
b5buobof

b5buobof1#

你需要仔细阅读FMX.Graphics.ITextSettings,你会发现TStyledSettingsTTextSettings之间有一个重要的关系。
在您的问题中,您担心水平对齐不符合您的设置:
lb.TextSettings.HorzAlign := TTextAlign.Leading;
这是因为您通过将TStyledSetting.Other包含在lb.StyledSettings中而否决了它。
lb.StyledSettings中删除TStyledSetting.Other,您将看到HorzAlignVertAlignTrimmingWordWrap将遵循您自己的设置。

u5i3ibmn

u5i3ibmn2#

我希望这对你有帮助。TLabel的属性“Alignment”需要配置为taCenter。但仅仅这样是不够的。除此之外,你需要配置属性“AutoSize”为false。然后,一切都会好的。
lb.对齐:= taCenter;磅自动调整大小:=假;
属性“Align”不是用来对齐标签内的文本,而是用来对齐表单内的标签组件。“Alignment”是用来对齐标签内文本的正确属性。是的,我知道,他们可以更清楚地给出这些属性名称。

相关问题