Ein Tutorial kenne ich nicht, aber ich habe das dmals durch AUsprobieren im Großen und Ganzen hinbekommen, so schwer ist das nicht, hier mal ein paar Auszüge (es kann sehr schlechter Code sein, da das schon eine ganze Weile her ist):
Daten zuweisen und verbinden:
Delphi-Quellcode:
IdIRC1.Nick := Edit1.Text;
IdIRC1.AltNick := Edit2.Text;
IdIRC1.RealName := Edit6.Text;
IdIRC1.Username := Edit7.Text;
IdIRC1.Host := Edit3.Text;
IdIRC1.Port := StrToInt(Edit4.Text);
IdIRC1.Password := Edit5.Text;
IdIRC1.Connect(3000);
Verbindung trennen:
Delphi-Quellcode:
if IdIRC1.Connected then
IdIRC1.Disconnect;
Raum betreten:
Delphi-Quellcode:
//Edit8: Channel; Edit9: Passwort zum Channel
//Passwort muss nicht angegeben werden, falls es keines gibt
IdIRC1.Join(Edit8.Text, Edit5.Text);
Ich weiß nicht mehr genau, was das macht, aber ich glaube, es überprüft, ob man sich in einem Channel befindet:
Delphi-Quellcode:
procedure TForm1.IdIRC1System(Sender: TObject; AUser: TIdIRCUser;
ACmdCode: Integer; ACommand, AContent: String);
begin
if ACmdCode = 376 then
//Button zum Betreten deaktivieren / aktivieren
SpeedButton3.Enabled := true else
SpeedButton3.Enabled := false;
end;
Fehler anzeigen:
Delphi-Quellcode:
procedure TForm1.IdIRC1Error(Sender: TObject; AUser: TIdIRCUser; ANumeric,
AError:
String);
begin
if AError = '
10049'
then
Application.MessageBox('
Sie haben eine ungültige Adresse eingegeben.' +
'
Beachten sie bitte, dass eine IP - Adresse folgender schreibweise unterliegt.' + '
XXX.XXX.XXX.XXX'
+ #10#13 + '
z.B.: 172.0.0.1', '
Hinweis', 64);
if AError = '
10061'
then
Application.MessageBox('
Die Serveranwendung läuft nicht auf dem angegebenen Server, oder die Portnummer ist falsch.!', '
Hinweis', 64);
if AError = '
10065'
then
Application.MessageBox('
Es besteht keine Verbindung zum Netz.', '
Hinweis', 64);
end;
Namen der leute im Channel ermitteln:
Delphi-Quellcode:
procedure TForm1.IdIRC1Names(Sender: TObject; AUsers: TIdIRCUsers;
AChannel: TIdIRCChannel);
var i: integer;
begin
Listbox1.Clear;
for i := 0 to IDIRC1.Users.Count - 1 do
Listbox1.Items.Add(IDIRC1.Users.Items[I].Nick);
end;
Da gab es damals bei mir ein paar Probleme:
Neue Mitglieder erkennen:
Delphi-Quellcode:
procedure TForm1.IdIRC1Joined(Sender: TObject; AChannel: TIdIRCChannel);
var i: integer;
begin
Listbox1.Clear;
for i := 0 to IDIRC1.Users.Count - 1 do
Listbox1.Items.Add(IDIRC1.Users.Items[I].Nick);
end;
Status von IRC anzeigen:
Delphi-Quellcode:
procedure TForm1.IdIRC1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
AddText('Chat-Status', AStatusText);
end;
IRC-Melungen empfangen:
Delphi-Quellcode:
procedure TForm1.IdIRC1Receive(Sender: TObject; ACommand: String);
begin
//konnte man bei mir deaktivieren, weil das unheimlich nervt *g*
if CheckBox1.Checked then
AddText('Chat-Meldung', ACommand);
end;
Beim Betreten irgendwie nochmal die Namen ermitteln, frag mich nicht, was ich da gemacht habe:
Delphi-Quellcode:
procedure TForm1.IdIRC1Join(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel);
var i: integer;
begin
Listbox1.Clear;
for i := 0 to IDIRC1.Users.Count - 1 do
Listbox1.Items.Add(IDIRC1.Users.Items[I].Nick);
end;
Also das ist nur mal so grob, aber für den Anfang und zum Chatten dürfte es reichen.