Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 为什么赢了';t TIdIRC连接到通道?有更好的组件吗?_Delphi_Client_Irc_Indy_Channel - Fatal编程技术网

Delphi 为什么赢了';t TIdIRC连接到通道?有更好的组件吗?

Delphi 为什么赢了';t TIdIRC连接到通道?有更好的组件吗?,delphi,client,irc,indy,channel,Delphi,Client,Irc,Indy,Channel,我一直在与谷歌的垃圾文档作斗争,无法让程序加入频道,即使它与服务器连接良好。(表示已连接到服务器) 一旦我关闭表单,就会出现一个错误,显示: Project raised exception class EIdException with message 'Not Connected' 此外,一旦连接,我使用什么功能在通道上通话/检查输入? Delphi应用程序还有哪些其他IRC连接选项(组件) 任何帮助都将不胜感激,谷歌在这方面真的什么都没有。 我只想能够连接/查看频道聊天信息并在聊天室中聊

我一直在与谷歌的垃圾文档作斗争,无法让程序加入频道,即使它与服务器连接良好。(表示已连接到服务器)

一旦我关闭表单,就会出现一个错误,显示:

Project raised exception class EIdException with message 'Not Connected'
此外,一旦连接,我使用什么功能在通道上通话/检查输入? Delphi应用程序还有哪些其他IRC连接选项(组件)

任何帮助都将不胜感激,谷歌在这方面真的什么都没有。
我只想能够连接/查看频道聊天信息并在聊天室中聊天;通过IRC的简单字符串IO…

猜测您没有满足所有服务器要求。只是IdIrc.Connect不够,这对我来说很有用:

FIRC.Host:= 'irc.freenode.org';
FIRC.Port := 6667;
FIRC.Username:= 'SapoIndy';
FIRC.Nickname:= 'SapoIndy';
FIRC.RealName:= 'Fabio Gomes';
FIRC.Connect;

FIRC.Join('#TheChannel');
为了弄清楚发生了什么,您需要获得一些事件的输出,我已经实现了这些:

FIRC.OnStatus:= @Status;
FIRC.OnNotice:= @Notice;
FIRC.OnMOTD:= @MOTD;
启动一些事件,您应该了解服务器在告诉您什么,不要进行反复试验

关于发送和接收消息,我不久前已经实现了其中的一些,这是一个项目,它是使用Lazarus制作的

不要在
OnConnected
事件中调用
Join()
。该事件仅仅意味着建立了底层套接字连接
Connect()
仍在运行,并且在触发
OnConnected
事件时尚未实际登录到IRC服务器。在发出任何命令之前,请等待
Connect()
退出:

procedure TForm2.FormCreate(Sender: TObject); 
begin 
  IdIRC1.Connect; 
  ShowMessage('Connected to server'); 
  IdIRC1.Join('#TheChannel', 'password'); 
end; 

在有人问你一些细节或张贴答案之前;你可以提供的参考资料。
procedure TForm2.FormCreate(Sender: TObject); 
begin 
  IdIRC1.Connect; 
  ShowMessage('Connected to server'); 
  IdIRC1.Join('#TheChannel', 'password'); 
end;