今天下载了DELPHI 2010,安装后发现 已经默认安装了INDY 10.5.5 版本控件
但在使用中发现 IdIcmpClient 控件居然没有 TTL属性,靠,越搞越差了。
请问下论坛上熟悉的高手,TTL属性跑哪里去了,怎么才能设置这个属性呢?我IdIcmpClient。ReplyStatus.TimeToLive 设置,没有生效,难道是BUG吗?有谁能帮忙解决这个疑问,100分感谢。

解决方案 »

  1.   

    坐下沙发,等待答案,呵呵,好久好久没有来CSDN发帖了
      

  2.   

    楼上的,查过了,只发现有个 IdIcmpClient.ReplyStatus.TimeToLive 属性设置,从字面意思看,TimeToLive  就是 TTL,单是设置了没有生效。而且我在 网上搜索了很久,得到的结果是 INDY 10去掉了 TTL属性,所有郁闷,为什么要去掉?那有什么替代的方式吗?用了一上午的GOOGLE 、BAIDU 找答案还是没有找到,所以希望论坛里熟悉的高手指点一二
      

  3.   

    The TTL property is declared as protected in TIdRawBase, and TIdIcmpClient does not promote it to public. You will have to declare a descendant class to gain access to it, ie:type
    TIdIcmpClientAccess = class(TIdIcmpClient);
     
    procedure TMainForm.PingFirst;
    //...
    TIdIcmpClientAccess(IdIcmpClient1).TTL := CurrentTTL;
    //...
    end;http://www.fredshack.com/docs/indy.html你确定这个也不能用?看起来解释的很合理。
      

  4.   

    现在我已经改用INDY 9了,楼上提供的信息我搜到过,但是 TIdIcmpClientAccess  的控件缺在INDY 10里找了半天没有找到,搞不懂难道要自己实现?
      

  5.   


    看来lz果然是英文差了一点点。就是需要自己写一个类型叫TIdIcmpClientAccess,然后用自己的类型就好了,可以把TTL属性暴露出来。