Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IRC Userliste aktualisieren -> wiedermal... (https://www.delphipraxis.net/40744-irc-userliste-aktualisieren-wiedermal.html)

kurtm1 20. Feb 2005 13:46


IRC Userliste aktualisieren -> wiedermal...
 
Suchfunktion habe ich bereits benutzt, liefert aber auch keine Lösung.

Wie kann ich eine Userliste von der IRC Komponente von INDY 9 bekommen die immer aktualisiert wird?

thx

Pseudemys Nelsoni 20. Feb 2005 13:50

Re: IRC Userliste aktualisieren -> wiedermal...
 
das musst du natürlich selbst tun (OnJoin, OnPart, OnQuit)

kurtm1 20. Feb 2005 15:14

Re: IRC Userliste aktualisieren -> wiedermal...
 
Kannst du mir mal ein paar Denkanstöße dazu geben?

Bis jetzt habe ich folgendes:

Delphi-Quellcode:
procedure TForm1.IdIRC1Names(Sender: TObject; AUsers: TIdIRCUsers;
  AChannel: TIdIRCChannel);
var b:Byte;
begin
  lbxUserOnline.Clear;
        for b:=0 to IDIRC1.Users.Count-1 do
        lbxUserOnline.Items.Add(IDIRC1.Users.Items[b].Nick);
end;
Delphi-Quellcode:
procedure TForm1.IdIRC1Join(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel);
begin
        lbxUserOnline.Items.Add(AUser.Nick);
end;
Bei welchem Ereignis kann ich den User, der weggeht, wieder aus der Listbox löschen?

thx

Äfan 20. Feb 2005 15:18

Re: IRC Userliste aktualisieren -> wiedermal...
 
Das müsste mit OnQuit gehen, also z.B.:

Delphi-Quellcode:
procedure TForm1.IdIRC1Quit(Sender: TObject; AUsers: TIdIRCUsers;
  AChannel: TIdIRCChannel);
var b:Byte;
begin
  lbxUserOnline.Clear;
        for b:=0 to IDIRC1.Users.Count-1 do
        lbxUserOnline.Items.Add(IDIRC1.Users.Items[b].Nick);
end;
MFG

kurtm1 20. Feb 2005 15:21

Re: IRC Userliste aktualisieren -> wiedermal...
 
Das hatte ich auch gedacht, aber es funzt nicht, es passiert dann nichts...

kurtm1 20. Feb 2005 15:29

Re: IRC Userliste aktualisieren -> wiedermal...
 
ich arbeite noch dran, aber wenn ich es habe bekommt ihr den code...

//EDIT: Ich habs jetzt so gelöst:
Delphi-Quellcode:
procedure TForm1.IdIRC1Names(Sender: TObject; AUsers: TIdIRCUsers;
  AChannel: TIdIRCChannel);
var b:Byte;
begin
        for b:=1 to IDIRC1.Users.Count-1 do
        lbxUserOnline.Items.Add(IDIRC1.Users.Items[b-1].Nick);
end;


procedure TForm1.IdIRC1Join(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel);
begin
        lbxUserOnline.Items.Add(AUser.Nick);
end;


procedure TForm1.IdIRC1Quit(Sender: TObject; AUser: TIdIRCUser);
var b:Byte;
begin
        for b:=0 to lbxUserOnline.Items.Count-1 do
        If(pos(AUser.Nick,lbxUserOnline.Items[b]))<>0 then
        begin
        lbxUserOnline.Items.Delete(b);
        exit;
        end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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