如何在表单中居中放置对象。

在我通常使用的VCL中

lblID.Left := (MainForm.Width div 2) - (lblID.Width div 2);


但是上面的代码在FMX中不起作用,因为任何对象的宽度都是单个而不是整数。

我已经尝试了以下方法,但仍然无法将其完美居中

lblID.Position.X := (MainForm.Width div 2) - trunc(lblID.Width)  div 2;


怎么了 ?

最佳答案

FMX控件的TPosition属性以浮点格式而不是整数格式存储。无需使用整数除法。

 lblID.Position.X := 0.5*(MainForm.Width - lblID.Width);



FMX : TPosition


您可能还应该查看:


Arranging FMX Controls
FMX.Controls.TControl.Align


例如 :

lblID.Align := alHorzCenter;


可能会给你想要的。调整Padding属性将允许控件的垂直放置,而alHorzCenter将使控件水平居中。

10-05 22:25