社区
Delphi
帖子详情
高手指点memo中sellength有时汉字长度为1,有时为2,在那里进行设置?
derris
2006-03-04 03:04:27
我也不知道怎么设置的,我2个不同的程序,在memo控件中录入一个汉字,然后拖动鼠标选中,然后加一个按钮,showmessage(inttostr(memo1.selLength)),一个提示为1,一个提示为2,我也不知道在那里设置的问题,请高手指点
...全文
129
8
打赏
收藏
高手指点memo中sellength有时汉字长度为1,有时为2,在那里进行设置?
我也不知道怎么设置的,我2个不同的程序,在memo控件中录入一个汉字,然后拖动鼠标选中,然后加一个按钮,showmessage(inttostr(memo1.selLength)),一个提示为1,一个提示为2,我也不知道在那里设置的问题,请高手指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
windindance
2006-03-06
打赏
举报
回复
你有那个显示为1的程序的源代码吗?
会不会是他 显示选择长度时做了特殊处理?
derris
2006-03-06
打赏
举报
回复
知道了。当时看到这里的时候:
XP中引入了theme(style),也就是新的ComCtrls,一旦程序支持了theme,就要小心一些向系统获取的信息,如TCustomEdit.SelLength,TCustomEdit.SelStart等等,这些信息的返回值与不支持theme时的返回值将会有差别[因为支持theme的window是comctrls6版本的组件,内部是使用Unicode方式工作的]。
我就开始有点感觉是xp的manifest的问题。今天中午抽空试验了一下,果然是。谢谢大家捧场。
derris
2006-03-05
打赏
举报
回复
我在一个计算机上面,而且也没有注销换用户什么的,打开这个程序(这个程序用了ADO连ACCESS数据库),在MEMO中SHOW了SELLENGTH汉字是1,然后新建一个或者打开别的程序,在MEMO中SHOWMESSAGE汉字就是2。我真晕了。我猜是不是有个地方设置MEMO中使用的STRING或者是WIDESTRING?我更换了PROJECT的选项里面的语言也没有用。
derris
2006-03-05
打赏
举报
回复
找了好久也没有解决,我到底也不知道原来的程序是怎么做成的。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就完蛋了。
net_morning
2006-03-05
打赏
举报
回复
用widestring变量showMessage一下看看
柯本
2006-03-04
打赏
举报
回复
会不会与系统的区域设置有关(你选中了半个汉字?)
derris
2006-03-04
打赏
举报
回复
我估计应该是我增加了语言文件而导致的。而且都是ansistring的字符,真是奇怪
windindance
2006-03-04
打赏
举报
回复
从未遇见类似问题。一个汉字的sellength应该都是2
DELPHI控件FastReport
中
文
Memo
显示问题的完美解决方案
本文转自http://www.daxie.net/blog/read.php?56#topreply,因为我用的FastReport版本还要高,所以没有用到作者提到的第三种解决方案。问题描述,正如rainee所说:程序设计时
Memo
中
的
中
文显示正常,预览也正常。程序运行时
Memo
中
的
中
文只能显示前几个
汉字
,有时甚至不能显示。再次打开程序源码,会发现
Memo
中
的
中
文没保存下来或保存不完全。如果
eos转账
memo
长度
概述: 平时我们
进行
EOS 币转账的时候,
memo
最多可以填多少个
汉字
、多少个英文字符呢? 官方eosio.token合约的transfer方法,
memo
被断言为
长度
小于等于256(eosio_assert(
memo
.size() <= 256, "
memo
has more than 256 bytes" )),那么作为一名“专业”码农应该觉得可以输入纯英文字符最多256个,纯
汉字
减半...
为什么数据库
中
某一列全部是
memo
?
Question:why is mysql
memo
? 为什么存在mysql
中
的某一列的值全是
MEMO
??? 解答:使用的是MySQL-Front,对于多行文本显示mysql-front都是
memo
,跟数据库服务器无关。 点击
MEMO
行,在下方就能看到里面的内容 或者使用mysql命令直接在控制台可以查看数据。
FastReport
中
动态
设置
memo
的值
有时需要在delphi程序
中
根据情况动态
设置
fastreport
中
的
memo
的值,FR3可以这样:
Tfrx
Memo
View(frxReport1.FindObject('
Memo
28')).
Memo
.Text:='yes';
FR2的话,好像是把两个x去掉就可以了(frx改成fr)
Delphi
Memo
中
禁止
汉字
在
memo
里面的OnKeyPress里面加入 if Key>#127 then Key:= #0; 即可!!! 转载于:https://www.cnblogs.com/rogee/archive/2010/09/20/1832023.html
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章