怎么样限定字符数

Zoogreen 2006-11-22 12:33:37
如何限定Edit,memo等里面输入的字符串长度假设限定为20个(中英文算一个字符),如果全是中文就只输20个,全是英文就40个,中文混合则20个
...全文
237 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cangwu_lee 2006-11-22
  • 打赏
  • 举报
回复
ding
自己在 Change 事件检查,可以么?
然后在处理之前检查一下长度,超过就不允许继续。
dashi 2006-11-22
  • 打赏
  • 举报
回复
帮顶~~
wudi_1982 2006-11-22
  • 打赏
  • 举报
回复
用widestring
踢踏 2006-11-22
  • 打赏
  • 举报
回复
var
s1: String;
s2,s3: WideString;
begin
s1:='我的问题50';
s2:='我的问题50';
s3:='0123456789';
Caption:=IntToStr(Length(s1))+';'+IntToStr(Length(s2))+';'+IntToStr(Length(s3))
end;

使用WideString即可判断。
Zoogreen 2006-11-22
  • 打赏
  • 举报
回复
自己顶一下.
Zoogreen 2006-11-22
  • 打赏
  • 举报
回复
中文字符跟英文或数字混合时,英文或数字要占两个位来处理
Zoogreen 2006-11-22
  • 打赏
  • 举报
回复
可能表达有点问题,使你误解了,举个例子吧,如果用 length(),或者象你说的那样设置 maxlength属性的话, 字符串一: 我的问题50 跟字符串二: 我们的问题, 这两串是一样的长度为10.但是手机发短信时,如果限定只能输5个字的话, 字符串一会被截成 :我的问题5. 可能用unicode编码可以判断我要的那种长度,但不知道是什么function
comanche 2006-11-22
  • 打赏
  • 举报
回复
晕, 地球人进化了, 说句无聊话哈, 真的是....

Edit & Memo 中都有 MaxLength 属性, 你设一下就可以了嘛, 设 20 e 文, 中文就是 10 了
Zoogreen 2006-11-22
  • 打赏
  • 举报
回复
检查是可以,不过好象判断长度比较麻烦.因为中英文混合时,英文字符要占两位来算,虽然实际是1位,所以这样一来, 用length(), strlen()等函数都不能正确反应我要的长度的.总不能让我一位位去取用去判断吧

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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