CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

高手指点memo中sellength有时汉字长度为1,有时为2,在那里进行设置?

楼主derris(深水鱼)2006-03-04 15:04:27 在 Delphi / VCL组件开发及应用 提问

我也不知道怎么设置的,我2个不同的程序,在memo控件中录入一个汉字,然后拖动鼠标选中,然后加一个按钮,showmessage(inttostr(memo1.selLength)),一个提示为1,一个提示为2,我也不知道在那里设置的问题,请高手指点 问题点数:100、回复次数:8Top

1 楼windindance(风舞轻扬·白首为功名)回复于 2006-03-04 15:13:37 得分 30

从未遇见类似问题。一个汉字的sellength应该都是2Top

2 楼derris(深水鱼)回复于 2006-03-04 17:03:53 得分 0

我估计应该是我增加了语言文件而导致的。而且都是ansistring的字符,真是奇怪Top

3 楼keiy()回复于 2006-03-04 17:30:12 得分 30

会不会与系统的区域设置有关(你选中了半个汉字?)Top

4 楼derris(深水鱼)回复于 2006-03-05 11:22:00 得分 0

我在一个计算机上面,而且也没有注销换用户什么的,打开这个程序(这个程序用了ADO连ACCESS数据库),在MEMO中SHOW了SELLENGTH汉字是1,然后新建一个或者打开别的程序,在MEMO中SHOWMESSAGE汉字就是2。我真晕了。我猜是不是有个地方设置MEMO中使用的STRING或者是WIDESTRING?我更换了PROJECT的选项里面的语言也没有用。Top

5 楼net_morning(矿泉水)回复于 2006-03-05 19:27:13 得分 30

用widestring变量showMessage一下看看Top

6 楼derris(深水鱼)回复于 2006-03-05 19:57:27 得分 0

找了好久也没有解决,我到底也不知道原来的程序是怎么做成的。widestring汉字当然是1,length函数是会自动根据string,或者widestring提供正确长度的。  
  =======================摘抄===============  
  1.字符集(CharSet)    
   
  要支持国际化,最好的方案是支持Unicode;非Unicode也可以支持国际化,但是有小许的缺失。   ..................  
   
    XP中引入了theme(style),也就是新的ComCtrls,一旦程序支持了theme,就要小心一些向系统获取的信息,如TCustomEdit.SelLength,TCustomEdit.SelStart等等,这些信息的返回值与不支持theme时的返回值将会有差别[因为支持theme的window是comctrls6版本的组件,内部是使用Unicode方式工作的]。      
   
  原文:http://blog.cnpack.org/index.php?play=show&id=10  
  =============================  
  唉,但具体到底是怎么回事呢?关键是会不会有的系统是1有的系统是2就完蛋了。Top

7 楼windindance(风舞轻扬·白首为功名)回复于 2006-03-06 09:22:08 得分 10

你有那个显示为1的程序的源代码吗?  
  会不会是他   显示选择长度时做了特殊处理?Top

8 楼derris(深水鱼)回复于 2006-03-06 13:05:30 得分 0

知道了。当时看到这里的时候:  
  XP中引入了theme(style),也就是新的ComCtrls,一旦程序支持了theme,就要小心一些向系统获取的信息,如TCustomEdit.SelLength,TCustomEdit.SelStart等等,这些信息的返回值与不支持theme时的返回值将会有差别[因为支持theme的window是comctrls6版本的组件,内部是使用Unicode方式工作的]。      
  我就开始有点感觉是xp的manifest的问题。今天中午抽空试验了一下,果然是。谢谢大家捧场。Top

相关问题

  • 怎么不能线是汉字?请指点!
  • ???????????????????高人请指点!怎样判断字符串中不包含汉字??????????????
  • 请高手指点 Paradox库怎么存有500汉字的字段
  • 如何实现拼音到汉字的查询,请高手指点!500分!
  • COM客户程序对MS SQL Server插入记录,关于char字段,汉字的错误!请指点!!
  • 高手指点:#import Java com组件后生成的.tlh文件中的汉字“参数”问题
  • 指点指点
  • 指点
  • 指点
  • 汉字断句

关键词

  • 汉字
  • 系统
  • unicode
  • xp
  • 信息
  • sellength
  • memo
  • tcustomedit
  • theme
  • 长度

得分解答快速导航

  • 帖主:derris
  • windindance
  • keiy
  • net_morning
  • windindance

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo