Я пытаюсь закодировать базовый клиент irc в Delphi 2010, используя компоненты Indy. Я могу подключиться к своему irc-серверу (unrealircd), используя пример A ниже.
После подключения у меня есть много процедур, которые должны выполнять действия, когда он получает личное сообщение, ping, ctcp, режимы канала и т. д., но они никогда не реагируют ни на одно из этих входящих событий.
Пример A: подключается к IRC-серверу при нажатии кнопки 4. Он успешно присоединяется к каналу с указанным именем.
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;
OnConnected
гарантировано будет запущено, если оно было назначено до вызова Connect(). Так что я согласен с PA, предполагая, что ваши обработчики событий на самом деле не подключены правильно. - person Remy Lebeau   schedule 13.09.2010