MaskEdit控件,我想控制它只能输入数字
应息么写。
在KeyPress事件中写
我是这样写的
if (key>=0)and  (key<=9) then
else
begin
   key:='';  //这句话出错。
end;/////////
也就是说当输入不是数字时key我应把key附什么值:

解决方案 »

  1.   

    if key not in[0..9] Then
    key=#0 
    else
    do...
      

  2.   

    maskkey不需要这样做。只要设置mask属性就行。如果要key:=char(0);
      

  3.   

    maskedit不需要这样做。只要设置mask属性就行。如果要key:=char(0);或key:=#0;
      

  4.   

    1,设置editmask属性为 99999;0;_  或00000;0;_  9为可输数字或为空,0为一定要输2,如果你要在keypress事件中写那就这样   if pos(key,'0123456789.')= 0 then  // .为可以输入小数点
       begin      if key <> #8 then  如果不是退格键,就中断。
             abort ;
       end;
      

  5.   

    我这是在edit中控制它只能输入数字,你吧edit改为maskedit就可以了
    var p:integer;tp:TPoint;
      begin
     if key in['0'..'9','+','-','.'] then
     begin
     if key in ['+','-'] then
     begin
     p:=pos ('+',edit1.Text)+pos ('-',edit1.Text);
     if p>0 then key:=#0
     else
     begin getcaretpos(tp);
     if tp.x>1 then key:=#0;
     end;
     end
     else if key='.' then
     begin
     p:=pos('.',edit1.Text);
     if p>0 then key:=#0;
     end;
     end
     else  if key>#31 then key:=#0;
     end;
      

  6.   

    两种方法
    一:设置EditMask属性,具体参考帮助。
    二:在KeyPress事件中写
        if not ((key in  ['0'..'9','.','-']) or (key = #8 )) then Key := #0;
        #8 为退格键。