Timer中写了一个事件轮循检测Connected值当connected为True时,出现一个提示框,但如果不点击提示框,以后也不能再出现提示框了。否则Timer会一直出现提示框的。

解决方案 »

  1.   

    if FindWindow(...) = 0 then
      //出现提示
      

  2.   

    show出对话框前 timer.Enable :=False,关闭后timer.Enable := True;
      

  3.   

    进入timer做以下处理
    timer1.enabled = false;
    //处理你的检测和提示//处理完了
    timer1.enabled = true;很简单
      

  4.   


    全局变量
    vg_b:Boolean;procedure TForm1.FormCreate(Sender: TObject);
    begin
      self.vg_b:=False;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i:Integer;
    begin
      if vg_b then
      else
      begin
        self.Timer1.Enabled:=False;
        MessageBox(Application.Handle,'fdfdf','信息',MB_OK or MB_ICONINFORMATION);
        self.vg_b:=True;
        self.Timer1.Enabled:=True
      end;
    end;
      

  5.   


    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      i:Integer;
    begin
      if vg_b then
      else
      begin
        self.Timer1.Enabled:=False;
        MessageBox(Application.Handle,'fdfdf','信息',MB_OK or MB_ICONINFORMATION);
        self.vg_b:=True;
        self.Timer1.Enabled:=True
      end;
    end;
      

  6.   

    那如果一直不确认对话框,那timer做的其他检测就没作用了?我还是想了解下findwindow函数Form1窗口弹出MessageDlg后如何获取这个弹出的窗口句柄呢?
      

  7.   

    Corn1:用findwindow就行,呵呵。