Ver Mensaje Individual
  #2  
Antiguo 15-03-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 19.441
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Seguramente lo más fácil es derivar el componente estandard para modificar el comportamiento del Paint.
Si miras el componente TCheckListBox, verás que hay el siguiente método:

Código Delphi [-]
  procedure DrawItem(Index: Integer; Rect: TRect;   State: TOwnerDrawState); override;

Que tiene muy buena pinta de servir para lo que necesitas.

Una prueba rápida... Si derivamos el componente y simplemente ańadimos estas líneas veremos que el comportamiento se acerca bastante a lo que necesitas:

Código Delphi [-]
procedure tchecklistBox1.DrawItem(Index: Integer; Rect: TRect;
                                  State: TOwnerDrawState);
begin
  inherited;
  if Self.Checked[Index] then begin
    Self.Canvas.MoveTo(Rect.Left, Rect.Top + 5);
    Self.Canvas.LineTo(Rect.Right, Rect.Top + 5);
  end;
end;

Se ve algo como esto. Falta pulirlo, pero creo que por ahí puedes conseguir lo que necesitas...



Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita