如何使界面会随显示器分辨率的不同而自动调整???(50分)

  • 主题发起人 主题发起人 cocolq
  • 开始时间 开始时间
C

cocolq

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在分辨率1024*768的情况下界面能够正常显示,但在800*640的分辨率
情况下却不能完全显示,为什么??请多执教!!
 
关注中,我也需要此类解答
现在是先获得屏幕的分辨率,不符合就更改
还有其他的方法吗?
 
我也是觉得应该:
先得到显示器的分辨率;
然后选择更改。

我有一个就是这样做的
 
思路不对,应该取分辨率,再根据比例计算,更改控件的大小以适应,新的分辨率

给你个例子:
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属性
简单吧,快点给分!
 
觉得麻烦
 
运行前先调整系统分辨率,程序退出后还原成原来的分辨率就可以了啊
 
你是否字体不正常啊?试试下面两条:指定字符集,如gb2312_charset,设定scaled为false;
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部