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.處理大量數據,但對於后續的操作不相干的情況下可以將處理數據交給子線程來做,那么線程也可以解決界面卡死的情況,這里就不舉例子了,在線程里寫代碼的方法和主線程里寫法一樣,只是注意下同步就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM