在Edit1.OnKeyPress 中只允许输入数字:  
  if not (key in ['0'..'9'] then
     key:=#0;
这样的话,该输入框就不能使用快捷键复制和粘贴了。
怎么样让Ctrl+C 和 Ctrl+V 通过?

解决方案 »

  1.   

    既然你要控制输入的是数字,那么Ctrl+C和Ctrl+V,必须禁掉,要不你的控制也没有多大意义
      

  2.   

    不管有没有意义,我现在想知道有没有什么好的办法。
    我是试过用 GetKeyState 但不理想
      

  3.   

    换用
     SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);    
    将edit1设置为之能输入数字的。
      

  4.   

    firetoucher(风焱) 
       我输入框输入的是IP地址,还有一个点号,ES_NUMBER 可能也不行了
      

  5.   

    两者不影响把
    可以使用快捷键
    再onkeydown中定义
      

  6.   

    if (not (key in ['0'..'9',#8,#13,#26,#24,#3,#22]))这样写就可了,包括了好多常用的特殊键!我就是这样搞定了!  ^_^
      

  7.   

    截消息(ApplicationEvents->OnMessage), 如果当前edit处于焦点时再判断按键,ctrl+c则select, ctrl+v则paste。
      

  8.   

    #26,#24,#3,#22  分别代表:Ctrl+Z , Ctrl+X , Ctrl+C , Ctrl+V