我想在edit中输入金额,要控制只能输入到小数点后两位!请各位帮忙!
解决方案 »
- DBGridEH判断一个列个的重复值?
- 时间显示问题
- 关于ado 使用paradox数据库
- 请教一个极简单的问题:ADO怎么和带密码的ACCESS数据库相联,不用DSN的方式,
- 为什么recno当数据库第一条记录时是-1,其他当正常呢?
- 这样的一条语句为什么会出错啊?
- 在clientsocket/serversocket中传图片?还有把query控件查询出来的结果传给客户端要怎样做?
- 我在做文本操作时候发现速度很慢,有没有老兄能够给指点,在线等。。
- 为什么不能得到数据库的记录数?
- kylix要在台湾发行了,我们怎么办,给大家一个下载的去处吧!!!!
- 为什么我的commandtext语句加where ... 后就没有记录了呢?
- 我是一个初学者希望各位高手在这方面多给予我指点
var s:integer;
bj:integer;
str:String;
begin
bj:=pos('.',edit1.text);
if bj>0 then
begin
s:=length(edit1.Text);
str:=Copy(edit1.text, bj,s-bj);
if length(str)>=2 then
key:=#0;
end;end;
var s:integer;
bj:integer;
str:String;
begin
bj:=pos('.',edit1.text); //--得到小数点的位置
if bj>0 then
begin
s:=length(edit1.Text);
str:=Copy(edit1.text, bj,s-bj); //---取出小数点后的字串
if length(str)>=2 then
key:=#0;
end;end;
var s:integer;
bj:integer;
str:String;
begin
if key<>#8 then
begin
bj:=pos('.',edit1.text);
if bj>0 then
begin
s:=length(edit1.Text);
str:=Copy(edit1.text, bj,s-bj);
if length(str)>=2 then
key:=#0;
end;
end;end;
答:
procedure TForm1.Edit1Exit(Sender: TObject);
var s:integer;
bj:integer;
str:String;
i:integer;
str1:string;
begin
bj:=pos('.',edit1.text);
if bj<>0 then
begin
s:=length(edit1.Text);
str:=Copy(edit1.text, bj+1,s-bj);
str1:=Copy(edit1.text, 1,bj);
if length(str)<2 then
for i:=1 to 2-length(str) do
str:=str+'0';
edit1.Text:=str1+str;
end
else
edit1.Text:= edit1.Text+'.00'
end;
------------------
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
I: Integer;
Len: Integer;
str: string;
begin
str := Edit1.Text;
Len := Length(str);
for I:=0 to Len-1 do
begin
if str[I]='.' then
begin
if (Len-I=2) and (Key<>#8) then // 两位小数
Key := #0;
end;
end;
end;