我做的Delphi  程序 是在 1280*800   分辨率下的,但把程序放到   1024*800   或者800*600   下 界面变得就不好看,
请问如何解决??谢谢!

解决方案 »

  1.   

    有两种办法:
    1、给程序设定一个分辨率,如1280*800,使程序始终运行在这个分辨率下
       具体做法是:程序运行时,先查看当前系统分辨率,若与设定的不一样,就更改系统分辨率。程序关闭后,将系统分辨率还原为原来的值。缺点:程序会有1秒钟的黑屏,影响视觉
    2、针对不同的分辨率,用scaleby对窗体进行缩放
      

  2.   

    在程序运行时调整分辨率,结束退出后恢复原来的分辨率,这样试试。
       
      procedure   TmainFRM.FormCreate(Sender:   TObject);   
              if(Screen.width<>1024)then               //在这里进行分辨率的调整,调成1024*768的   
                  begin   
                      change:=true;   
                      flag:=EnumDisplaySettings(nil,0,DevMode);   //取得旧的显示参数   
                      if   flag   then   
                          begin   
                            screenWidth:=getdevicecaps(GetDc(0),HORZRES);   
                            screenHeigth:=getdevicecaps(GetDc(0),VERTRES);   
                            screenFrequency:=getdevicecaps(getdc(0),VREFRESH);   
                            DevMode.dmFields:=DM_PELSWIDTH   Or   DM_PELSHEIGHT   or   DM_DISPLAYFREQUENCY;   
                            DevMode.dmPelsWidth:=1024;   
                            DevMode.dmPelsHeight:=768;   
                            DevMode.dmDisplayFrequency:=screenFrequency;   
                            ChangeDisplaySettings(DevMode,0);   //设置新的显示参数   
                          end;   
                  end   
              else   
                    change:=false;   
        
        
        
      procedure   TmainFRM.FormDestroy(Sender:   TObject);           //在这里恢复原来的分辨率   
      var   
          flag:boolean;   
          DevMode:Tdevmode;   
      begin   
              if   change   then   
                    begin   
                        flag:=EnumDisplaySettings(nil,0,DevMode);   //取得旧的显示参数   
                        if   flag   then   
                          begin   
                            DevMode.dmFields:=DM_PELSWIDTH   Or   DM_PELSHEIGHT   or   DM_DISPLAYFREQUENCY;   
                            DevMode.dmPelsWidth:=screenWidth;   
                            DevMode.dmPelsHeight:=screenHeigth;   
                            DevMode.dmDisplayFrequency:=screenFrequency;   
                            ChangeDisplaySettings(DevMode,0);   //设置新的显示参数   
                          end;   
                    end;   
      end;
      

  3.   

    合理设置各个子窗口的Anchors, 尽量不要随意修改用户的屏幕分辨率, 那样不友好.
      

  4.   

    设计一个公式,然后再OnReSize里调整控件位置
      

  5.   

    用api获取屏幕分辨率,根据分辨率来调整窗体大小
      

  6.   

    XML把界面都用XML控制起来,为不同分辨率定制XML即可,虽然设计时稍微麻烦点,但是后期维护相当简单。
      

  7.   

    Dephi是不是做基本的图像变换要简单一些?
      

  8.   

    有个现成的组件easysize,楼主可以试试