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