AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Die Irc KOmponente von Indy
Thema durchsuchen
Ansicht
Themen-Optionen

Die Irc KOmponente von Indy

Ein Thema von -homer- · begonnen am 8. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
-homer-

Registriert seit: 1. Aug 2003
Ort: Düsseldorf
339 Beiträge
 
Delphi 7 Personal
 
#1

Die Irc KOmponente von Indy

  Alt 8. Apr 2005, 07:54
hi,

gibt es ein tutorial zu der irc komponente von Indy?
danke schon mal im voraus


ISOFAIND
Aaron B.
www.fainds-production.de.vu wir schreiben deine Programme, entwickeln Cs Movies... Suchen Member

Melden bei ISOF "ISOFAIND"... ICQ: 318117464
#FAINDs
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Die Irc KOmponente von Indy

  Alt 8. Apr 2005, 09:36
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 = '10049then
    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 = '10061then
    Application.MessageBox('Die Serveranwendung läuft nicht auf dem angegebenen Server, oder die Portnummer ist falsch.!', 'Hinweis', 64);

  if AError = '10065then
    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.
  Mit Zitat antworten Zitat
-homer-

Registriert seit: 1. Aug 2003
Ort: Düsseldorf
339 Beiträge
 
Delphi 7 Personal
 
#3

Re: Die Irc KOmponente von Indy

  Alt 8. Apr 2005, 13:02
ohh danke, super es klappt
Aaron B.
www.fainds-production.de.vu wir schreiben deine Programme, entwickeln Cs Movies... Suchen Member

Melden bei ISOF "ISOFAIND"... ICQ: 318117464
#FAINDs
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Die Irc KOmponente von Indy

  Alt 9. Apr 2005, 15:55
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.....
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz