我想做一个数据库输入程序,就是在一个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;
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;
000000;1;0 可实际应用时,在控件中出现的字符0只是起了一个显示的作用并不实际输出,
这就要求输入时必须把6个数字都输一下,即使是0也得输。这样的程序在使用上会给用户造成不便,
所以我想自己做一个检测程序。