对于 delphi 里大多数可显示控件来说,都有 Anchors 属性。此属性用于设置控件的位置在窗体大小等发生改变时所基的“锚”点。
通常来说,缺省的设置是 akLeft 和 akTop,即当控件所在窗体(容器类)大小位置发生改变时,控件的左、上边(距离)保持不变:
如果控件的位置发生了偏移,建议检查控件是否在同一容器内、以及 AutoSize 等可能会改变位置的数据变化情况。
如果“字”与“图片”偏移不大,可以考虑将图片尺寸加大一些,或者编写窗体大小改变时的响应代码(如 OnRize 事件)。
因为不知道你的FORM怎么布局,只提供思路,希望对你有帮助。
假设一等奖写在Panel1上,图片是image1,那么在窗体Form1的OnResize事件中处理image1的位置就行了。
procedure TForm1.FormResize(Sender: TObject);
begin
Image1.Left := Panel1.Left + (Panel1.Width - Image1.Width) div 2;
end;
这个只靠设置是不可靠的,必须通过代码实现 、
代码大致: 1.获取当前屏幕分辨率 2.设置好比例参数 3.对界面上控件*比例参数
procedure TfrmMain.sTabSheet1Resize(Sender: TObject);
begin
iPanel1.Left := round((Width - 8 - iPanel1.Width) / 2); //常量8用于处理边界问题
end;