我想在edit中输入金额,要控制只能输入到小数点后两位!请各位帮忙!

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    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;
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    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;
      

  3.   

    还有如何使edit中输入的数值如200,显示为200.00?请教
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    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;
      

  5.   

    还有如何使edit中输入的数值如200,显示为200.00?请教
    答:
    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;
      

  6.   

    edit有个属性叫MAXLEANTH,缺省是0,你设定个数字如5那只能输5位
      

  7.   

    限制输入两位小数~~
    ------------------
    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;
      

  8.   

    http://expert.csdn.net/Expert/topic/2911/2911298.xml?temp=.5022852