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

相关阅读 >>

Delphi中如何将一整个文件读入内存

Delphi webbrowser 去除滚动条和边框

Delphi dbgrid适应宽度

Delphi 分割文件合并文件的函数

Delphi 如何将颜色值转换为灰度颜色值?

Delphi根据字符分割字串成数组

Delphi整理七(function and procedure)

精通Delphi模拟按键

Delphi 日期时间计算

Delphi idhttp上传图给asp完美解决

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...