在lostfocus事件中判断就好了。

解决方案 »

  1.   

    lostfocus事件是在那的,怎么没见到的?
      

  2.   

    procedure TForm1.Edit1Exit(Sender: TObject);
    var
      I: Integer;
    begin
      if Button1.Focused then begin
        {}
        Button1.Click;
      end else if not TryStrToInt(TEdit(Sender).Text, I) then
        TEdit(Sender).SetFocus;
    end;
      

  3.   

    procedure TForm1.Edit1Exit(Sender: TObject);
    var
      I: Integer;
    begin
      if Button1.Focused then begin
        {}
        Button1.Click;
      end else if not TryStrToInt(TEdit(Sender).Text, I) then
        TEdit(Sender).SetFocus;
    end;
      

  4.   

    在窗体的OnCloseQuery事件中判断当前的控件是不是edit
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if ActiveControl = Edit1 then
        ShowMessage('ok');
    end;