var
    Offset: Integer;
begin
    with (Control as TListbox).Canvas do
    begin
        FillRect(Rect);
        begin
            imagelist1.draw((Control as TListbox).Canvas,Rect.Left + 2,Rect.Top + 2,Index);
            Offset := 16 + 8;
            (Control as TListbox).Canvas.Font.color:=yourfontcolor;
            TextOut(Rect.Left + Offset, Rect.Top + 2, (Control as TListbox).Items[Index])
        end;
    end;
end;yourfontcolor为全局变量,你在改时就修改这个变量,然后 listbox1.Invalidate