procedure TForm1.Button1Click(Sender: TObject);
  var  Inti :integer;
begin
    Inti := 1;    repeat    if  InternetCheckConnection('http://zicheng.oicp.net/bbsxp', 1, 0) then
        begin
        edit1.text:= 'Connected';
        Inti:=Inti+1;
        Label1.Caption:=IntToStr(Inti);
        ProgressBar1.Position:=Inti;
        Application.ProcessMessages( ); {这里定义了处理消息,但就是点叉,不让关闭窗口
        end
    else
        begin
        edit1.text:= 'Disconnected';
        Inti:=0;
        end;
     until Inti<=0;end;

解决方案 »

  1.   

    在窗体类中增加一个Boolean类型变量来标记窗体被关闭type
      TForm1 = class(TForm)
        ......
      private
        bFormClosed : Boolean;
      end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      bFormClosed := False;
    end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      bFormClosed := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      Inti :integer;
    begin
      Inti := 1;
      repeat
        if InternetCheckConnection('http://zicheng.oicp.net/bbsxp', 1, 0) then
        begin
          edit1.text := 'Connected';
          Inti := Inti+1;
          Label1.Caption := IntToStr(Inti);
          ProgressBar1.Position := Inti;
          Application.ProcessMessages( ); {这里定义了处理消息,但就是点叉,不让关闭窗口
        end
        else begin
          edit1.text := 'Disconnected';
          Inti := 0;
        end;
      until bFormClosed or (Inti <= 0);
    end;