简单问题,如何让Edit1只输入正负数,即正负整数
1.即只输入大于0的整数,小于0的整数.
2.且第一个数字不能为0,后面的可以出现。
3.负号只能出现在第一个位置,后面不能再出现。请问怎么做,不要其它控件,要同时满足上面3个条件。

解决方案 »

  1.   


      if key = '.' then Key := #0
      else
        if (key = #13) then
        begin
          if btndsave.Enabled then
            btnDSave.Click;
          if btnDModify.Enabled then
            btnDModify.Click;
        end
        else
          if key = #8 then key := #8
          else
            if (key < '0') or (key > '9') then
              key := #0;只能输入数字,其他的自己在判断就行了,比如在OnChange事件中判断下就可以了
      

  2.   

    就想判断一次,只在OnkeyPress里判断
      

  3.   

    那就把上面的在修改下,比如当输入“0”时,获取当前Edit的字符串长度是否>1如果大于1,在判断光标是否在第一位如果在第一位就不输入呗,如果不在允许输入。
    各种情况都要考虑到。
      

  4.   


    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9','-',#8]) then
        key:= #0;
      if (key='0')and((Edit1.Text='')or(Edit1.Text='-')) then
        key:= #0;
      if (key='-')and(Edit1.Text<>'') then
        key:= #0;
    end;