2010-09-12 73 views
1

我试图使用Indy组件编写Delphi 2010中的基本irc客户端。 我能够使用下面的示例A连接到我的irc服务器(unrealircd)。帮助需要使用Indy组件编写Delphi 2010中的IRC客户端

连接后我有许多程序应该在收到私人消息,ping,ctcp,通道模式等时执行操作,但它们从不对任何这些传入事件作出反应。

样本A: 当按钮4被按下时,它连接到IRC服务器。 它成功加入了指定名称的频道。

procedure TForm1.Button4Click(Sender: TObject); 
begin 
    IdIRC1.Host := '72.20.53.142'; 
    IdIRC1.Port := 6667; 
    IdIRC1.Nickname := ssh.frmmain.Edit1.text;//insert your nickname here 
    try 
    idIRC1.Connect; 
    except 
    if not idIRC1.Connected then 
     begin 
     Memo2.Lines.add('Error Connecting to ' + idIRC1.Host); 
     Exit; 
     end; 
    end; 
    Memo2.Lines.add ('Connected to Auth Server'); 
    idIRC1.Join(channel,key); 
    Memo2.Lines.add ('Auth Accepted'); 
end; 

这些事件根本不起作用,在编译过程中不会产生错误。

procedure TForm1.IdIRC1Connected(Sender: TObject); 
begin 
    memo2.Lines.Clear; 
    memo2.Lines.add ('2Connected'); 
end; 

procedure TForm1.IdIRC1ServerVersion(ASender: TIdContext; Version, Host, Comments: String); 
begin 
memo2.Lines.Add(Version +'Host '+Host+'Comments '+Comments); 
end; 
+0

你的意思是你的事件处理程序从不被调用?确保它们与对象中的事件相关联。 – 2010-09-13 14:01:31

+1

如果在调用Connect()之前分配了'OnConnected'事件,则会触发'OnConnected'事件。所以我和PA在假设你的事件处理程序实际上没有正确连接。 – 2010-09-13 19:59:25

回答

1

Ive有几个人看这个,它只是似乎那里有毁坏我的Tclientsocket构件实现IRC的设置,即使我搬到印第安纳波利斯和使用的样本从官方网站,我仍然无法一些Unicode的问题得到任何东西,如onconnect事件。

一个朋友有一个他在Delphi 2010中使用相同版本的indy编写的应用程序的副本,我设法导入他的项目并开始工作。

不知道为什么