窗口在不同系统下的适应问题 (200分)

U

ugvanxk

Unregistered / Unconfirmed
GUEST, unregistred user!
我设计的窗体在1024*768,大字体下,到了小字体下窗体改变,有什么办法使其适应
不同分辨率和不同字体类型
 

卷起千堆雪tyn

Unregistered / Unconfirmed
GUEST, unregistred user!
1、根据新的分辨率重画表单和控件
Const
Orignwidth=800;
Orignheight=600;
procedure TForm1.FormCreate(Sender: TObject);
begin
scaled:=true;
if (screen.width<>orignwidth) then
begin
height:=longint(height)*longint
(screen.height) div orignheight;
width:=longint(width)*longint
(screen.width) div orignwidth;
scaleby(screen.width , orignwidth);
end;
end;

2、更改分辨率为你设计时的分辨率
procedure TForm1.FormCreate(Sender: TObject);
var
devmode:tDevicemode;
begin
if screen.width<>orignwidth then

begin
if EnumDisplaySettings(nil,0,devmode) then

begin
devmode.dmfields:=dm_pelswidth OR dm_pelsheight ;
devmode.dmpelswidth:=orignwidth;
{宽度}
devmode.dmpelsheight:=orignheight;{高度}
ChangeDisplaySettings(devmode,0);
{更改设置}
end;
end;
end;
 
U

ugvanxk

Unregistered / Unconfirmed
GUEST, unregistred user!
我想更改我的窗体,还有组件,字体等适应问题
有没有好的组件,解决
 

萧月禾

Unregistered / Unconfirmed
GUEST, unregistred user!
将窗体的Scaled属性设为false就行了
 
B

bubble

Unregistered / Unconfirmed
GUEST, unregistred user!
好像有组件可以解决这种问题.
在哪里忘记了.
 
D

datoncg

Unregistered / Unconfirmed
GUEST, unregistred user!
编程好复杂,我一般就改分辨率,程序运行时。
 
J

JimWeaver

Unregistered / Unconfirmed
GUEST, unregistred user!
改分辨率会被用户骂的,修改和恢复的时候会有个切换过程,很讨厌的
 
B

blankblock@263.

Unregistered / Unconfirmed
GUEST, unregistred user!
就像网页一样,按目前流行的分辨率编,比如800x600,或者保险一点640x480。如果要
变大小,可以把窗体上每一个控件的大小位置都按比例设好,按照分辨率改变,这是费力
不讨好的工作,我觉得
 
U

ugvanxk

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 

Similar threads

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