我做的程序在别的机器上只显示一半,怎么回事?
我已把form的Align属性设为alClient,全屏的,在别的电脑上虽然是全屏的,但
底下的按钮显示不到了,怎么办?

解决方案 »

  1.   

    有两种可能!!!
    1、客户的计算机使用了大字体模式!!!
       解决:让用户使用小字符集,如果用户觉得字体小可以通过显示属性更改,但不要使用大字体模式,大字体模式下尤其是图形程序变形的非常严重!!!
    2、你的程序适用的字符集不是中文字符集!!!
       解决:Delphi默认的字符集是英文的,你需要手工改成中文的,不光是字体,还包括字符集!!!
      

  2.   

    你也可以程序运行时检测所在的计算机的屏幕分辨率,然后动态的改变form的大小
      

  3.   

    手工设置Form的Font为宋体,9;字符集设置为GB2312然后其他所有可视控件设置ParentFont为True。
      

  4.   

    procedure Tmainform.WMWINDOWPOSCHANGING(var Msg:TWMWINDOWPOSCHANGING);
    var
      sx,sy:integer;
    begin
      sx:=GetSystemMetrics(SM_CXSCREEN);
      sy:=GetSystemMetrics(SM_CYSCREEN);
    用下面的函数试试:procedure Tmainform.WMWINDOWPOSCHANGING(var Msg:TWMWINDOWPOSCHANGING);
    var
      sx,sy:integer;
    begin
      sx:=GetSystemMetrics(SM_CXSCREEN);  
      sy:=GetSystemMetrics(SM_CYSCREEN);
      if (sx>800) or (sy>600) then
      begin
        msg.WindowPos^.x:=(sx-809)div 2;
        msg.WindowPos^.y:=(sy-607)div 2;
        Msg.WindowPos^.cx:=809;
        msg.WindowPos^.cy:=607;
      end;
    inherited;
    end;
      

  5.   

    估计有可能是因为你设置窗体的autosize属性而产生的问题!
      

  6.   

    在你的程序里加一段改分辨率的不就可以了吗?
    Const
        Orignwidth=800;
        Orignheight=600;procedure TForm1.FormCreate(Sender: TObject);
    begin
        scaled:=true;
        if (screen.width<>orignwidth) then
        begin
            height:=longint(height)*longint(screen.height) div orignheight;
            width:=longint(width)*longint(screen.width) div orignwidth;
            scaleby(screen.width , orignwidth);
        end;
    end;
    尝试下把。希望顺利