procedure TForm1.Timer1Timer(Sender: TObject); begin showmessage('how to do?'); end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (length(edit1.Text)>=3) and (length(Edit1.text)<=6) then Timer1.OnTimer(Timer1); end; 给你源代码. 我调试过,可行!
var s1,s2:string; i :integer; begin s1:='800001'; timer.enabled:=false; TIMER1.interval=1000procedure TForm1.Timer1Timer(Sender: TObject); begin edit1.text:='怎么做'; end;procedure TForm1.edit1keypress(sender:tobject;var key:char)begin i:=length(edit1.text); s2:=copy(s1,1,i);//从s1(800001)中读取i个字符,用来判断输入 //是否为80001 if s2<>trim(edit1.text) then timer.enabled:=true else begin key:=#0 ;exit; end; end;end. 没有经过调试,有什么问题,你应该可以解决的,我希望能给你提供一个思路。
忘记加上判断是否为第三个字符了。这样就可以了。var s1,s2:string; i :integer; begin s1:='800001'; timer.enabled:=false; TIMER1.interval=1000procedure TForm1.Timer1Timer(Sender: TObject); begin edit1.text:='怎么做'; end;procedure TForm1.edit1keypress(sender:tobject;var key:char)begin i:=length(edit1.text); if i<3 then exit; s2:=copy(s1,1,i);//从s1(800001)中读取i个字符,用来判断输入 //是否为80001 if s2<>trim(edit1.text) then timer.enabled:=true else begin key:=#0 ;exit; end; end;end.
在edit的press事件中,判断是否输入了大于三个字符,(只要length(edit1.text)就可以了),然后将ttimer 的enabled设定为可用,在timer的事件里,将edit.text:=‘怎么做'您认为可以么?不行,给我发消息
在edit的press事件中,判断是否输入了大于三个字符,(只要length(edit1.text)就可以了),然后将ttimer 的enabled设定为可用,这里加一个吃掉键值 的语句key:=#0;在timer的事件里,将edit.text:=‘怎么做'您认为可以么?不行,给我发消息
begin
showmessage('how to do?');
end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (length(edit1.Text)>=3) and (length(Edit1.text)<=6) then
Timer1.OnTimer(Timer1);
end;
给你源代码.
我调试过,可行!
GetTickCount(void)函数,并记录下它的返回值,而后继续接收键盘输入,直到计数器为6,再调用GetTickCount(),保存返回值,然后比较前后的差值是否等于
您设定的秒数,如果是,则OK,否则Edit1.Clear();
...
明白没有?:)
当时间到的时候就做ttimer里的东西,包括检查长度和停止ttimer。这个比较容易控制。
s1,s2:string;
i :integer;
begin
s1:='800001';
timer.enabled:=false;
TIMER1.interval=1000procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.text:='怎么做';
end;procedure TForm1.edit1keypress(sender:tobject;var key:char)begin
i:=length(edit1.text);
s2:=copy(s1,1,i);//从s1(800001)中读取i个字符,用来判断输入
//是否为80001
if s2<>trim(edit1.text) then timer.enabled:=true else
begin key:=#0 ;exit; end;
end;end.
没有经过调试,有什么问题,你应该可以解决的,我希望能给你提供一个思路。
s1,s2:string;
i :integer;
begin
s1:='800001';
timer.enabled:=false;
TIMER1.interval=1000procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.text:='怎么做';
end;procedure TForm1.edit1keypress(sender:tobject;var key:char)begin
i:=length(edit1.text);
if i<3 then exit;
s2:=copy(s1,1,i);//从s1(800001)中读取i个字符,用来判断输入
//是否为80001
if s2<>trim(edit1.text) then timer.enabled:=true else
begin key:=#0 ;exit; end;
end;end.
或在edit.onchange事件中做,其实很简单的。