我想做一个数据库输入程序,就是在一个TEDIT控件中只能输入6个数字,默认时为6个0,当我输入时0被自动替换掉,如不 输入的地方,就还是0,我试着做了一个,可是有些问题,就是当插入光标已到第6个字符的后面时,再输入会出现类似于死机的现象.代码如下,(希望高手指点该怎么做)
procedure TForm2.hh_textKeyPress(Sender: TObject; var Key: Char);
var
  tem:char;
begin
            if not(((key=#8) or ((key>=#48) and (key<=#57)))) then
       key:=#0
    else
    begin
       if length(trim(hh_text.Text))=6 then
       begin
          postmessage(hh_text.Handle,wm_keydown,46,0);
          postmessage(hh_text.Handle,wm_keydown,ord(key)+48,0);
       end;
   end;
end;

解决方案 »

  1.   

    为什么做的这么麻烦呢!一个控件就可以搞定的!用EditMask吧!把它的Mask值设为000000就可以了!什么代码也不用写!能保证你需要的效果!
      

  2.   

    这个控件在Additional标签页上!是标准的Delphi控件!
      

  3.   

    啊哦..keke,我怎么没想到来,呵呵,主要是没有用过
      

  4.   

    你们说得不对,如果用EditMask控件的话,根本实现不了我要的效果,我试过了掩码设为:
      000000;1;0  可实际应用时,在控件中出现的字符0只是起了一个显示的作用并不实际输出,
    这就要求输入时必须把6个数字都输一下,即使是0也得输。这样的程序在使用上会给用户造成不便,
    所以我想自己做一个检测程序。