如何在Edit文本框输入中输入的是数字,而且小数点后只保留两位数字!!!!!
请教各位
请教各位
解决方案 »
- 程序启动后立即运行,执行完成后,自动退出?
- 关于动态数组越界的2个问题?
- StringGrid 动态创建按钮
- 谁有ADOBackUP控件,送100分!!!
- 谁有 devexpress cxGrid 4.5 的整套控件包和源码?
- [提问]要做一个拨号通讯的程序,并且比较急,请各位帮忙理一下思路和实现方法。不胜感谢!希望大家集思广益!
- 这个方案是否可行?
- delphi中如何将一个DBF格式数据导入SQL
- 这样能实现,为什么放在过程中就实现不了?
- 如何在返回的结果集中用LOCATE方法查找满足两个条件的记录?
- ........郁闷问题。。。。。连接oricle数据库出错。。。
- cxGrid的中文帮忙
begin
maskedit1.EditMask:='9999.99;0;';
end;
IF NOT (KEY IN['0'..'9','.',#8]) THEN KEY:=#0
begin
//限制输入字符
if not (key in ['1'..'9','.',#8]) then
begin
key := #0 ;
exit ;
end ;
//限制'.'个数
if (key = '.') and (pos('.',TEdit(Sender).Text) > 0 ) then
begin
Key := #0 ;
exit ;
end ;
//限制个数
if (pos('.',TEdit(Sender).Text) > 0 ) then
begin
if (TEdit(Sender).SelStart >= pos('.',TEdit(Sender).Text)) and
( Length(Copy(Tedit(Sender).Text,pos('.',TEdit(Sender).Text)+1, Length(TEdit(Sender).Text )-
pos('.',TEdit(Sender).Text)))>1 ) and (key <>#8)then
begin
Key := #0 ;
exit ;
end ;
end ;
end;
功能:该函数是用来约束输入控件,如TEdit的输入.参数stringtype含义:1正符点数2不影响3布尔4实数
用法:比如要约束Edit1 的输入为小数点两位的数据类型
则调用Tpubfun.checkkey(key,Edit1.text,2,1);
}
class function Tpubfun.checkkey(Key:char;Text:string;PointNum:integer;stringtype:integer):char;
var
j:integer;
begin
result:=key;
case stringtype of
1:
begin
if not (Key in ['0'..'9','.',#13,#8]) then
result:= #0
else
result:=key;
if (pos('.',Text)<>0) and (Key = '.') then
result:= #0;
j:=pos('.',Text);
if j<>0 then
if length(copy(Text,j+1,PointNum))=PointNum then
if key=#8 then
result:= #8
else
result:= #0;
end;
2:result:=key ;
3:
begin
if not (Key in ['0','1','.',#13,#8]) then
result:= #0
else
result:=key;
end;
4:
begin
if not (Key in ['0'..'9','-','.',#13,#8]) then
result:= #0
else
result:=key;
if (pos('.',Text)<>0) and (Key = '.') then
result:= #0;
j:=pos('.',Text);
if j<>0 then
if length(copy(Text,j+1,PointNum))=PointNum then
if key=#8 then
result:= #8
else
result:= #0;
end;
end;
end;
begin
maskedit1.EditMask:='9999.99;0;';
end;要转换成数值则:aReal:=strToFloat(ansiReplaceText(maskedit1.Text,' ',''));