Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#4

Re: Useranzahl per Indy ermitteln

  Alt 2. Jun 2009, 13:05
Hi,

Zitat von Linguini:
Irgendwie hilft mir das nichts...

Selbst wenn ich ListChannelNicknames in einem OnNicknamesListReceived/OnServerUsersListReceived aufrufe, bleibt der Targetstring trotzdem leer.

Auch mit der Methode:

Delphi-Quellcode:
var
i: integer;
//begin
for i:=0 to AUsers.Count-1 do //führe sooft aus wie User im Channel sind
ListBox1.Items.Add(AUsers.Items[i].Nick); //Adde diese zu ListBox
//end
In einem OnServerUsersListReceived Event passiert nichts, da er das "Items" nicht kennt...
Das fettgedruckte oben ist schonmal ziemlich verkehrt.

Du rufst im normalen Code die Funktion ListChannelNicknames auf. Indy ruft dann, sobald die Antwort da Deinen Methode auf (die z.B. OnNicknamesListReceived zugewiesen wurde). Du rufst jetzt die Funktion zum Aufrufen in der Methode selbst auf... Das kann doch nicht gehen.

Items: AUsers ist vom Typ TStrings. Das kennt keine Items. Ich habe auch nie gesagt, daß es so funktioniert und man da Items verwenden soll... In der Hilfe von Delphi findest Du unter dem Begriff TStrings alles zum Zugriff erklärt. Da findet man z.B. ein .Strings[Index: Integer].

In Deinem Fall also
Delphi-Quellcode:
var
i: integer;
//begin
for i:=0 to AUsers.Count-1 do //führe sooft aus wie User im Channel sind
  ListBox1.Items.Add(AUsers.Strings[i]); //Adde diese zu ListBox
//end
Das ist übrigens genau das, was ich im anderen Thread meinte. Es wird so schnell gesagt, Indy hat oder macht Probleme. Das stimmt ja sichtbar nicht... Indy und Delphi können beide nicht hellsehen, die richtige Umsetzung liegt ausschließlich am Programmierer.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat