В приложении для 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;
Это потому, что вы отменили это, включив TStyledSetting.Other
в lb.StyledSettings
.
Удалите этот TStyledSetting.Other
из lb.StyledSettings
, и вы увидите, что HorzAlign
, VertAlign
, Trimming
и WordWrap
будут соответствовать вашим собственным настройкам.