我想问一下,我的程序里有几个窗体,每个窗体里有几个groupbox,在不同分辨率下,字体大小显示不同,窗体大小不一样,比如我的电脑分辨率是1440*900,在分辨率是1024*768的电脑上显示窗体变大,字体变大,怎么办,我看网上说在formcreat事件里用Scaleby方法,那我有几个窗体,是不是每个窗体都要在formcreat事件里用Scaleby写一段代码来改,还是只在主窗体里改,其它窗体都在可用窗体里,请问有什么简单的方法做到窗体大小不变,字体大小不变呢?
调试欢乐多
begin
form.scaled:=true; //screenHeight,screenWidth开发环境的分辨率 定义成常量
if(screen.Width<>screenWidth) then
begin
form.height:=longInt(form.height)*longint(screen.height) div screenHeight;
form.width:=longInt(form.width)*longInt(screen.width) div screenWidth;
form.scaleby(screen.width,screenWidth);
end;end;
1、操作系统的屏幕分辨率
一般是640*800、1440*900、1024*768等几种。
2、编写软件的窗口分辨率
要求编写软件的窗口分辨率要适应操作系统的屏幕分辨率。这就要在form的 create事件中,获取操作系统的屏幕分辨率,再设置软件的分辨率。这里所讲的“适应”,是指窗口大小要适应屏幕。
3、窗口显示的字体大小
一般不需要变动,如要变动。可以编写一个方法。变动FORM的字体,其包含的组件可以设为跟随变动即可。采用此方法,有时还得变动组件的长宽。比较繁锁。方法的执行也可放在OnShow事件中。