微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有更简单的方法将Delphi 7转换为Delphi 2009?

有没有更简单的方法将Delphi 7转换为Delphi 2009?
或者有没有办法在Delphi 2009项目中使用Delphi 7单元?

我在Delphi 7中有一个单元,但是当我尝试在我的Delphi 2009项目中使用它时,行为都搞砸了.

它有很多不同之处,如:

Hangul = 'ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ' +
           'ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅛㅜㅠㅡㅣ';
 ShowMessage(copy(Hangul,1 + (I) * 2,2));

在Delphi 7中一次显示一个字符,但在Delphi 2009中一次显示两个字符.
所以我需要将其更改为:

ShowMessage(copy(Hangul,1 + I,1));

但那是最简单的,它会让人更加困惑……算法不是我的,所以我无法弄清楚整个程序.

任何帮助,将不胜感激.

编辑:
如果有人有兴趣看到这里的代码LINK.这是单位HanInput;部分.它翻译键(英文)并输出文字符.不,我不懂韩语.

解决方法

我来看看你的.pas文件的编码.例如,你可以使用 Notepad++来做到这一点.如果它不是UTF-8,请使用记事本将其更改为UTF-8.这应该保留字符并使它们对D2009可读.哦,并确保包括UTF-8 sis的BOM(字节顺序标记).

不确定文件是否仍然可以在D7中使用…(不知道何时向IDE添加了UTF-8支持).

示例中的Hangul字符串和链接中的HanInput单元每个字符有两个字节.这告诉我他们打算用UTF-16编码.

这是由MultiBytetoWideChar调用确认的,即使它们用于参数而不是常量.如果你实际上将UTF-16编码到函数中,你可以摆脱那个调用,但你仍然需要找到一种方法来处理常量.

处理常量 – 我在HanInput单元中看不到太多 – 可能就像将字符串复制到新的Ansi编码记事本文件,将其编码更改为UTF-8然后将字符串复制回单元一样简单.您可能希望确保首先将所有字符串复制到新的记事本文件,然后转换它们然后将其复制回来,因为IDE编辑器可能会询问您是否要将单位格式更改为UTF-8并且可能会损坏常数.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐