AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy IRC List

Ein Thema von goenner90 · begonnen am 25. Dez 2008 · letzter Beitrag vom 26. Dez 2008
Antwort Antwort
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#1

Indy IRC List

  Alt 25. Dez 2008, 03:27
Hallo,

ich möchte gern in einem Selbstgeschriebenen IRC Clienten die verfügbaren Räume auf dem Netzwerk auflisten lassen. Dies habe ich nun wie folgt versucht.

Delphi-Quellcode:
procedure TForm1.IdIRC1List(Sender: TObject; AChans: TStringList;
  APosition: Integer; ALast: Boolean);
var i:integer;
begin
  for i:=0 to AChans.Count-1 do
    ListBox1.Items.Add(AChans.Names[i]);
end;
Ich bin mir nicht ganz sicher ob AChans.Names soweit stimmt, und desweiteren , habe ich getestet ob er IdIRCList überhaupt aufruft, einmal memo1.lines.add('List Aufruf') in der Prozedur mit aufgerufen und dann connected, leider ruft er es nicht auf...

Weiss jmd. vll Rat, das ich alle auf dem Netzwerk verfügbaren Channels in einer Listbox speichern kann?

MFG
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Indy IRC List

  Alt 25. Dez 2008, 13:42
Hallo Goenner90,

das folgende deutet darauf hin, dass erst nach einem /LIST Befehl
das Ereignis onList ausgelöst wird.

Code:
    OnChannelMode        The channel mode is now set.
    OnLinks              Results from a /LINK command
    OnList               Results from a /LIST command
Quelle

Grüße und noch ein schönes Weihnachtsfest
Klaus
Klaus
  Mit Zitat antworten Zitat
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Indy IRC List

  Alt 25. Dez 2008, 20:52
Hallo nochmal,

also um /LIST aufzurufen , habe ich folgenden Code verwendet:

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
  IdIRC1.Raw('LIST');
end;
und in dem IdIRCList Event steht folgender Code:

Delphi-Quellcode:
procedure TForm1.IdIRC1List(Sender: TObject; AChans: TStringList;
  APosition: Integer; ALast: Boolean);
var
  i:integer;
  string1,string2:string;
begin
  for i:=0 to AChans.Count-1 do begin
    string1:=achans.names[i];
    string2:=Copy(string1,0,pos(' ',string1));
    listbox1.Items.Add(string2);
  end;
end;
Dieser Code funktionier soweit, er lässt sich ausführen, jedoch erhalte ich in der Listbox nur 4 Channelnamen und etliche leere Zeilen. Auf dem Netzwerk sind aber 54 Channels, womit das also schonmal nicht hinhauen kann.

Ich wäre sehr froh, wenn jmd. den Code mal testen könnte, und evtl einen Lösungsvorschlag parat hätte, da ich langsam aber sicher am verzweifeln bin.

MFG
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Indy IRC List

  Alt 26. Dez 2008, 09:59
Guten Morgen,

string2:=Copy(string1,0,pos(' ',string1)); Was passiert denn, wenn in string1 kein Leerzeichen steht,
dann gibt pos(' ',string1) 0 zurück.
Wie groß wird dann string2 werden?

Ist es denn nicht so, dass pro Zeile der StringList ein Channel eingetragen ist?
Wenn dem so sein sollte, dann kann Dein Konstrukt auch so aussehen:

Delphi-Quellcode:
procedure TForm1.IdIRC1List(Sender: TObject; AChans: TStringList;
  APosition: Integer; ALast: Boolean);

begin
  listbox1.Items.Assign(AChans);
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Indy IRC List

  Alt 26. Dez 2008, 11:08
Vielen Dank, funtioniert so einwandfrei , nun nur noch umwaneln und gut ist.

MFG
  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 02:35 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