怎样能使form的大小自适应显示器分辨率?(100分)

  • 主题发起人 主题发起人 taoqg
  • 开始时间 开始时间
T

taoqg

Unregistered / Unconfirmed
GUEST, unregistred user!
我在800*600分辨率下编的form(满屏),在1024*768下就变小了,
能否让form由(不同电脑)分辨率的变化,始终最大化。
 
看看form的windowstate属性
 
如果在运行中改变,就处理一下WM_DISPLAYCHANGE。
 
implementation
const
ScreenWidth: LongInt = 800;
ScreenHeight: LongInt = 600;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;
 
方法一: WindowState设为wsMaximized.
方法二: 在Form.OnCreate事件中, 设置:
Form1.width:=Screen.Width;
Form1.Height:=Screen.Height;
 
taoqg肯定不是form大小那么简单,是要form中所有可视控件一起变吧
 
正是要form中所有可视控件一起变!!
谢谢!!
 
32位深度历险中有这样的控件。
东方网络的Delphi深度历险
http://delphi32.sonic.net.cn/delphigb/default.htm
 
这方面最爽的控件莫过于Psizer2.2,完全满足你的要求,
mail address?
 
Form1.WindowsState:=wsMaximize;
 
xk:<a href="mailto:sqh@dna.sibc.ac.cn">寄给我一份</a>
 
我也想要:pdw512@263.net 8M
 
by the way
对于不同尺寸的显示器可以吗?
 
xk:
my email address is taoqg@263.net
thanks!
 
XK:
我正想解决这个问题,MAIL 一个给我好吗?wuzhenzhen@netease.com
 
to xk:
me too. mailto:tommm@371.net
 
to xk
to xk:
me too. mailto: raider2k@chinaren.com
 
类似的问题看了很多,我现在有一个想法,我觉得我们遇到这样的问题,应该首先
问问自己:我的程序需要resize吗?
很多情况下,我们的程序是不需要resize的,因为根本没有意义. 看看windows
自己的程序,大部分界面也是不用resize的,仅仅是一个复杂dialog而已,那些
需要resize的程序一般有一个共同点:都有一片很大的client区域,比如IE的
Document区域,NotePad的编辑区域,画笔的作图区域,这些区域因为是不能确定
面积的,所以需要用户自己resize来调整,而这种类型的程序resize是很方便的,
只要设置那片大区域的alignment为client即可.
对于其他类型的程序界面,如"计算器"等,根本没有必要进行resize调整,而且
调整起来也非常麻烦.当然,用一些控件的确也可以实现resize的效果,但是这
似乎不太符合windows软件设计的风格,显得有些不伦不类.
所以,我认为,遇到类似问题,应该首先问问自己: 我的程序需要resize进行调整吗?
如果不是必需的,建议做成dialog类型的窗口.
 
taoqg:
已发出,别的兄弟等等,我将上传新主页,(原主页在myrice,已不能下载)
回头通知大家。
我认为cakk讲的很有道理,我的应用一般都用dialog类型窗口。
 

Similar threads

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