天天看點

delphi中Tedit輸入金額數字

procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);   //控制edit1的輸入數字

var

  p:Integer;

begin

  //限制隻能輸入數字,小數點,負号

  if not (Key in ['0'..'9', '.','-',#8, #13]) then

  begin

    Key := #0;

  end;

  //如果是小數,小數點前面隻能輸入一個零

  if key = '0' then

  begin

    if (LeftStr(Edit1.Text,1) ='-') and (MidStr(Edit1.Text,2,1) = '0') and (Length(Edit1.Text) = 2) then

    begin

      Key:=#0;

    end

    //如果第一位是零,則零隻能輸入一次

    else if (LeftStr(Edit1.Text,1) = '0') and (Length(Edit1.Text) = 1) then

    begin

      Key:=#0;

    end

  end

  //限制隻能輸入一個小數點,且隻能在第二個位置開始

  else if Key = '.' then

  begin

    if Edit1.SelStart = 0 then

      Key := #0;

    p := Pos('.', Edit1.Text);

    if p > 0 then

      Key := #0;

  end

  //限制隻能在第一個,且隻能輸入一個負号

  else if Key = '-' then

  begin

    if Edit1.SelStart > 0 then

      Key := #0;

    p := Pos('-', Edit1.Text);

    if p > 0 then Key := #0;

  end;

end;

繼續閱讀