1

我正在尝试使用 Indy 组件在 Delphi 2010 中编写一个基本的 irc 客户端。我可以使用下面的示例 A 连接到我的 irc 服务器(unrealircd)。

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

示例 A:当 button4 被按下时,它连接到 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;
4

1 回答 1

1

我有几个人看过这个,似乎有一些 unicode 问题破坏了我的 TClientSocket irc 设置,即使当我搬到 indy 并使用官方网站上的示例时,我仍然无法触发任何东西,例如onconnect 事件。

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

不知道为什么

于 2010-09-19T16:49:16.363 回答