首页 > 编程知识 正文

delphi中copy函数乱码,获取delphi窗口中的文字

时间:2023-05-03 11:48:00 阅读:19006 作者:2817

使用delphi7编译的程序是非unicode程序(代码页),因此英语操作系统会出现乱码问题。

解决方法:

1 .首先在Lageuage中选择“instalfilesforeastasianlanuages”。 这一步一定要做。 否则,中文会乱码。

2 .区域设置中的高级将默认非Unicode程序的语言解释为Chinese(PRC ),Delphi是非Unicode程序,但vb6和. net都是Unicode程序

3 .但是,一些客户不允许修改步骤2。 特别是跨国公司,需要转换应用程序。 (c : (windows (Ap路径) ) )。

其实,苹果计划主要做了以下事情:

set _ _ compat _ layer=#应用程序本地

SET ApplocaleID=0804

编译的程序首先是工程文件. dof中的

locale=2052

代码页=936

然后添加到主接口程序中

初始化

setthreadlocale($0804;

setconsoleoutputcp;

中文乱码有两种。

1 .表示? 而且,Ascii码也错了,对吧? 问号Ascii.SET ApplocaleID=0804就是解决这个问题。 对应的Windows Api为SetThreadLocale($0804; 如果Thread较多,请在TThread.execute上运行SetThreadLocale,而不要在TThread.Create上运行。

2 .显示奇怪的字符,但Ascii是正确的。 set _ _ compat _ layer=# application locale就是解决这个问题。 即使设置了set _ compat _ layer=# application locale,没有中文字体(instalfilesforeastasianlanuages )也是如此。 未找到对应的Win Api。 只能设置form.font.charset=GB 2312 _ charset;

3 .标准Delphi控件和大多数第三方控件不支持Unicode。 例如,Tmemo执行lines.ADD后仍会出现乱码,需要进行特殊处理

------------- -请参阅

我们解决的方法是改变线程的locale。 这可以通过名为SetThreadLocale的API解决。 编写bpl包并将其安装在Delphi IDE中时,IDE将在启动时自动加载该包。 此软件包在加载软件包时会自动执行“initialization”部分中的代码,以实现目标。 当然,请在我们的APP应用程序中也写setthreadlocale (locale _ system _ default ),让我们尽快执行。 1单元RTL传真; 2 3接口4 5用户6 windows; 7实施910初始化11设置(locale _ system _ default ); 12 end.13

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。