Ver Mensaje Individual
  #2  
Antiguo 04-07-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No hay forma directa de manipular la fuente de cada ítem por separado de manera que debes dibujarlos tú mismo poniendo la propiedad Style del ListBox en lbOwnerDrawFixed y dibujando el texto en el evento OnDrawItem:

Código Delphi [-]
procedure TForm1.ListBox1DrawItem(
  Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with ListBox1.Canvas do
  begin
    FillRect(Rect);
    if Terminada(Index) and not (odSelected in State) then
      Font.Color := clGreen;
    TextOut(Rect.Left + 2, Rect.Top, ListBox1.Items[Index])
  end;
end;

Aquí Terminada vendría siendo una función que determine si la tarea está acabada. En tal caso, y suponiendo que el ítem no está seleccionado en esos momentos, le cambias el color. La última condición no es necesaria pero resulta un poco difícil leer un color que no sea blanco sobre el fondo azul de la selección.

Si quieres hacer algo más osado leete el ejemplo que viene en la ayuda de Delphi sobre el evento OnDrawItem para que veas que puedes incluso colocar bitmaps al lado del texto con lo cual obtendrías algo mucho mejor para indicar el estátus de la tarea.

// Saludos
Responder Con Cita