Wenas una vez más, sobre lo de :
Cita:
tu código nunca llama al evento OnCustomDrawItem. En este evento deben estar las "instrucciones" necesarias para pintar cada celda
|
es mas o menos lo que intentaba decir, me explico, el listview que tengo creado está en un Form1 asociado a su respectivo Unit1, y en dicho Unit crearía el evento OnCustomDrawItem para poder colorear las filas, hasta ahí de acuerdo.
pero, el problema es que mi variable a tener en cuenta para pintar de un color u otro las filas de listview está dentro de un thread alojado en otro unit, ese thread se comporta como un bucle for, que, en cada iteración va cambiando la variable en cuestión, por tanto la forma que veo de colorear las filas del listview sería en el mismo Unit donde tengo el thread, por tanto no podría usar el evento OnCustomDrawItem.
he intentado algo como:
Código:
void __fastcall ThreadPackets::Execute()
{
...
Synchronize(UpdateListView);
}
void __fastcall ThreadPackets::UpdateListView()
{
TListItem* item = Form1->ListView->Items->Add();
item->Caption = cadenaIDx;
item->SubItems->Add(cadenaTIm);
item->SubItems->Add(cadenaPRt);
if (cadenaPRt == "TCP")
{
Form1->ListView->Canvas->Brush->Color = clGreen;
}
else Form1->ListView->Canvas->Brush->Color = clRed;
}
donde ThreadPackets es una class TThread
pero no me pinta nada y he visto por internet algo sobre el backcolor, pero en builder no está la opción de Form1->ListView->Backcolor? hay alguna forma?
gracias