win2000中文版+delphi7开发的程序,拿到win2000(英文)下乱码,通过修改英文win2000控制面板的区域选项,设置为中文可以,但由于有其他原因,不能修改这个设置,请问有什么办法可以解决这个问题?急!!!

解决方案 »

  1.   

    用CLX APPLICATION写程序,CLX控件使用unicode字符集
    用WideString、 PWideChar传递字符窜变量
      

  2.   

    不是在传递变量或者数据的时候,而是在界面设计中的问题,用CLX控件我没有试过,但现在转成CLX,工程量也实在是浩大!界面用英文,更加不现实。再没人能帮我解决,我就结贴,散分!
      

  3.   

    把uses下的Controls, Forms, Dialogs,StdCtrls等
    换成QControls, QForms, QDialogs,QStdCtrls等CLX单元
    试试看吧
    成不成回个话啊~~~~~~~~~
      

  4.   

    CLX Application好像测试是可以解决这个问题的,但是仅仅把uses下的一些单元修改一下不能通过编译!因为他要的窗体文件是xfm,而不是dfm!有什么办法解决吗?另外如何分配得分?我怎么分配了还是看不到?
      

  5.   

    先按上面修改引用单元,再把后缀DFM改名为XFM
    新建1个CLX APPLICAION把UNIT 1 去掉
    添加修改后的全部UNIT
    分看不到很正常,经常这样滴~
      

  6.   

    这样是可以的,不过我觉得我这个程序还是不能这样迁移过去,因为我用到的其他很多控件在CLX中都没有,不管怎样,非常感谢!
      

  7.   

    Delphi6好像没有这个问题,另外你是如果在win2000(英文)下开发就应该没问题,如果真是这样你可以看看窗体文件中中文代码变化情况,要么重新输入一下程序中出现的中文,要么制作代码表转换一下。这是Delphi对多国语言支持的一个漏洞。
      

  8.   

    因为我也有这个问题,所以在这里多说几句。这个问题可能和Office XP有关。最好在开发的时候就避免在Office XP高级文字服务。请看下面:怎样关闭OfficeXP的高级文字服务? 3-30-2003从MSConfig里移除Ctfmon.exe并不能禁用文字服务。因为当你启动Office程序时,
    文字服务也会自动启动。要想禁止文字服务,请按照以下步骤执行:第一步:删除中文可选用户输入方法
    针对Windows2000系统,删除这个功能:
    1.退出所以Office程序。
    2.单击开始,点击设置,然后单击控制面板。
    3.在控制面板里,双击添加/删除程序。
    4.在当前安装程序列表里,选择MicrosoftOfficeXP产品。点击更改。
    5.在维护模式对话框里,选择添加或删除组件,然后点击下一步。这时显示选择
    安装选项的对话框。
    6.点击Office共享功能前的加号展开。
    7.点击中文可选用户输入方法的图标,选择不安装。
    8.点击更新。第二步:从文字服务里删除可选用户输入方式:1.单击开始,点击设置,然后单击控制面板。
    2.在控制面板里,双击文字服务。
    3.在已安装服务列表里,除英语(美国)以外,一个个的删除其余输入法。第三步:运行Regsvr32/U注销Msimtf.dll和Msctf.dll文件。1.点击开始->运行。
    2.在运行对话框里,敲入以下命令:
    “Regsvr32.exe/Umsimtf.dll”(不包括双引号)
    3.点击确定。
    4.对于Msctf.dll文件重复1到3步。