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.处理大量数据,但对于后续的操作不相干的情况下可以将处理数据交给子线程来做,那么线程也可以解决界面卡死的情况