谢谢

解决方案 »

  1.   

    在DBEdit的OnKeyPress事件中:
    procedure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = '-' then
        if (Pos('-', DBEdit1.Text) > 0) or (DBEdit1.SelStart > 0) then
          Key := #0;
    end;
      

  2.   

    在OnKeyPress里面判断 你通过粘贴的办法一样能随意
      

  3.   

    可能不要那么复杂。DBEdit本身从TMaskEdit继承,所有具有MaskEdit的特质。身边没有Delphi,不知道Field中有没有EditFormat的属性,如果有,试着写-99999999999999试试。
    (Borland公司打击盗版,我机器上不能装,只能靠记性)
      

  4.   

    Field有EditMask属性,是可以的。或者在OnChange中判断,防止粘贴时的问题:
    procedure TForm1.DBEdit1Change(Sender: TObject);
    begin
      DBEdit1.Text :=
        Copy(DBEdit1.Text, 1, 1) +
        StringReplace(Copy(DBEdit1.Text, 2, Length(DBEdit1.Text)), '-', '', []);
    end;