在自己机器上运行大小正常,但是在别的机器上会出现显示不完整的情况,不知怎么可以解决,请指点~

解决方案 »

  1.   

    可能是其他人的机是win98系统的,本机是win2000系统的,将form的font参数改为:宋体,小四或五号,字符集为:chinese-gb2312,再试试,绝对可以搞定.
      

  2.   

    我的系统是win2000,程序在800*600和1024*768这两种分辨率下,也出现了界面不完整的情况~~~~请问是不是要加代码,控制控件的位置???
      

  3.   

    这是后一种方法,原理就是改变显示器让它变成你自己设置的值.我比较同意这种方法,呵呵.比较黑,让容易让比较次的显示器烧了:)
    var
      oldwidth,oldheight,oldfreq:integer;
    procedure Tmain.FormCreate(Sender: TObject);
    begin
      setscreen(1024,768,85);
    end;
    procedure Tmain.FormDestroy(Sender: TObject);
    begin
    setscreen(oldwidth,oldheight,oldfreq);
    end;
    procedure Tmain.setscreen(newwidth, newheight, newfrquency:integer);
    var
      devmode:Tdevicemode;
    begin
      OldWidth:=GetSystemMetrics(SM_CXSCREEN);
      OldHeight:=GetSystemMetrics(SM_CYSCREEN);
      if (oldwidth<>newwidth) and (oldheight<>newheight) then
      begin
      DevMode.dmSize:=sizeof(TDeviceMode);
      EnumDisplaySettings(nil, DWORD(-1), DevMode);
      DevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
      DevMode.dmPelsWidth:=NewWidth;
      DevMode.dmPelsHeight:=NewHeight;
      OldFreq:= DevMode.dmDisplayFrequency;
      DevMode.dmDisplayFrequency:=newfrquency;
      ChangeDisplaySettings(DevMode,0);
      end;
    end;