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