Необходима е помощ за кодиране на IRC клиент в Delphi 2010 с помощта на Indy Components

Опитвам се да кодирам основен 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;

person Alex    schedule 12.09.2010    source източник
comment
искате да кажете, че вашите манипулатори на събития никога не се извикват? уверете се, че те са свързани със събитията в обекта.   -  person PA.    schedule 13.09.2010
comment
събитието OnConnected е гарантирано, че ще бъде задействано, ако е било присвоено преди извикването на Connect(). Така че аз съм с PA в предположението, че вашите манипулатори на събития всъщност не са свързани правилно.   -  person Remy Lebeau    schedule 13.09.2010


Отговори (1)


Накарах няколко души да разгледат това и изглежда, че има някои проблеми с unicode, които унищожиха моята irc настройка на TClientSocket, и дори когато преминах към indy и използвах проби от официалния сайт, все още не успях да накарам нещо да задейства, като например събитие при свързване.

Един приятел имаше копие на приложение, което написа в Delphi 2010, използвайки същата версия на indy и успях да импортирам проекта му и той започна да работи.

Не знам защо

person Alex    schedule 19.09.2010