Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como darle color a un TListColumn? (https://www.clubdelphi.com/foros/showthread.php?t=23355)

abracadabra 14-07-2005 16:55:30

Como darle color a un TListColumn?
 
Hola a todos, soy nuevo en este forum, espero alguna vez poder ayudar en algun problema que se presente.
Resulta que estoy desarrollando una aplicación cuya interfaz utiliza un TListView con columnas (es decir TListView.ViewStyle=vsReport), el problema es que quisiera saber como puedo darle un color a cada TListColum que forma parte del conjunto de columnas del TListView.
Gracias de antemano.

iuqrul 14-07-2005 18:32:21

Hola, create un formulario pon en él un ListView, el ListView.ViewStyle a vsReport y el ShowColumnHeaders a True y enganchale estos eventos, lo que he marcado en verde sería para pintar las columnas de forma independiente, si tienes más de dos columnas las siguientes te las dejará con el color de la 2.

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
with Sender.Canvas do begin
if subItem mod 2 = 0 then
Brush.Color := clyellow
else
Brush.Color := clRed;
{ case subitem of
1: Brush.Color := clyellow;
2: Brush.Color := clRed;
end}

end;
end;

procedure TForm1.ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
begin
Sender.Canvas.Brush.Color := clWhite;
Sender.Canvas.FillRect(ARect);
end;

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
with Sender.Canvas do begin
Brush.Color := clBlue;
end
end;


Un saludo.

abracadabra 14-07-2005 19:17:23

Muchas gracias IUGRUL, la solución me la enviaste con rapidez, acabo de probar el código que me enviaste y da resultados. Estoy muy agradecido.
Tengo otra inquietud, quizas me puedas ayudar. Quisiera saber como cambiar el color de las cabeceras de las columnas del ListView, me refiero no al color de toda la columna, sino solo del título de la columna.
Una vez mas gracias.

iuqrul 15-07-2005 08:21:39

En principio para hacer eso debes definir pintar el componente completamente o implementar el tuyo propio, mira aquí, yo nunca he hecho algo así, pero si he tenido ese mismo problema y no lo he abordado.

Un saludo.

abracadabra 15-07-2005 17:01:40

Una vez mas: Gracias IUGRUL


La franja horaria es GMT +2. Ahora son las 07:01:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi