您的位置:首页 > 编程语言 > Delphi

delphi edit 固定小数位数的实现(形如:1,000,000.10)

2010-05-28 23:25 567 查看
procedure Tfrm_jz.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9',#8,#13]) then
begin
if key=#13 then
begin
if length(edit1.Text)>2 then
edit1.Text:=copy(edit1.Text ,1,(length(edit1.Text)-2))+'.'+copy(edit1.Text ,(length(edit1.Text)-1),2) ;
if length(edit1.Text)=2 then
edit1.Text:='0.'+edit1.Text;
if length(edit1.Text)=1 then
edit1.Text:='0.0'+edit1.Text;
edit2.SetFocus;
end
end
else
key:=#0;
end;

delphi edit 固定小数位数的实现方法的改进
------------------------
procedure Tfrm_jz.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9',#46,#13]) then
begin
if (SubStrConut(Edit1.Text,'.')=1) and (key in [#46]) then
key:=#0;
if key=#13 then
begin
if (pos(',',edit1.text)=0) and (edit1.text<>'') then
edit1.Text:=formatfloat('#,##0.00',strtofloat(edit1.Text));
edit2.SetFocus;
end;
end
else if key in [#8] then
edit1.text:=''
else
key:=#0;
end;

delphi edit 固定小数位数的实现方法的改进(解决无法输入负数的问题)
------------------------

procedure Tfrm_jz.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9',#45,#46,#13]) then
begin
if (SubStrConut(Edit1.Text,'.')=1) and (key in [#46]) then
key:=#0;
if (SubStrConut(Edit1.Text,'-')=1) and (key in [#45]) then
key:=#0;
if key=#13 then
begin
if (pos(',',edit1.text)=0) and (edit1.text<>'') then
if (pos('-',edit1.text)=0) or (pos('-',edit1.text)=1) then
begin
edit1.Text:=formatfloat('#,##0.00',strtofloat(edit1.Text));
edit2.SetFocus;
end;
end;
end
else if key in [#8] then
edit1.text:=''
else
key:=#0;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: