谁能告诉我(C++builder)的问题

chenfeng3000 2001-08-14 03:35:15
小弟:我正在做一个指法练习的小程序,准备开学时给新同学使用,不过
我现在存在这样一个毛病,我的思路是视图+文档 用户操作文档,程序中的
窗口Image视图也相应变化,反映当前打字的状态(当然,打字出错时,相应的Image部分上的文字会显示出警告色)

我的文档部分是放在由两个RichText控件里的,我希望通过RichText1(练习者输入编辑框)当前的编辑字符的位置,对照RichText2(该控件的内容用于练习的模板)相应的字符位置进行比较,根据字符串匹配的原则在反映到程序界面上(Image)(RichText1,RichText2都是不可见的)判断当前指法的正误。
可是,下面的问题也出现了:我在半角状态下输入英文、数字 都没问题,字符指针指向很正确。
但是 我在全角状态下,汉字录入时,程序无法获得正确的当前编辑字符串的长度、位置。因为(我刚刚
启动中文输入法,还没输入汉字哪,RichText1自动在编辑框中出现一个2个字符的高亮度编辑条,就是
这个2个字符的高亮度编辑条彻底打乱了我的字符的指针位置。


如果,设计把半角/全角的指法练习分开做,这很容易的,我不想那样做。所以请赐教,教我啊!

还有,对了 我怎样在一个字符串中知道当前子串中是否有汉字,汉字的位置,字节的长短哪!

由于我是菜鸟,您可以用(VB/C++Builder/Delphi)讲给我听。我会作下去的,!
我真诚地感谢你的指教!!
...全文
77 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitelion 2001-08-15
  • 打赏
  • 举报
回复
cc
gloom 2001-08-14
  • 打赏
  • 举报
回复
建议转换成WideString,统一变成双字节了,就简单了;
AnsiString newStr="ttαβttk中文αβ";
WideString ws=newStr;
AnsiString s=WideString(ws[index]);
这是我以前问过的一个答案,希望对你有用。
转换成双字节后,要找第index个元素的话。
s.SubString(2*index-1,2);



gloom 2001-08-14
  • 打赏
  • 举报
回复
我帮你推一下先

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧