Hola amigos, estoy con una aplicacion la cual tiene un ListBox para mostrar una especie de log el cual si hay un error lo mostraria en rojo, si hay alguna alerta en naranja y si fue bien en verde. La idea es que vayan apareciendo lineas y cada una de su color pertinente y hasta ahora tengo esto:
Donde controlo el dibujado del listbox:
Código PHP:
void __fastcall TForm1::ListBoxLogDrawItem(TWinControl *Control, int Index,
TRect &Rect, TOwnerDrawState State)
{
// eliminate artifacts
ListBoxLog->Canvas->FillRect(Rect);
// Compruebo si es la ultima linea
if (Index == ListBoxLog->Items->Count - 1) {
// Color del texto que deseo para la ultima linea
ListBoxLog->Canvas->Font->Color = colorListBoxLog;
}else{
}
// dibujo el texto
ListBoxLog->Canvas->TextOut(Rect.Left + 1, Rect.Top,ListBoxLog->Items->Strings[Index]);
}
Uno de los que insertan una linea en el ListBox:
Código PHP:
void __fastcall TForm1::ButtonUpdateFirstLayerClick(TObject *Sender)
{
//Aqui ya habria que desencriptarlo
if(Actualizar()==-1){
colorListBoxLog = clRed;
ListBoxLog->Items->Add("Hubo un error al actualizar.");
}else{
colorListBoxLog = clRed;
ListBoxLog->Items->Add("Se ha actualizado correctamente.");
ListBoxLog->TopIndex = ListBoxLog->Items->Count - 1;
}
}
El problema que tengo es que me colorea bien el primero pero si inserto otra linea esa me la colorea bien pero el resto de lineas no me respeta el color que tenia y todas me las pone de negro. ¿como seria para que me respete el color de las que ya estaban?