我想问一下,我的程序里有几个窗体,每个窗体里有几个groupbox,在不同分辨率下,字体大小显示不同,窗体大小不一样,比如我的电脑分辨率是1440*900,在分辨率是1024*768的电脑上显示窗体变大,字体变大,怎么办,我看网上说在formcreat事件里用Scaleby方法,那我有几个窗体,是不是每个窗体都要在formcreat事件里用Scaleby写一段代码来改,还是只在主窗体里改,其它窗体都在可用窗体里,请问有什么简单的方法做到窗体大小不变,字体大小不变呢?

解决方案 »

  1.   

    你说的比较难办,但可以让窗体适应分辨率~~如下procedure screenRate(form:Tform); //适应不同分辨率
    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;
      

  2.   

    这个问题,要区别对待:
    1、操作系统的屏幕分辨率
    一般是640*800、1440*900、1024*768等几种。
    2、编写软件的窗口分辨率
    要求编写软件的窗口分辨率要适应操作系统的屏幕分辨率。这就要在form的 create事件中,获取操作系统的屏幕分辨率,再设置软件的分辨率。这里所讲的“适应”,是指窗口大小要适应屏幕。
    3、窗口显示的字体大小
    一般不需要变动,如要变动。可以编写一个方法。变动FORM的字体,其包含的组件可以设为跟随变动即可。采用此方法,有时还得变动组件的长宽。比较繁锁。方法的执行也可放在OnShow事件中。
      

  3.   

    elastfrm 这个控件吧不须写代码 这个网站也下载 http://delphi.icm.edu.pl/ftp/d10share/