Ver Mensaje Individual
  #2  
Antiguo 28-05-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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 06i++)
    
ListBox1->Items->AddObject(s[i], (TObject*)0);
}


void __fastcall TForm1::ListBox1DrawItem(TWinControl *Controlint Index,
      
TRect &RectTOwnerDrawState 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(RectRect.leftRect.topLB->Items->Strings[Index]);
}

// ListBox1 OnDblClick: cambia color de los items
void __fastcall TForm1::ListBox1DblClick(TObject *Sender)
{
  
TColor cl[5] = {clRedclYellowclLimeclBlueclBlack};

  
TListBox *LB ListBox1;
  
LB->Items->Objects[LB->ItemIndex] = (TObject*) cl[rand() % 5];
  
ListBox1->Invalidate();

Salida:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 29-05-2020 a las 05:05:00. Razón: agregar comentario al código
Responder Con Cita