5,939
社区成员
发帖
与我相关
我的任务
分享
private
{ Private declarations }
FEditChange:Boolean; //增加的变量,标记是否有触发OnChange事件
t1:int64;
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
begin
//如果是焦点,并已触发OnChange事件
if Edit1.Focused and FEditChange then
begin
//如果停止了输入400毫秒 (最后一次触发OnChange事件后)
if GetTickCount-t1>400 then
begin
Label1.Caption:=Edit1.Text; //模拟了你需要处理的代码,这里显示输入的内容 可修改为你的业务处理函数
FEditChange:=False; //还原未触发OnChange事件标记
end;
Done := False;//连续调用
end;
end;
procedure TForm8.Edit1Change(Sender: TObject);
begin
//已触发
t1:=GetTickCount; //标记最后触发时间
FEditChange:=True; //标记事件已触发
end;
procedure TForm8.FormCreate(Sender: TObject);
begin
FEditChange:=False;//初始化OnChange事件没有触发过
end;