Dein Fehler müsste da liegen:
for Counter := 0 to listbox1.Items.IndexOf(Nick) do
Du willst doch die Position von Nick in sl1 oder sl2 wissen und nicht in Listbox1.
Ich hätte das ohne Schleife gelöst (bin mir aber nicht sicher ob das so klappt):
Delphi-Quellcode:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
AContent: String; var Suppress: Boolean);
var
Mode, Nick: string;
Counter: integer;
bmp: TBitmap;
begin
Mode := Copy(acontent, 14, 2); // Nick aus "acontent" auslesen
Nick := Copy(acontent, LastDelimiter(' ' , acontent)+1, length(acontent)); // Mode aus "acontent" auslesen
if Mode = '+a' then // Wenn mode "+a" ist
begin
sl2.Delete(s12.Items.IndexOf(Nick));
sl1.AddObject(Nick, image10.Picture.Bitmap);
ListBox1.Clear;
listbox1.Items.AddStrings(sl1);
listbox1.Items.AddStrings(sl2);
end;
if Mode = '-a' then // Wenn mode "-a" ist
begin
sl1.Delete(s11.Items.IndexOf(Nick));
sl2.AddObject(Nick, image10.Picture.Bitmap);
ListBox1.Clear;
listbox1.Items.AddStrings(sl1);
listbox1.Items.AddStrings(sl2);
end;
end;
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!