应用程序在windows2000 1024*768+16位色模式下编译通过,样子还不错,可是拿到800*600模式的
机器上使用时,窗口变大,屏幕无法显示容纳整个窗口,这个是为什么?
有什么方法可以解决吗?怎么办,怎么办…………………

解决方案 »

  1.   

    呵呵,分辨率的问题啦!主要是窗口组件随分辨率的调整会改变大小,好象可以设置Form的Scale或者下一个组件可以随分辨率的改变而自动调控大小的控件,我好象发现过,不过没注意罢了!我的贴如果有价值请适当给分就行了!
      

  2.   

    借个地方用下:为什么我的程序(delphi+ado+mssqlserver)在win2000,XP下可以运行,而在WIN98下却不可以运行,或运行了一会就出现如“os ....","can't create a visual form"之类的出错信息。请帮下。
      

  3.   

    假设你在800*600的分辨率下设计的form,第一步:
    inplementation
    const
      ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
      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;下一步,要让每个子控制的字体改变到合适的大小:
    type
      TFooClass = class(TControl); { needed to get at protected }
                                   { font property }var
      i: integer;
    begin
      for i := ControlCount - 1 downto 0 do
        TFooClass(Controls[i]).Font.Size :=
            (NewFormWidth div OldFormWidth) *
            TFooClass(Controls[i]).Font.Size;
    end;
      

  4.   

    scaleBy(screen.width, 800);
    设置好分辨率!!!!!
      

  5.   

    try了一下,效果不理想…
    看来我只能动态改变系统的分辨率了