![]() |
Indy IRC List
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:
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...
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; Weiss jmd. vll Rat, das ich alle auf dem Netzwerk verfügbaren Channels in einer Listbox speichern kann? MFG |
Re: Indy IRC List
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 ![]() Grüße und noch ein schönes Weihnachtsfest Klaus |
Re: Indy IRC List
Hallo nochmal,
also um /LIST aufzurufen , habe ich folgenden Code verwendet:
Delphi-Quellcode:
und in dem IdIRCList Event steht folgender Code:
procedure TForm1.Button6Click(Sender: TObject);
begin IdIRC1.Raw('LIST'); end;
Delphi-Quellcode:
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.
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; 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 |
Re: Indy IRC List
Guten Morgen,
Delphi-Quellcode:
Was passiert denn, wenn in string1 kein Leerzeichen steht,
string2:=Copy(string1,0,pos(' ',string1));
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:
Grüße
procedure TForm1.IdIRC1List(Sender: TObject; AChans: TStringList;
APosition: Integer; ALast: Boolean); begin listbox1.Items.Assign(AChans); end; Klaus |
Re: Indy IRC List
Vielen Dank, funtioniert so einwandfrei ;-), nun nur noch umwaneln und gut ist.
MFG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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