在win2000下做的界面,各个控件的位置都安排好了;显示没有问题,但是如果把程序运行在Win98或者WinXP下,则会出现滚动条等问题;请问,这个问题怎么解决啊?

解决方案 »

  1.   

    首先,我们选择一个控件,比如TLable控件,然后,在左边的属性列表中选择Font属性,点击它左边的加号,打开它的子属性,在Font属性中,我们将它的Charset子属性设置为GB2312_CHARSET,将它的Name子属性设置为“宋体”,Size子属性设置为10,保存文件,重新编译。然后,我们再将重新编译好的.exe应用程序文件拷贝到装有WinXP或者Windows2000的机器中,运行程序,我们会惊喜地发现,字体显示正常了。
      由此看来,字体显示问题是源于Font属性设置的,当它的Charset子属性是默认值时,程序会自动读取当前操作系统的默认设置,而Windows98与WinXP(Windows2000)对字体显示的默认值是不同的,所以才会出现字体大小显示不同的情况,这并不能算作BCB5的Bug,而是操作系统的默认值不同。一样是默认值,在WinXP及Windows2000中并没有将所有显示的汉字当作符合GB2312的字符集来处理,显示的字体也没有当作真正的纯中文字体来显示。
      

  2.   

    TO: GARNETT2183(極品狼王) 
    Form.AutoScroll := False;
    这样是不会有滚动条了,可是会显示不了一些东西,比如一个button;原来换个系统他会出现滚动条就是因为超出了界面范围;
    TO: linzhengqun(风。我回来了) 
    用Panel怎么布局?在Panel 上再放button等控件?就不会随系统改变了吗?
      

  3.   

    win98下可能是字体的问题.只要装上程序中所用到的字体就行了.
    Xp下可能是Xp风格的问题,把边角留多些就行了.
      

  4.   

    用panel比较合适.方便,简单.
    新春快乐!
      

  5.   

    Panel也不行吧?
    Panel也会随着字体等的改变而改变大小,
    难道真如 maming2003(<只有想不到的,没有做不到的!同志们帮我想吧.!!!!!!!)说得,这个问题基本上很难
      

  6.   

    我们的做法和kampan所说的类似。只不过是设置form的font属性为宋体9号字,然后form上的控件的parentfont属性都置为true,这样就满足要求。实地使用时,win2000/winxp没有问题,win98应该也没有问题
      

  7.   

    用PANEL布!!!
    不明白用Panel怎么布,系统不一样Panel大小也会变啊!
      

  8.   

    我看大家的意思基本就是只要设号字体,这个问题就可以解决?
    我始终不明白,有几位说用Panel布,到底怎么布?难道Panel就不变大小吗?
      

  9.   

    我每次新建一个窗体第一个要做的就是:)
    1.将字体设为5号宋体gb2312
    2.将Form的Scaled属性设为False
      

  10.   

    果然这里都是新手啊,这个问题五年前就有人问过了,这样解决:在每次new 新form后,第一件事就是把form的font改为:宋体 中文字符集,小五,最重要的是中文字符集 ,如果你已经把程序做好了缺忘记了这项设置,有两个解决办法,一个是让你的项目中的所有form都从你自己写的一个基类去继承,在这个基类中改font,第二个办法就是一个控件一个控件的去改font了。
      

  11.   

    同意楼上, 以前有人问过这个问题的.是字体的问题.在win98, win200, winxp中的默认字体是不同的. 这样就会造成在2000或是XP下开发的程序到98下会显示不完全. 所以你需要在开发时设置好字体而不是系统默认就行了.至于方法, 则可以在From中设置字体, 然后所有控件设置为父控件字体为真:ParentFont := True.就可以了.当然也可以单独设置每个控件的字体属性(font).
      

  12.   

    我遇到过这样的问题,刚开始就是不知道是哪里的问题。
    后来我把FORM的字付集改成GB2312就搞定了。
      

  13.   

    我不知道我的问题是不是描述清除了,或者是回答这没有测试过;我按照大部分人的建议测试了;
    新建一个工程,form窗体设置字体:宋体、GB_2312、小五字体;Scale等等;
    然后放置一个GroupBox在窗体左边,调整大小正好到窗体上下位置;保存;生成可执行文件;在Win200运行正常,但是把程序拿到winxp下,确出现了滚动条!!也就是说,这个调整字体法无法解决我说的问题!继续问,为什么?有什么好招?
      

  14.   

    那个应该是XP的Style造成的,建议稍微把边上空一点点,不要刚好把form占完
      

  15.   

    TO: belllab(菜鸟)
    如您所说,可能是可行的,可是实际有的时候要注意空一点是很麻烦的,尤其是前面已经做了很多界面了,后来发现在XP下不行;那工作量就很大了。。寻找另外的办法!!
      

  16.   

    你在xp系统下编译,把窗体的windowstate属性设成:wsMaximized就可以了。
      

  17.   

    那个可能不太好办,XP下的FORM的边框比2K下的要宽一点,用来显示蓝色条,这就导致了FORM的CLIENT区域的变小,这个似乎不是你的程序能自动控制的,除非XP不用XP的风格,还原为WINDOWS经典。
    你可以试试:将FORM的AUTOSIZE设置为TRUE或将所有的控件放在一个容器内,然后容器的ALIGN=CLIENT
      

  18.   

    procedure TForm1.FormShow(Sender: TObject);
    begin
      Font.Assign(Screen.IconFont);
    end;