这样做就可以了啊 procedure TForm1.Edit1Change(Sender: TObject); begin if form1.Tag = 1 then begin form1.Tag := 0; end else begin showmessage('已经触发'); end; end;procedure TForm1.FormShow(Sender: TObject); begin form1.Tag := 1; edit1.Text := '123' end;
procedure TForm1.FormCreate(Sender: TObject); begin Edit1.OnChange:=nil; Edit1.Text:='11'; Edit1.OnChange:=Self.Edit1Change; end;procedure TForm1.Edit1Change(Sender: TObject); begin // end;
如果非要这样控制的话,我想应该可以用全局变量来控制,比如利用 form.tag 的值来控制
begin
Edit1.Text := '123';//这会触发Edit1.OnChange事件,因为这是程序中设置Edit1,所以要禁止OnChange事件,OnChange事件只有在键盘或者鼠标输入时才允许OnChange来检查输入是否正确
Form.OnShow()
begin
Edit1.OnChange := nil;
Edit1.Text := '123';
..
Edit1.OnChange := myEdit1OnChange;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if form1.Tag = 1 then
begin
form1.Tag := 0;
end
else
begin
showmessage('已经触发');
end;
end;procedure TForm1.FormShow(Sender: TObject);
begin
form1.Tag := 1;
edit1.Text := '123'
end;
begin
Edit1.OnChange:=nil;
Edit1.Text:='11';
Edit1.OnChange:=Self.Edit1Change;
end;procedure TForm1.Edit1Change(Sender: TObject);
begin
//
end;