Moin Matthias,
statt
Delphi-Quellcode:
procedure TForm1.ServerSocket2ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var nick: string;
i: integer;
begin
nick:=Socket.ReceiveText;
for i:=0 to ListBox2.Items.Count -1 do
begin
if ListBox2.Items.Strings[i] = nick then
ListBox2.Items.Delete(i);
end;
end;
geht's auch so:
Delphi-Quellcode:
procedure TForm1.ServerSocket2ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var
i: integer;
begin
i := ListBox2.Items.IndexOf(Socket.ReceiveText);
if i <> -1 then ListBox2.Items.Delete(i);
end;
Abgesehen davon, dass Deine Version auch funktionieren müsste.
Übrigens kannst Du statt
ListBox2.Items.Strings[i]
auch
ListBox2.Items[i]
schreiben.
[EDIT]
Falsch ist Deiner Abfrage eigentlich nichts, nur dass die Schreibweise exakt übereinstimmen muss, bei IndexOf wird Gross-/Kleinschreibung nicht unterschieden.
[/EDIT]