高分请教 !!! !!!! (80分)

  • 主题发起人 主题发起人 mmy729
  • 开始时间 开始时间
M

mmy729

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟最近用delphi 7做了毕业设计,我是用来做邮件收发部分的,现在写论文,想要介绍delphi 7 还有里面的indy控件,主要是idpop3,idstmp,不知哪位能给点资料,,或是给点建议!
 
可以参考Delphi本身的示例程序。
 
indy的确是delphi6/kylix的标准控件.

我一直在使用indy控件,谈一谈感想:
1、功能很齐全。几乎所有常见的协议都封装了!
2、indy的通讯是阻塞方式的,这点和以往的控件都不一样,所以使用时一定要注意;
对于大部分类似命令行交互的网络通讯,indy这种方式很方便---一旦你习惯了之后。
3、对协议封装的太好了,以至于我想自己干点什么都不容易。简单地说,就是一部
傻瓜相机,功能挺多,可是要拍夜景就非常麻烦---当然也不是不能,毕竟是有源代码
的,我就自己改了好几个indy的控件了。
4、似乎bug比以前的netmaster系列少多了,没有什么莫名其妙的问题。

上面的评论是针对独立的indy控件组的,delphi6里面带的我没用过,估计差不多。
 
谢谢 cwmdelpher的感想
希望有更多的人给点意见!!
谢谢
 
怎么都不说拉!!????
 
哪为有写过这样的论文啊,给点资料啊~~~~~
 
Indy控件更容易在多线程程序里使用,由于阻塞模式的代码可以放在一起,可以很方便的把这些代码包裹在线程里面来使用,而不象异步模式,需要针对不同的事件,设置不同的处理代码。

  为了兼顾简单可靠和高效,INDY是基于阻塞模式工作的。阻塞模式需要等待任务完成才返回,这样,当主线程里调用阻塞任务运行时,程序不能处理用户界面的消息。INDY提供了一个控件TidAntiFreeze来解决这个问题。只要在你的程序里,简单的填加一个TidAntiFreeze控件到任何地方(随便往FORM上放),不需要写任何代码(最多把超时时间改一下),就可以很好的解决用户界面不响应的问题。

  下面有两段示范代码,可以看出INDY控件的程序代码和其他使用异步模式的Internet控件的程序代码相比,是多么的简洁:

代码一:INDY控件的程序代码(IndyClient代表INDY控件的一般形式)

with IndyClient do begin
Connect;
Try
// 在这里写入你的处理代码
finally
Disconnect;
end;
end;

代码二:其他控件的程序代码(SocketComponent代表一般的Internet控件)

procedure TFormMain.TestOnClick(Sender: TComponent);
begin
with SocketComponent do begin
Connect; try
while not Connected do begin
if IsError then begin
Abort;
end;
Application.ProcessMessages;
OutData := 'Data To send';
while length(OutData) > 0 do begin
Application.ProcessMessages;
end;
finally Disconnect; end;
end;
end;

procedure TFormMain.OnConnectError;
begin
IsError := True;
end;

procedure TFormMain.OnRead;
var
i: Integer;
begin
i := SocketComponent.Send(OutData);
OutData := Copy(OutData, i + 1, MaxInt);
end;
 
大家帮帮忙分不够将另开帖给分
 
后退
顶部