思路不对,应该取分辨率,再根据比例计算,更改控件的大小以适应,新的分辨率
给你个例子:
procedure TForm4.FormActivate(Sender: TObject);
var i:integer;x,z,y:integer;
begin
x:=integer(GetSystemMetrics(SM_CXSCREEN));//取现在的分辨率
y:=integer(GetSystemMetrics(SM_CySCREEN));
form4.Width:= integer(form4.Width*x div 1024) ;//按比例更改from的大小及位置
form4.Height:= integer(form4.Height*y div 768 );
form4.Left:= (x-form4.Width)div 2;//居中
form4.Top:= (y-form4.Height) div 2;
//接下来是控件
for i:=0 to form4.panel1.ControlCount-1 do
begin
form4.Panel1.Controls.Top:= form4.panel1.Controls.Top*y div 768;
form4.panel1.Controls.left:= form4.panel1.Controls.Left*x div 1024;
form4.panel1.Controls.Width:= form4.panel1.Controls.Width*x div 1024;
form4.panel1.Controls.Height:= form4.panel1.Controls.Height*y div 768;
end;
//同理你还可以更改控件的font属性
简单吧,快点给分!