Hallo, herzlich Willkommen!
In diesem Beitrag geht es um die
Indy IRC-Komponente
Du kannst sie hier downloaden.
Mann, war ich doof, da sind doch noch die 9er!
Fangen wir an:
Zuerst, ziehe eine Iindy-
IRC Komponente (IdIRC) auf das Formular
Dann sollte im Form.Create folgendes stehen:
Delphi-Quellcode:
IdIRC1.Nick:='
MyNick';
// Legt den Nick fest
IdIRC1.Host:='
irc.server.org';
// Gibt den Server an
IdIRC1.Port:=6667;
//Irc Port
Damit legst du die Einstellungen für das Verbinden fest.
Nun, müssen wir uns nur noch verbinden:
Ziehe einen Button auf das Formular, und erstelle ein OnClick Ereignis
Caption sollte 'Verbinden' lauten
Folgender Code kommt hinein:
Delphi-Quellcode:
try //versuche
IdIRC1.Connect(); //zu verbinden
except //wenn Fehler
showMessage('Fehler beim Verbinden!'); //Meldung zeigen
end;
Du solltest einen Button erstellen, mit folgendem Code im Ereignis onClick:
IdIRC1.Join('#lima-city');
Nun kannst du schon Verbinden und einen Channel joinen.
Damit aber später aber auch Nachrichten angezeigt werden, solltest du noch eine Memo-Komponente auf das Formular ziehen.
Dann musst du noch zwei Ereignisse, OnReceive und OnMessage, hinzufügen
OnReceive (Bei mit hat es nur mit diesem zusätzlichen Ereignis geklappt):
Memo1.lines.add(ACommand); //zum Memo hinzufügen
OnMessage:
Memo1.lines.add(AUser.Nick+': '+Content); // Nachricht in Form Nick: Nachricht zum Memo hinzufügen
Jetzt kannst du schon Nachrichten empfangen, fehlt nur noch das Schreiben:
Ziehe eine Edit- und eine Button-Komponente auf das Formular.
Die Button-Komponente bekommt die Caption "Senden".
Die OnClick-Ereignis Routine lautet:
Delphi-Quellcode:
IdIRC1.Say('#CHANNEL',Edit1.Text); //Nachricht zum Channel schicken
Memo1.Lines.Add(IdIRC1.Nick+': '+Edit1.Text); //Zum Memo hinzufügen, denn durch eigene Nachrichten wird das OnMessage-Ereignis nicht ausgelöst
Damit kannst du jetzt Nachrichten empfangen und senden.
Schreibe in das OnClose Ereignis des Formulars:
IdIRC1.Disconnect(); //Zum stoppen
Zusatzcode:
Erstelle eine Listbox.
Erstelle das OnNames Ereignis und schreibe dorthin:
Delphi-Quellcode:
var
i: integer;
//begin
for i:=0 to AUsers.Count-1 do //führe sooft aus wie User im Channel sind
ListBox1.Items.Add(AUsers.Items[i].Nick); //Adde diese zu ListBox
//end
Nun hast du schon einen funktionierenden
IRC-Client.
Tipp: Baue einen
IRC-Bot, du brauchst nur den Content bei OnMessage überprüfen!