在Label1.Caption等中“输入阿拉伯语为什么是显示??? ” 已安装了阿拉伯语输入法,在控制面板--区域和语言选项中也选中了相关的选项,并且将Label1.Font.Charset :=ARABIC_CHARSET;,但为什么在Label1.Caption等中“输入阿拉伯语还是显示为??? ”,请高手指教,在Delphi7中怎么使得界面设计时在Label1.Caption或其他控件中能输入阿拉伯语,并显示为阿拉伯语? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 delphi7的单元文件不支持unicode字符2 控件不支持unicode,需要找支持unicode的tnt控件 不是字库的问题,系统能显示你程序就能显示delphi 的Label1.Caption是ansistring,程序开发过程中在project-options-version info 中的language ,如果ID设置成804,也就是中文,这样delphi内部处理时,因为dfm里保存使用widechar,显示前会把widechar转成ansi,这里会会使用804对应的935codepage来转换,而你要正常使用,得在程序的intialization段里加上,intialization windows.SetThreadLocale(windows.GetSystemDefaultLCID); 但是这种方法并不通用,最好的方式是使用tnt控件,但tnt控件不是很好,因为不全,很多时候需要添加ansi控件,那样处理起来存在一些BUG,不能在运行时改变语言。比较通用的方法当然是所有API和控件都是用unicode的也就是函数名后面带一个W的API。不过也有另一种方法,首先程序所有字符串先保存为unicode到一个txt文件或ini文件里,在程序中先根据语言调用SetThreadLocale,之后将读取的unicode字符串,直接使用WideCharToMultiByte转成系统LCID所对应的codepage来显示。就不会有问题了。但这种方法无法在界面上同时显示多种语言,可以保证不出现问号或者乱码。。据说D2010都支持unicode,可以去试试。 intialization段这个是在哪里?找不到,请指教 intialization段这个是在哪里?找不到,请指教最后一行,自己写。 delphi7在阿拉伯操作系统能用吗? 在你所有代码下边即end.之前自己写上就可以了看下PAS单元文件的格式 在WORD中可以显示阿拉伯语了,包括以阿拉伯文命名的文件夹,都能显示阿拉伯语,这表示系统能显示阿拉伯语了吗?操作系统是中文版的,按照以下进行了设置:程序开发过程中在project-options-version info 中的language ,如果ID设置成804,也就是中文,这样delphi内部处理时,因为dfm里保存使用widechar,显示前会把widechar转成ansi,这里会会使用804对应的935codepage来转换,而你要正常使用,得在程序的intialization段里加上,intialization windows.SetThreadLocale(windows.GetSystemDefaultLCID);可是还是显示为?,是不是我不能从WORD中复制阿拉伯文到DELPHI,可是我转为阿拉伯语输入法,也不能输入 汗、、、没看清楚问题。。以为你是想让你的程序在阿拉伯语言下显示阿拉伯语言、你如果想要在设计时可以输入显示阿拉伯语言、2个方法、1、安装阿拉伯语言包,再设置系统语言为阿拉伯语言,重启后就可以了。2、采用unicode控件,比较著名的就是tnt控件delphi开发工具本身在dfm中存的是unicode,而显示的编辑器、标准控件的form、label都是ansi,中文下显示时都是采用简体中文的codepage转换后再显示的,而阿拉伯文字的unicode编码无法在936codepage中找到对应的字符,所以肯定会乱码的,这些并不是delphi程序本身控制的,是由系统自动转换的。而如果你使用tntform,因为是unicode控件,系统显示时采用的codepage是unicode去转换显示,就都能正常显示。 接下来可以只好试试D2010啦,但我用D7开始的程序,在D2010中能正常打开吗? 阿拉伯语言包,你有吗?请传一份给我,邮箱:[email protected] delphi 7 安装 TNT 控件delphi 2010 string 默认是 unicode 了 可以显示 需要改变工程文件的dof文件,这个文件里面会存放一些语言设置和相关路径,理论上如果你的工程路径中存在中文的话、delphi调用系统的API是无法识别到真正路径的,需要把刚才相关路径修改一下。还有里面的Locale=2052CodePage=936可能需要手动改成阿拉伯语言下的配置,具体值你可以新建另一个刚才再参照一下就可以了 批量删除文件的问题. 为什么其它类型的文件(doc,ini)可以成功下载, exe文件就是不能,要死机。 如何让连接操作不超时!关于ADOConnection 如何停止shockwaveflash的播放?另外。。。 急急急!如何用用SQL-DMO开发实现数据的备份和还原,特别是还原! 给分题:怎样控制TListBox右边的垂直滚动条???? 简单问题有高分,怎样实现自定义记录从文件写入/读取 给一点思路 随时可以离开公司了,散分。 我要编一个,加减乘除的程序请问怎么编 函数返回值 不管什么调用约定都是在EAX? delphi7运行别人的源码出错后就跟挂了一样怎么恢复
2 控件不支持unicode,需要找支持unicode的tnt控件
程序开发过程中在project-options-version info 中的language ,如果ID设置成804,也就是中文,这样delphi内部处理时,因为dfm里保存使用widechar,显示前会把widechar转成ansi,这里会会使用804对应的935codepage来转换,而你要正常使用,得在程序的intialization段里加上,intialization
windows.SetThreadLocale(windows.GetSystemDefaultLCID);
最好的方式是使用tnt控件,但tnt控件不是很好,因为不全,很多时候需要添加ansi控件,
那样处理起来存在一些BUG,不能在运行时改变语言。比较通用的方法当然是所有API和控件都是用unicode的也就是函数名后面带一个W的API。不过也有另一种方法,
首先程序所有字符串先保存为unicode到一个txt文件或ini文件里,
在程序中先根据语言调用SetThreadLocale,
之后将读取的unicode字符串,直接使用WideCharToMultiByte转成系统LCID所对应的codepage来显示。
就不会有问题了。但这种方法无法在界面上同时显示多种语言,可以保证不出现问号或者乱码。。
据说D2010都支持unicode,可以去试试。
最后一行,自己写。
在你所有代码下边即end.之前自己写上就可以了看下PAS单元文件的格式
程序开发过程中在project-options-version info 中的language ,如果ID设置成804,也就是中文,这样delphi内部处理时,因为dfm里保存使用widechar,显示前会把widechar转成ansi,这里会会使用804对应的935codepage来转换,而你要正常使用,得在程序的intialization段里加上,intialization
windows.SetThreadLocale(windows.GetSystemDefaultLCID);
可是还是显示为?,是不是我不能从WORD中复制阿拉伯文到DELPHI,可是我转为阿拉伯语输入法,也不能输入
以为你是想让你的程序在阿拉伯语言下显示阿拉伯语言、你如果想要在设计时可以输入显示阿拉伯语言、2个方法、
1、安装阿拉伯语言包,再设置系统语言为阿拉伯语言,重启后就可以了。
2、采用unicode控件,比较著名的就是tnt控件delphi开发工具本身在dfm中存的是unicode,而显示的编辑器、标准控件的form、label都是ansi,中文下显示时都是采用简体中文的codepage转换后再显示的,而阿拉伯文字的unicode编码无法在936codepage中找到对应的字符,所以肯定会乱码的,
这些并不是delphi程序本身控制的,是由系统自动转换的。
而如果你使用tntform,因为是unicode控件,系统显示时采用的codepage是unicode去转换显示,就都能正常显示。
delphi 2010 string 默认是 unicode 了 可以显示
还有
里面的
Locale=2052
CodePage=936
可能需要手动改成阿拉伯语言下的配置,具体值你可以新建另一个刚才再参照一下就可以了