str:='输入内容';
  InputQuery('显示为中文-标题栏','简体中文',str);为何执行后弹出的对话框标题栏正常('显示为中文-标题栏'能正确显示),'简体中文'处应为Lable的Caption,显示为乱码,str处为可输入的内容,如果是中文也显示为乱码.但是同一程序在前一段时间还一切正常,该程序已使用了一年多了,大概在2007年12月中旬左右的时候出现该现象的.

解决方案 »

  1.   

    是不是Windows的显示效果设置中,对话框文本的字体被设置为英文字体了?
      

  2.   

    没有,我看过了都是宋体
    我在DELPHI里打开源码看字体都被改成Microsoft Sans Serif了,不知道这是为什么?
    我在InputQuery里将Lable和Edit的字体都改成宋体,可是重新编译后还是不行
      

  3.   

    把Dialogs添加到你的工程中,然后修改Dialogs中InputQuery函数的代码,然后编译,最后把产生的Dialogs.dcu拷贝出来,把delphi默认的dialogs.dcu覆盖即可。
    ...
      Result := False;
      Form := TForm.Create(Application);
      with Form do
        try
          Canvas.Font := Font;
          Font.Name := '宋体';   //修改过的代码
          Font.Size := 9;
          Font.Charset := [GB2312_CHARSET];
          DialogUnits := GetAveCharSize(Canvas);
    ....
      

  4.   

    Font.Charset := 134;我在Graphics.pas里看到默认的字体也是MS   Sans   Serif,我都不知道这是怎么被更改的,现在不只是这个程序里的中文不能显示,在DELPHI的Object Inspector中所有控件的Caption中文显示也是乱码(编译后显示的中文是正确的)在VB的外接程序管理器中看到的很多中文也是乱码,我将其复制下来却是正常的(如下):
    模板管理器添加三个附加模板类型到Visual Basic 开发环境。菜单, 代码,和控件模板菜单项被添加到工具菜单。难道需要重装系统?