procedure Tbom5.Edit14KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','.',#8]) then key:=#0;
end;上述代码只实现了只能输入数字,但我想实现如果不为数字时edit为0而不是为空

解决方案 »

  1.   

    楼主是不是想让edit默认是0呀,其实这个简单,你edit.text:='0';不就得了
      

  2.   

    TbsSkinNumericEdit这个控件就可以实现你的要求
      

  3.   

    procedure Tbom5.Edit14KeyPress(Sender: TObject; var Key: Char); 
    begin 
    if not (key in ['0'..'9','.',#8]) then key:='0';//这样也可以实现你的目的 
    end; 
      

  4.   

    没有那么复杂,在OnChange事件里加点代码就OK了
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
      if Edit1.Text = '' then
      begin
        Edit1.OnChange := nil;//关闭OnChange事件
        Edit1.Text :='0';
        Edit1.OnChange := Edit1Change;//恢复OnChange事件
      end;
    end;
      

  5.   

    procedure Tbom5.Edit14KeyPress(Sender: TObject; var Key: Char); 
    begin 
      if not (key in ['0'..'9','.',#8]) then 
      begin
        key:=#0;
        edit4.text := '0';
      end; 
    end; 
      

  6.   

    nwen你的只有在输入英文的时候才会显示为0,如果为空就不能0