我开发的程序是在1024*768的分辨率下的,但是程序拿到800×600就不行了!
我搜索了csdn里面的那些精华文章,发现很多人遇到和我一样的问题,但是我把
他们已经结贴的方法来试,都不行,主要的是我的是一个题库系统,过程中生成题库很多都是动态生成不知道是不是因为这个原因,总之现在我一筹莫展,望还有高手帮助>_< 不胜感激。

解决方案 »

  1.   

    在Form的OnCreate事件中取得屏幕分辨率,然后动态创建控件.
      

  2.   

    可以使用changedisplaysettings函数修改显示器分辨率.
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;const
      ScreenHeight: integer = 800;
      ScreenWidth: integer = 600;implementation{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    var
      x, y: LongInt;
    begin
      form1.scaled := true;
      //窗体可以缩放
      x := getSystemMetrics(SM_CXSCREEN);
      y := getSystemMetrics(SM_CYSCREEN);
      //程序运行时获取目标机器的屏幕分辨率
      if (x <> ScreenHeight) or (y <> ScreenWidth) then
      //目标机器的屏幕分辨率与作者机器的屏幕分辨率不同
        begin
           form1.height:=form1.height*x DIV ScreenHeight;
           form1.width:=form1.width*y DIV ScreenWidth;
           scaleBy(x,ScreenHeight);
           //调用窗体的scaleBy函数,将窗体大小变为初始大小的x/ ScreenHeight倍。
           //这是本程序的关键技巧,同时缩放的包括窗体上各组件和字体。
        end;
    end;end.
      

  4.   

    to exu(大脸猫) 请问具体应该怎样做阿?
    to boytomato(深爱一人叫颖的女孩!) 你这个我在精华区搜索看到很多次了
    这个只能改变窗口的分辨率,里面的控件以及字体大小依然还是没有变