如何改变新建窗口的默认字体(200分)?(200分)

  • 主题发起人 主题发起人 NeutronDelphi
  • 开始时间 开始时间
N

NeutronDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
如体,要求新建应用程序,或新建任何窗口,其字体默认为宋体,9号,GB2312_CHARSET,
我知道用Expert可以解决,有例子吗?
 
没办法,Borland没有直接提供,不过可以改注册表:
在:
D5: HKEYCURRENTUSER/Software/Borand/Delphi/5.0
D6: HKEYCURRENTUSER/Software/Borand/Delphi/6.0
下增加一个名为“FormDesign”的项,
再在这个项下面新建一个字符串值:
“DefaultFont” 设为 "宋体",9 
注意:宋体上要有引号。

可以解决其字体默认为宋体,9号,
GB2312_CHARSET没有解决!~


 
新建一个FORM,设置成你要的样子。。然后将其选project 下的Add to Repository后。。

以后就调用这个就可以了。。不要每次都设置了。
 
最很的方法还是该borland的源程序,

在SOURCE/VCL下找graphics.pas
再查找'sans'找到一个记录
DefFontData,这个record是 TFont default value,
也是所有component所用的font,包括Form

改好文件后,重新编译delphi的Lib,OK!


 
新建窗口字体的办法:

那就是继承,
定义一个Form为初始Form;
在这个父Form的初始化方法里面对字体属性赋值,
这样新建成的Form虽然不具有您想要的字体属性,
但可以简单地将它的父类从缺省的TForm改成父Form,
一切就OK.

新建工程的办法:

自己先建一个如上的工程,
然后保存为模版啊.
 
建一个窗体frm_root:将你要的属性设置好,不要写其他功能
以后你要新建窗体都从这个继承下来
 
以下的方法是改Graphics.Pas
找到 InitDefFontData 做这样的改动:

procedure InitDefFontData;
var
Charset: TFontCharset;
begin
DefFontData.Height := -MulDiv(8, ScreenLogPixels, 72);
if not SysLocale.FarEast then Exit;
Charset := GetDefFontCharset;
case Charset of
SHIFTJIS_CHARSET:
begin
DefFontData.Name := '俵俽 俹僑僔僢僋';
DefFontData.Height := -MulDiv(9, ScreenLogPixels, 72);
DefFontData.CharSet := CharSet;
end;
//
GB2312_CHARSET:
begin
DefFontData.Name := '宋体';
DefFontData.Height := -MulDiv(9, ScreenLogPixels, 72);
DefFontData.CharSet := CharSet;
end;
//
end;
end;
显然,这段源代码是为SHIFTJIS_CHARSET语言环境编写的,没有专为中国汉字编写,
不知是不是Delphi的BUG?
经过这样的改动,以后程序中调用的ShowMessage、InputQuery、InputBox等等
函数显示的汉字和操作系统界面一致(即汉字),而动态创建的Form(TForm.Create方法)也有同样的性质,如果要使建立新Form时也能出现这样的效果,需要重新编译VCL40.DCP(但需换名编译,因Delphi本身正在使用这个文件)。
 
做个模板吧……
先设置Form1的字体为你想设置的字体!
然后在新增窗体时请用:
file--new--Project1--Form1来使用模板!
 
tO aolo,
怎么重新编译 VCL40.DCP??
 
新建一个窗体,以后再要用窗体时就继承。
 
你这个问题,还有WIN98 和WIN2K之分,后来我没招,
只好弄一个自己的Form,并在该Form中的OnCreate中加入
一些代码,如识别操作系统,根据不同的系统来设置不同的字体
和大小,然后其它的Form都从该Form继承。
 
还是用窗体继承适用.
 
后退
顶部