Delphi編程防止界面卡死的方法經驗分享

Delphi編程防止界面卡死的方法經驗分享!編程

1.循環裏面防止界面卡死的方法能夠使用Application.ProcessMessages;
  例以下列方法:
    var
      n: Integer;
    begin
      for n := 0 to 10000 do
      begin
        Edit1.Text := IntToStr(n);
      end;
    end;
  在程序裏執行的時候,界面確定會卡死的,但如何防止界面出現卡的狀況呢,加入Application.ProcessMessages便可,修改後的代碼爲:
    var
      n: Integer;
    begin
      for n := 0 to 10000 do
      begin
        Application.ProcessMessages;
        Edit1.Text := IntToStr(n);
      end;
    end;
  這樣運行的時候界面就不卡了!Application.ProcessMessages會轉移程序控制權,使用的時候根據狀況來選擇!網絡

2.網絡程序在鏈接通訊的時候出現界面卡死
  此時能夠使用indy自帶的一個控件來解決問題TIdAntiFreeze,在鏈接或者通訊以前按照下列方法加入代碼;
    procedure TForm38.Button1Click(Sender: TObject);
    begin
      IdAntiFreeze1.OnlyWhenIdle:=False;
      IdTCPClient1.Host:='192.168.13.89';
      IdTCPClient1.Port:=3456;
      IdTCPClient1.Connect;
    end;線程

3.處理大量數據,但對於後續的操做不相干的狀況下能夠將處理數據交給子線程來作,那麼線程也能夠解決界面卡死的狀況,這裏就不舉例子了,在線程裏寫代碼的方法和主線程裏寫法同樣,只是注意下同步就好了。orm

相關文章
相關標籤/搜索