如何实现一个在输的数字串,自动分隔成每4个数字中间空格显示

I_AM_IVY 2009-03-13 11:50:38
如何实现一个在输的数字串,自动分隔成每4个数字中间空格显示?

如 1111222233334444

要一边输的时候,一边自动 显示成 1111 2222 3333 4444
...全文
278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelymelon 2009-03-13
  • 打赏
  • 举报
回复
TMaskEdit好像只能是定长的吧,如果长度不确定,好像不行吧,没仔细研究
lovelymelon 2009-03-13
  • 打赏
  • 举报
回复
可以自己写代码

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
var
s,s1,str:string;
i,j,m,n:Integer;
begin
if not (Key in ['0'..'9']) then
Exit;
self.vg_s:=self.vg_s+key;
s:=self.vg_s;
i:=Length(s);
if (i=4) or (i>4) then
begin
str:='';
j:=i div 4;
n:=i mod 4;
if n>0 then
j:=j+1;
for m:=1 to j do
begin
s1:=Copy(s,1,4);
str:=str+s1+' ';
s:=Copy(s,5,Length(s)-4);
end;
end
else
begin
str:=self.vg_s
end;
self.vg_str:=str;
end;

procedure TForm1.Edit5Change(Sender: TObject);
begin
self.Edit5.Text:=self.vg_str;
self.Edit5.SelStart:=Length(self.vg_str);
end;

hduhjh 2009-03-13
  • 打赏
  • 举报
回复
用TMaskEdit就行了 (Delphi自带 Additional控件组里)
设置下EditMask属性就好了.具体可以参考已有的
I_AM_IVY 2009-03-13
  • 打赏
  • 举报
回复
非常感谢 lovelymelon
lovelymelon 2009-03-13
  • 打赏
  • 举报
回复
我上面的代码可以实现,我已经测试了
I_AM_IVY 2009-03-13
  • 打赏
  • 举报
回复
我要的是长度不确定的,EditMask要定长的,不好

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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