有没有更简单的方法将Delphi 7转换为Delphi 2009?
或者有没有办法在Delphi 2009项目中使用Delphi 7单元?
或者有没有办法在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并且可能会损坏常数.