delphi中怎么样让五个edit框之合只能是100
还有,只能输入数字

解决方案 »

  1.   

    第一个看不明白我的方法是在keypress中
    if key in['0'..'9',#8] then
    edit1.readonly:=False
    else
    readonly:=True;
      

  2.   

    在没个edit的change事件中,写代码,计算和。
    或者先随便输,在确定的时候做校验就可以了!
      

  3.   

    1、if strtofloat(edit1.text)+strtofloat(edit2.text)+strtofloat(edit3.text)+strtofloat(edit4.text)+strtofloat(edit5.text)<>100 then
    begin
    ...
    end;orEdit5.Text := 100 - (strtofloat(edit1.text)+strtofloat(edit2.text)+strtofloat(edit3.text)+strtofloat(edit4.text));2、onexit里写事件
    try
    strtofloat(edit1.text);
    except
       showmessage('只能输入数字');
    end;
      

  4.   

    try
      if StrToInt(Edit1.Text)+StrToInt(Edit2.Text)+StrToInt(Edit3.Text)+
         StrToInt(Edit4.Text)+StrToInt(Edit5.Text)<>100 then
        ShowMessage('和只能是100');
    except
      ShowMessage('只能输入整数'); 
      exit;
    end;
      

  5.   

    输入完毕后做一下判断就可以了
    第二个问题:用maskedit控件,或者在edit1的keypress里写
    if not(key in['0'..'9',#8]) then key:=#0;
      

  6.   

    1.
    var
      i : Integer;
      i := strtoint(edit1.text)+strtoint(edit2.text)+strtoint(edit3.text)+
           strtoint(edit4.text)+strtoint(edit5.text);
    if i <> 100 then
      begin
        
      end;2.
    procedure T_Form.Edit1KeyPress(Sender: TObject;
      var Key: Char);
    begin
      if not (key in ['0'..'9']) then begin
        key := #0;
        ShowMessage('输入的不是数字');
      end;
    end;
      

  7.   

    在每个edit的OnChange事件里,先判断是否输入的是数字。
    然后,因为五个数加起来是100,设五个edit数字分别是a,b,c,d,e。所以,a最大只能是100-4=96。b最大只能是100-3-a,c最大只能是100-2-a-b,d最大只能是100-1-a-b-c,e也就随之确定。
    以上都在edit的OnExit事件里判断。