Delphi 7 indy IRC

0

Witam chciałbym napisać klienta irc lecz klient łączy się z serwer ale nie wchodzi na kanał i nie wiem w czym tkwi problem. z góry dziękuję za pomoc.

0

A my z góry dziękujemy za kod, którym nas nie uraczyłeś - bo jak zapewne wszyscy już wiedzą, 4p to forum dla wróżek, które z ilości liter w pytaniu zgadują co w kodzie nie gra... I z dołu dziękujemy za skorzystanie z naszej szklanej kuli...

0

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdIRC;

type
TForm1 = class(TForm)
irc: TIdIRC;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Memo1: TMemo;
Memo2: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure ircMessage(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String);
procedure ircConnect(Sender: TObject);
procedure ircConnected(Sender: TObject);
procedure ircJoined(Sender: TObject; AChannel: TIdIRCChannel);
procedure ircJoin(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
irc.Nick:= edit1.Text;
irc.AltNick:= edit2.Text;
irc.RealName:= edit3.Text;
irc.Host:= edit4.Text;
irc.Port:= strtoint(edit5.Text);
irc.Password:= edit9.Text;
irc.Connect(0);
irc.Join('search.pl');

end;

procedure TForm1.ircMessage(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String);
begin
memo1.Lines.Add(auser.Nick+': '+content);
end;

procedure TForm1.ircConnect(Sender: TObject);
begin
Memo2.lines.add('Polaczono')
end;

procedure TForm1.ircJoined(Sender: TObject; AChannel: TIdIRCChannel);
begin
Memo2.Lines.add('Dolaczono do kanalu');
end;

procedure TForm1.ircJoin(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel);
begin
Memo2.lines.add('Polonczono');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
irc.Join('#search.pl');
end;

end.

0

Taaa - ja też nieraz w pośpiechu sobie w komentarzach dla siebie albo komunikatach do testów używam "u" zamiast "ł",
ale takie orty robić w kodzie, który się publicznie wkleja, to po prostu żenada. Poza tym kod niesformatowany i widać,
że wygoglowaleś go chyba z h4x0rskiego tutoriala. Ja doradzę tyle, nie robić tego pod Indy, bo mi się pod dziesiątką w
ogóle nie chce z QuakeNetem ani IrcNetem połaczyć. Poza tym Indy, o ile wiem w ogóle nie wspiera identd co powoduje,
że klient łączy się bardzo wolno. Obsluga zdarzeń też w przypadku IDIrc jest do d... Polecam użyć pakietu Vortex, wspiera
identd, działa dobrze, nie wywalając nagle jakiś dziwnych wyjątków AV, a na kanał wchodzi oraz wychodzi bez żadnych
problemów i ma wiele dodatkowych zdarzeń - na przykład pozwala dokładnie stwierdzić, w którym momencie skonczyło
się pokazywać MOTD serwera czyli, że faktycznie już na nim jesteśmy. Korzystałem z ów pakietu dawno, pierwszy i póki
co jedyny raz w swoim projekcie i jestem zadowlony. Jednak jeżeli się upierasz przy Indy, to może ktoś inny tutaj Tobie
coś więcej pomoże, bo ja może przez późną porę nie potrafię ogarnąć IDIrc z pod Indy 10.X, a na próbę uruchomiłem
projekt z użyciem Vortexa i wszystko jest ok. Pakiet jest na torry.net, a dodatkowe minimalne wymagane moduły przez
pakiet można wygooglować. Potrzebne są, z tego co widzę tylko: wsocket.pas oraz używany przez niego wsockbuf.pas.

0

@olesio:
Dlaczego korzystasz z Indy 10? Przecież to jeszcze nie jest stabilna wersja, a potem się dziwisz na AV.
Ja korzystam z 9-tki i jakoś problemów nie mam. Fakt że wolno się łączy i to jest wkurwiające. Natomiast po połączeniu wszystko śmiga znakomicie.

0

@Ktoś: ja 10tkę zainstalowałem tylko na próbę, bo coś sprawdzalem z serwerami SMTP oraz HTTP, normalnie do
obslugi HTTP oraz FTP używam, zniewidzonego przez niektórych tutaj Synapse i mi wystarcza. Innych serwerów i
klientów dla innych protokolów, w sumie nie potrzebuje. A do IRC'a szczerze polecam wspomniany pakiet Vortex.

0

hmm. Zna może ktoś odpowiedz na to pytanie? konkretną co trzeba zrobić?

0

No przecież pisałem ja i poprzednicy. Jak nie zadziala nawet pod dziewiątką - to po co się meczyć i w miejscu stać z projektem
("ja z projektem stoje", to chyba z tekstu Monopolu ;)) jak mozna użyć Vortexa. Wygooglujesz dużo informacji na jego temat.

0

a skąd mógłbym pobrać vortexa?

0

Bardzo ciężka sprawa, bo dranie ukrywają w ogóle jego istnienie, ale spróbuj tutaj http://tinyurl.com/4p4qcv2, tylko pamiętaj, to wielka tajemnica...

0

szukałem cały dzień w googlach....

1

No to masz te popsute google, co zhackowali ci sami co hackują teraz rządowe, egipskie strony www. Przecież wyraźnie już napisałem
wcześniej: torry,net. Z popsutym google oraz problemami z czytaniem - to ja cienko widzę czy Ty tego klienta IRC napiszesz w ogóle.

0
olesio napisał(a)

No to masz te popsute google, co zhackowali ci sami co hackują teraz rządowe, egipskie strony www.

Tym razem byłeś szybszy! Chciałem coś w tym stylu napisać.

Hurra, moje google działa - znalazło bez problemu!!! A ponieważ twoje jest aż tak felerne, załączam plik do tego postu. I marnie wróżę twoim przyszłym kontaktom z programowaniem :}

0

To ja dodam, że do prawidlowego dzialania Vortexu i użycia go w sposób dynamiczny, ktory preferuje
pomimo że Delphi 7 Personal, ktorego używam pozwala oczywiście instalować komponenty, ale lepiej
użyć niestandardowych dynamicznie wtedy nasze źródło łatwo skompilujemy u kogoś innego, jeżeli w
katalogu z projektem dołaczymy potrzebne pliki, potrzeba modułów vortex.pas i vortexchannels.pas.
Natomiast by owe moduły skompilować potrzebne są dwa inne, które dołączyłem do tego posta. No z
taką porcją ułatwień oraz szukaniem za Ciebie to dalej kombinuj sam. Bo masz problem z banałami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1