把 FireMonkey 简称为 FM 吧. FM 的窗体继续使用 Left、Top 属性, 但更多控件不是了.
//FM 控件的位置控制不再是 Left、Top, 取而代之的是 Position 属性 procedure TForm1.Button1Click(Sender: TObject); begin Rectangle1.Position.X := Rectangle1.Position.X + 10; Rectangle1.Position.Y := Rectangle1.Position.Y + 10; end; //TPosition 是类 procedure TForm1.Button2Click(Sender: TObject); var posObj: TPosition; begin posObj := TPosition.Create(TPointF.Create(10, 10)); Rectangle1.Position.Assign(posObj); posObj.Free; end; //TPosition.Point 是 TPointF 类型的结构 procedure TForm1.Button3Click(Sender: TObject); begin Rectangle1.Position.Point := TPointF.Create(50, 50); end; //TPointF 结构也拥有许多方便的方法和运算符重载 procedure TForm1.Button4Click(Sender: TObject); var ptf: TPointF; begin ptf.X := ClientWidth / 2; ptf.Y := ClientHeight / 2; ptf.Offset(-Rectangle1.Width / 2, -Rectangle1.Height / 2); Rectangle1.Position.Point := ptf; end; //TVector 是包含三个元素的结构体, TPosition 可以直接使用其前两个数据 procedure TForm1.Button5Click(Sender: TObject); var vector: TVector; begin vector.X := ClientWidth - Rectangle1.Width; vector.Y := ClientHeight - Rectangle1.Height; // vector.W := 0.0; Rectangle1.Position.Vector := vector; end;