偶的 Delphi Project,拿到某些机器上打开的时候,控件和字体就会混乱起来,尤其是拿去不同版本 windows 上,这种情况特别明显。无论是在IDE中还是程序运行的时候,都会偶尔出现这种情况。不知道大家有没有遇到过这种情况?

解决方案 »

  1.   

    设置Form的如下属性:
    Scaled为False
    Font设为宋体(一般设9号字),字符集为GB_2312。
      

  2.   

    我们在使用Delphi编程过程中,经常会遇到一些控件比如TLable及TComboBox等显示字体大小在Windows98及WinXP或者Windows2000下字体大小不统一的问题,我们在Windows98操作系统下编写的程序,编译成功后,将.exe文件拷贝到别的操作系统下,比如windows2000、WinXP等,当我们运行程序时,会发现,一些控件比如TLable及TComboBox等中显示的字体变大了,直接严重地影响了应用程序的界面整体效果,那么,我们怎么去解决这个问题,而让这个应用程序各部分字体显示的大小都统一了呢?
      首先,我们选择一个控件,比如TLable控件,然后,在左边的属性列表中选择Font属性,点击它左边的加号,打开它的子属性,在Font属性中,我们将它的Charset子属性设置为GB2312_CHARSET,将它的Name子属性设置为“宋体”,Size子属性设置为10,保存文件,重新编译。然后,我们再将重新编译好的.exe应用程序文件拷贝到装有WinXP或者Windows2000的机器中,运行程序,我们会惊喜地发现,字体显示正常了。
      由此看来,字体显示问题是源于Font属性设置的,当它的Charset子属性是默认值时,程序会自动读取当前操作系统的默认设置,而Windows98与WinXP(Windows2000)对字体显示的默认值是不同的,所以才会出现字体大小显示不同的情况,这并不能算作BCB5的Bug,而是操作系统的默认值不同。一样是默认值,在WinXP及Windows2000中并没有将所有显示的汉字当作符合GB2312的字符集来处理,显示的字体也没有当作真正的纯中文字体来显示。