因工作需要,用DELPHI7做了一个实现不间断PING操作,线路中断次数过多时就声音报警的程序.程序倒是能正常运行,就是自己觉得还有一些问题:
     1、切换到别的程序界面后再返回就发现只有左边的MEMO框还有内容(动态),右边的其他东东包括主窗体都不显示;
      2、最小化到任务栏后就不能再还原到正常状态显示,也就看不到信息反馈显示。
     本来考虑到是否内存泄漏,但程序持续运行几个小时后还是没有变大的迹象(任务管理器中查看)。

解决方案 »

  1.   

    memo1.Lines.Add(str);
    Application.ProcessMessages;//--
    sleep(strtoint(combobox1.text)*1000);//延迟拼包时间
      

  2.   

    其中调用别人的做的PING单元来源网页如下:
    http://www.seeitco.com/doc/Html/Delphi/205718201.html
    或者
    http://industry.ccidnet.com/art/1079/20030804/642253_1.html 
      

  3.   

    Application.ProcessMessages;该语句的引用位置有什么要求?如果我把它放在SLEEP之前,会不会就没有延迟了?
    另外是不是要在别的地方也加上它一句,好让程序可以关闭?
      

  4.   

    我6楼说错了,我刚试了在MEMO1之前又加了一句Application.ProcessMessages; 延迟时间更短了.
    但是仍然不能正常关闭程序.晚上再来给分.
      

  5.   

    Sleep是会停止所有响应的,包括你说的关闭操作,所以当你点关闭的时候,基本上你只能在他sleep的时候点,因为其他语句的执行时间是可以忽略不计的,所以当然会出现不能正常关闭的现象了啊
      

  6.   

    改变下方案
    增加以TIME控件
    设置一间隔时间
    记录程序初始时间
    while 程序运行时间-初始时间>=间隔时间 then 
    beign
      初始时间:=记录此刻时间点
      Time.enbled:=False;
      执行ping操作
      Time.enbled:=True;
    end;procedure FormonClose(sender:Tobject)
    begin
    Time.enbled:=False;
    Close;
    end;