各位仁兄:        1. 你们是怎么避免由于分辨率的变化,FORM窗体、panel上的控件,也变化、甚至缺少控件、
     控件消失?
    //2我現在正在用DELPHI在1024*768的環境下開發系統!可以用的客戶端很多是800*600的電腦,我在CSDN上面搜索了一下,都是看到從別的地方抄過來一段,也沒有提供全整的代碼,再者有的辦法我用過,可是在800*600下使用時,還是面目全非。我只看到說FONT的大小,請問FORM中的一切控件的大小就不用改變嗎?請大伙回答!來個全面的解決這類問題的方法,最好把代碼貼全,那些改分辨率的笨辦法就不用提了!//http://community.csdn.net/Expert/topic/3593/3593031.xml?temp=.5356867
//http://community.csdn.net/Expert/topic/3538/3538429.xml?temp=.5948908
//http://community.csdn.net/Expert/topic/3516/3516126.xml?temp=.9992487

解决方案 »

  1.   

    楼上,你不信,去问版主,我的可用分,是否为000000000000000000000,
    分不是money,BBS是大家互相交流学习的地方,如果你解决问题都需要RMB,
    我想我会给一位如:
                      beyondtkl(大龙驹<暗黑系魔法师&&赏金猎人>) 这样的好老师
      

  2.   

    这个问题 好像我也遇到过  我开始是这么处理的 <由于后来都要求是1024*768所以就不用管了>
    1. 开发界面换到800*600下开发 因为8*6 -> 1024*768的话 比较好处理<我开始就是这么做的,还行>
    用 一个函数进行处理 好像效果还过的去
    2. 你界面上的控件要先排好 包括层与层之间 多用panel来转载不同的空间 而且再设置其相应的align属性,一般来说 右下方的要多注意 可以设为client之类的
    // 函数代码 你先看看 不是我写的。。
    procedure ScaleForm(AForm: TForm; ACompileScreenWidth: Integer);
    var
      i, j, itemp: integer;
    begin
      AForm.scaled := true;
      AForm.scaleby(screen.width, ACompileScreenWidth);
      for i := 0 to AForm.ComponentCount - 1 do
      begin
        if AForm.Components[i] is twincontrol then
        begin
          if (AForm.Components[i] is Tdbgrid) then
          begin
            //(AForm.Components[i] as Tdbgrid).scaleby(screen.width, ACompileScreenWidth);
            for j := 0 to (AForm.Components[i] as Tdbgrid).columns.count - 1 do
            begin
              (AForm.Components[i] as Tdbgrid).columns[j].Width := longint((AForm.Components[i] as
                Tdbgrid).columns[j].width) * longint(screen.width) div ACompileScreenWidth;
              (AForm.Components[i] as Tdbgrid).columns[j].Title.Font.size :=
                Round(9 * (Screen.Width / ACompileScreenWidth));
            end;
          end
          else if (AForm.Components[i] is Tstringgrid) then
          begin //22
            //(AForm.Components[i] as Tstringgrid).scaleby(screen.width, ACompileScreenWidth);
            for j := 0 to (AForm.Components[i] as Tstringgrid).ColCount - 1 do
              (AForm.Components[i] as Tstringgrid).colWidths[j] := longint((AForm.Components[i] as
                Tstringgrid).colWidths[j]) * longint(screen.width) div ACompileScreenWidth + 1;
            (AForm.Components[i] as Tstringgrid).defaultrowheight := longint((AForm.Components[i] as Tstringgrid).defaultrowheight) *
              longint(screen.width) div ACompileScreenWidth;
            itemp := (AForm.Components[i] as Tstringgrid).font.Size;
            (AForm.Components[i] as Tstringgrid).font.Size := Round(9
              * (Screen.Width / ACompileScreenWidth));      end //22
          else if (AForm.Components[i] is TToolBar) then
          begin //begin
            (AForm.Components[i] as TToolBar).Height := Round(35
              * (Screen.Width / ACompileScreenWidth));
          end; //end
        end;
      end;
    end;