![]() |
Die Irc KOmponente von Indy
hi,
gibt es ein tutorial zu der irc komponente von Indy? danke schon mal im voraus ISOFAIND |
Re: Die Irc KOmponente von Indy
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:
Verbindung trennen:
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);
Delphi-Quellcode:
Raum betreten:
if IdIRC1.Connected then
IdIRC1.Disconnect;
Delphi-Quellcode:
Ich weiß nicht mehr genau, was das macht, aber ich glaube, es überprüft, ob man sich in einem Channel befindet:
//Edit8: Channel; Edit9: Passwort zum Channel
//Passwort muss nicht angegeben werden, falls es keines gibt IdIRC1.Join(Edit8.Text, Edit5.Text);
Delphi-Quellcode:
Fehler anzeigen:
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;
Delphi-Quellcode:
Namen der leute im Channel ermitteln:
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;
Delphi-Quellcode:
Da gab es damals bei mir ein paar Probleme:
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; Neue Mitglieder erkennen:
Delphi-Quellcode:
Status von IRC anzeigen:
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;
Delphi-Quellcode:
IRC-Melungen empfangen:
procedure TForm1.IdIRC1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String); begin AddText('Chat-Status', AStatusText); end;
Delphi-Quellcode:
Beim Betreten irgendwie nochmal die Namen ermitteln, frag mich nicht, was ich da gemacht habe:
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;
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. |
Re: Die Irc KOmponente von Indy
ohh danke, super es klappt ;)
|
Re: Die Irc KOmponente von Indy
bei mir gibt es in der komponente weder onMessage noch onReceive...
benutze indy 10 für d7. was soll ich machen? ich will doch auch sachen empfangen..... EDIT: habs gefunden.... getresponse-methode. EDIT2: ne das kanns aber auhc nicht sein..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz