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

相关文章
相关标签/搜索