Subject:
在Delphi 2007 下用TMemo控件的朋友小心了!
[Print This Page]
Author:
Passion
Time:
2007-11-21 21:00
Subject:
在Delphi 2007 下用TMemo控件的朋友小心了!
Delphi 2007 下的VCL有不少新的改动,其中一项是TMemo的SelStart和SelLength等属性,
在以前的Delphi中,SelStart是根据字节数来定的,比如Memo中是字符串“a啊b吧aa”,欲把光标放在b字后,只需要SelStart := 4;即可。
而在Delphi 2007中,SelStart是根据字符数来确定的,欲把光标放“a啊b吧aa”的b字后,得SelStart := 3;才行。如果写了SelStart := 4;,光标则会出现在吧字后。
这个问题在Memo的查找替换时很明显,尤其是根据Length(string)进行长度判断的时候,字符和字节的混淆会给程序带来很显著的bug,包括CnWizards中的字符串编辑器的查找替换功能,以及编辑器专家收集面板的查找替换功能。
除了修改代码外,目前还未发现好的解决方案。
Author:
zzzl
Time:
2007-11-21 22:15
update3的tmemo没有右键菜单,有什么办法解决?
Author:
guoqingaa
Time:
2007-12-1 14:11
一句话,对照delphi7 的代码
dephi2007 和 delphi7 的对比后,自己改~~
我只看代码~~最求结果
Author:
dwf3110
Time:
2008-2-23 15:06
Subject:
回复 #1 Passion 的帖子
字符串s:WideString,虽然每个字符 字节数双字节了,Length(s)=字节数;
其他字符串s:AnsiString(ShortString), Length(s)=字节数;
也就是说,字符类型发生了改变引起了上面的改变。
[
本帖最后由 dwf3110 于 2008-2-23 15:09 编辑
]
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0