Hola.
No podes pintar de ese modo un ítem de un
TListBox, debes usar el evento
OnDrawItem. Te pongo un ejemplo que muestra los items en fonts de diferentes colores:
Código PHP:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
String s[6] = {"uno","dos","tres","cuatro","cinco"};
for(int i = 0; i < 6; i++)
ListBox1->Items->AddObject(s[i], (TObject*)0);
}
void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,
TRect &Rect, TOwnerDrawState State)
{
TListBox *LB = static_cast<TListBox*>(Control);
if ((int)LB->Items->Objects[Index])
LB->Canvas->Font->Color = (TColor)LB->Items->Objects[Index];
LB->Canvas->FillRect(Rect);
LB->Canvas->TextRect(Rect, Rect.left, Rect.top, LB->Items->Strings[Index]);
}
// ListBox1 OnDblClick: cambia color de los items
void __fastcall TForm1::ListBox1DblClick(TObject *Sender)
{
TColor cl[5] = {clRed, clYellow, clLime, clBlue, clBlack};
TListBox *LB = ListBox1;
LB->Items->Objects[LB->ItemIndex] = (TObject*) cl[rand() % 5];
ListBox1->Invalidate();
}
Salida:
Saludos
