为什么用delphi6在Win2000下编的程序,在win98下运行界面变得面目全非(字体和按钮变大,数据库Grid变型)???在线等待,高分800(300分)

  • 主题发起人 主题发起人 topboy
  • 开始时间 开始时间
T

topboy

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么用delphi6在Win2000下编的程序,在win98下运行界面变得面目全非(字体和按钮变大,数据库Grid变型)???在线等待,高分800
谢谢!
 
试试看把 form的font设成gb2312,还有一个属性好像是scaled设成false
在d5中是这么解决的。
 
Font --CHINESE_GB2312 宋体 9号
 
将下面的内容导入注册表。下次delphi的新建表单的字体就不用去重设了。
一劳永逸
REGEDIT4

[HKEY_CURRENT_USER/Software/Borland/Delphi/6.0/FormDesign]
"DefaultFont"="宋体,10"
 
把控件的Font的属性改为: chinese_GB2312
你想改成怎样,就是怎样了,不会变了。
 
我在D6中的解决办法是,把字体设置成Arial 用10号,PB中的默认字体就是这个,效果不错。
不妨试试看!
 
Font.charset := GB2312_CHARSET;
Font.Name := '宋体';
Font.Size := 9;
基本上就正常了
 
把窗体的
字体设置味CHINESE_GB2312
宋体 小5号
即可
 
把每个 form 的 font.Charset := 'GB2312_CHARSET'
或设置 font 的属性,注意字符集的选择 用 GB2312_CHARSET 或 CHINESEBIG5_CHARSET
 
这可能是两个系统的分辨率有所不同,你可以试一下下载一些可以根据分辨率不同自动修改的控件
 
由于不同版本Windows的PixelsPerInch值可能不同,Delphi会自动调整控件及字体的大小
如果不要这个效果,可把Form的Scaled属性设为False,则在TCustomForm.ReadState时会执行:
if not Scaled then
begin
{ Forces all ScalingFlags to [] }
ScaleScrollBars(1, 1);
ScaleControls(1, 1);
end;
此时将所有TControl及其子类的ScalingFlags设为空,即不再调整字体或控件大小。
 
主要是窗体字体应该调整为中文,其实不管是Delphi5 还是 Delphi6在2000下都存在这样的问题。
 
Font.charset := GB2312_CHARSET;
(不要用'西方'啊)!
 
窗体的字体不要动,取默认值,不要让其他控件继承该窗体的字体属性。
 
窗体Font --CHINESE_GB2312 宋体 小五

其它的Parentfont := True就行。。

 
把每个 form 的 Font 中的字符集属性 选择 用 GB2312_CHARSET ,字体用中文的。
窗体中的 控件都设成 ParentFont 设成True.
肯定一切 OK !!
我以前也遇到过的。

 
1)一定要把每个 form 的 Scaled属性设为False, font.Charset := 'GB2312_CHARSET'
2)其它控件 Parentfont := True就行。
3)font 的属性,注意字符集的选择 用 GB2312_CHARSET 或 CHINESEBIG5_CHARSET
4)再就是我觉得你的机器的分辨率一定可能有问题, 都设 800*600 试试
java builder 早在座跨平台的时候就很认真的考虑了这一点
good luck!


 
解决方法:
1。把每个 form 的 Scaled属性设为False
2。font 的属性,字符集的选择 GB2312_CHARSET
 
这个问题我遇到过,注意以下几点,一切OK.
1.设置Form的Font属性为宋体,9号,字符集一定要设成 CHINESE_GB2312;
2.设置Form的Scaled属性为False;(一定要)
3.Form上的其他控件的ParentFont设置为:True
 
这个最根本的原因是因为2000和98用的默认字体不一样造成的。
这个是个最基础的编程规范,字体的大小和字符集的选择。
你改过来就好了。
 
后退
顶部