delphi 7自带的Indy是v9.0.10版本的,在此版本中,TIdTCPClient 组件 ReadLn 方法的超时参数无效,在v9.0.18版本中已经解决了这个问题。
查看delphi 7中Indy版本的方法:打开delphi 7,在窗口随便放置一个Indy组件,然后再组件上点右键,第一个就是版本信息了。
Indy v9.0.18下载地址:
http://www.indyproject.org/downloads/indy9.0.18_source.zip
升级Indy的方法:
1、卸载旧的版本,Component -> Install packages...在Design packages中找打Internet Direct(Indy)forD7..,选择,然后点击“Remove”卸载。
2、在delphi目录中的Source文件夹中有一个Indy文件夹,将内容全部删除,然后将下载的indy9.0.18_source文件夹内容全部复制进去。
3、安装新版本:File -> open 找到 ...\Borland\Delphi7\Source\indy\dclIndy70.dpk,编译然后安装即可。
4、然后将所有文件复制到delphi目录中的lib文件夹中,覆盖掉原来的文件。即可。
新的版本与旧版本图标有差别,全部是新的样子。
如果不想升级,下面也有个解决办法:
http://hi.baidu.com/gezhou/blog/item/7ec21e4f7d72fe3faec3ab56.html