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.