???Edit控件只能输入指定位数如 0.00 格式的,请问用什么控件???

lantianhf 2010-08-25 08:51:08

Edit控件只能输入指定位数如 0.00 格式的,请问用什么控件,我可以设定小数点的位数,但格式必须设置的格式,按退格时还是显示 0.00 不清空,如光标放到角的位置自动替换0,如输入5角,自动变成0.50,后面的分位不变,用什么控件,谢谢帮帮指点。
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
idecl 2010-08-25
  • 打赏
  • 举报
回复
maskEdit
lantianhf 2010-08-25
  • 打赏
  • 举报
回复
我说的功能好像 cxcurrencyedit 实现不了吧
varick_zhong 2010-08-25
  • 打赏
  • 举报
回复
可以用cxcurrencyedit控件可以
kye_jufei 2010-08-25
  • 打赏
  • 举报
回复
試試...
procedure TRes_Hr_Report_F.Button1Click(Sender: TObject);
var
DotPos,Len:integer;
begin
DotPos:=pos('.',(Sender as TEdit).Text);
Len:=length((Sender as TEdit).Text);
if key in ['0'..'9',#8,'.','+','-'] then
begin
if (key in ['+','-']) then
begin
//只能在游標處於第一的位置,才能輸入'+'或者'-'
if ((Sender as TEdit).SelStart>0) then
begin
key:=#0;
exit;
end;
//'+','-'互斥
if (pos('+',(Sender as TEdit).Text)>0) or (pos('-',(Sender as TEdit).Text)>0) then
begin
key:=#0;
exit;
end;
end;
if key in ['.'] then
begin
//只能輸入一個'.'
if (DotPos>0) then
begin
key:=#0;
exit;
end;
//只能在'+','-'後面輸入'.'
if (pos('+',(Sender as TEdit).Text)>0) or (pos('-',(Sender as TEdit).Text)>0) then
if ((Sender as TEdit).SelStart<=0) then
begin
key:=#0;
exit;
end;
//小數點必須在最後兩位
if (DotPos<=0) and ((Sender as TEdit).SelStart<Len-2) then
begin
key:=#0;
exit;
end;
end;
if key in ['0'..'9'] then
//小數點後面最多兩位
if (DotPos>0) and (DotPos<=Len-2) and ((Sender as TEdit).SelStart>=DotPos) then
key:=#0 ;
end
else
key:=#0;
end;
kye_jufei 2010-08-25
  • 打赏
  • 举报
回复
在KeyPress事件中寫代碼。。。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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