谁能帮忙让我的程序实现在不同屏幕分辨率电脑上运行时窗口始终适应屏幕大小?在网上看到不很多相关的解决方案可我还是搞不明白,详细该如何实现。希望能得到热心人士的帮忙。最好能加我QQ:172515968帮忙。谁能帮忙?我这点分全拿去了。哈哈,我发贴时只允许给这么多,不过解决了我会追加的。

解决方案 »

  1.   

    按800*600做一个Form,
    在OnCreate的时候判断
    Screen.Width & Height用Form.ScanBy(); ok
      

  2.   

    align属性可以让控件始终靠一个方向或全方向充满它的容器
    Anchors属性可以让控件始终靠几个个方向与它的容器同进退(保持固定距离地充满)
      

  3.   

    适应屏幕大小分为以下几部分:
    1.自动调整窗体大小
      在窗体创建或显示时判断屏幕的大小,之后程序再根据些信息计算窗体应该占用多大,位置是在哪里
      如:窗体打开后默认为占用屏幕的高宽各一半,并且居中
      在窗体的OnCreate中写如下代码:
      Form1.Left:=Screen.width/4;
      Form1.top:=Screen.height/4;
      Form1.width:=Screen.width/2;
      Form1.height:=Screen.Height/2;
    2.自动调整控件布局(位置,大小等)
      使用控件的Align属性可自动调整控件布局。
      比如一个Memo,需要固定在窗体下方,左右占满窗体,则只需要设置它的Align属性为alBottom即可。
      这里还有一些技巧:比如TButton控件没有Align属性,可以这样做:如希望按钮始终在窗体的右下方:
      在窗体上添加一个Panel1,去掉Panel的Caption属性,设置Panel的Align=alBottom
      在Panel1上再添加一个Panel2,设置Panel2的Align=alRight,在Panel2上添加Button,这样经过两个Panel包容,Button就可以始终保持在窗体的右下方了。
      由于Panel在界面上突起了一个厚度,那么设置Panel的BevelOuter属性为bvNone即可。
      
    3.自动调整控件大小
      有些控件在设置其align=alCllien的条件下能够根据其父控件自动调整大小,但不能自动调整大小的控件更多,比如Edit,比如ProgressBar,这些控件为了能够适应变化的窗体大小,只能在窗体的OnResize事件中通过写代码的方式来自动调整大小了。
      

  4.   

    如果你要求的比较复杂,可以使用组件,组件考虑的比较全面,效果还是不错的。
    请加入QQ高级群:9642802,在群的共享里有个组件"EasySize",组件的作用是控制窗口在不同分辨率下窗口都能成比例的缩放,窗口中的控件也会随窗口的大小变化,自动成比例缩放; 使用方法很简单,拖个控件放到界面上,2句代码搞定。 
    1、FormCreate事件中: 
      FormResizer1.InitializeForm; 
    2、FormResize事件中: 
      FormResizer1.ResizeAll; 加入群后,找管理员大海!
      

  5.   

    procedure TForm1.FormCreate(Sender: TObject); 
    begin 
      form1.Width :=screen.Width *倍率 ; 
      form1.Height :=screen.Height*倍率 ; 
    end; 
      

  6.   


     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;   
      

  7.   


    都给了那么多方案了,还....要不你就直用 easysize 这个组件吧