Wenn du nur die zwei festen Farben hast dann versuch es mal so:
Delphi-Quellcode:
procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
if Index > 0 then
begin
if ExtractFileExt(ListBox1.Items[Index - 1]) = ExtractFileExt(ListBox1.Items[Index]) then // geändert
begin
// Farbe für gleich setzten
end
else
begin
// Farbe für ungleich setzten
end;
end
else
begin
if Index = 0 then
begin
// Farbe für erstes Element setzten
end;
end;
end;
Man braucht da nicht unbedingt ein Objekt.