Dia*_*ian 4 delphi delphi-7 delphi-2009
有没有更简单的方法将Delphi 7转换为Delphi 2009?或者有没有办法在Delphi 2009项目中使用Delphi 7单元?
我在Delphi 7中有一个单元,但是当我尝试在我的Delphi 2009项目中使用它时,行为都搞砸了.
它有很多不同之处,如:
Hangul = '???????????????????' +
'??????????????';
ShowMessage(Copy(Hangul, 1 + (I) * 2, 2));
Run Code Online (Sandbox Code Playgroud)
在Delphi 7中一次显示一个字符,但在Delphi 2009中一次显示两个字符.所以我需要将其更改为:
ShowMessage(Copy(Hangul, 1 + I, 1));
Run Code Online (Sandbox Code Playgroud)
但那是最简单的,它会让人更加困惑......算法不是我的,所以我无法弄清楚整个程序.
任何帮助,将不胜感激.
编辑:如果有人有兴趣看到这里的代码是LINK.这是unit HanInput;
一部分.它翻译键(英文)并输出韩文字符.不,我不懂韩语.
我来看看你的.pas文件的编码.例如,你可以使用Notepad ++来做到这一点.如果它不是UTF-8,请使用notepad ++将其更改为UTF-8.这应该保留字符并使它们对D2009可读.哦,并确保包括UTF-8 sis的BOM(字节顺序标记).
不确定文件是否仍然可以在D7中使用...(不知道何时向IDE添加了UTF-8支持).
示例中的Hangul字符串和链接中的HanInput单元每个字符有两个字节.这告诉我他们打算用UTF-16编码.
这是由MultiByteToWideChar调用确认的,即使它们用于参数而不是常量.如果你实际上将UTF-16编码到函数中,你可以摆脱那个调用,但你仍然需要找到一种方法来处理常量.
处理常量 - 我在HanInput单元中看不到太多 - 可能就像将字符串复制到新的Ansi编码的Notepad ++文件,将其编码更改为UTF-8然后将字符串复制回单元一样简单.您可能希望确保首先将所有字符串复制到新的记事本++文件,然后转换它们然后将它们复制回来,因为IDE编辑器可能会询问您是否要将单位格式更改为UTF-8并且可能会损坏常数.