 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Raul128 Invitado
|
Publicado: Dom 08 Jun, 2003 5:12 am Asunto: Color Columnas TListView |
|
|
Hola,
Espero que alguien pueda sacarme de la duda.
¿ Es posible cambiar el color de una columna del Objeto TListView?
Si la respuesta es afirmativa, podrían indicarme de que manera se hace.
De antemano, Gracias |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Dom 08 Jun, 2003 10:38 am Asunto: |
|
|
Hola!
Por favor, antes de publicar un mensaje deberíais utilizar la opción Buscar del foro. La respuesta a tu pregunta la dio _Leo hace unos meses en el siguiente mensaje:
https://cppbuilder.es/viewtopic.php?t=4770
Nos vemos gente! cuidarse mucho! |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Dom 08 Jun, 2003 10:52 am Asunto: |
|
|
Perdón, no leí bien el mensaje. Me parecio ver que querías poder ordenar las filas y no vi que lo que querías era cambiar el color de las columnas. Prueba a investigar por aqui:
| Código: |
void __fastcall TForm1::ListView1CustomDrawSubItem(TCustomListView *Sender,
TListItem *Item, int SubItem, TCustomDrawState State,
bool &DefaultDraw)
{
if (SubItem==1) <--Pinta la segunda columna de rojo
Sender->Canvas->Brush->Color = clRed;
if (SubItem==2) <--Pinta la tercera columna de verde
Sender->Canvas->Brush->Color = clLime;
if (SubItem==3) <--Pinta la cuarta columna de amarillo
Sender->Canvas->Brush->Color = clYellow;
|
Suerte!! |
|
| Volver arriba |
|
 |
Raul128 Invitado
|
Publicado: Dom 08 Jun, 2003 10:44 pm Asunto: |
|
|
Gracias Marky,
Es exactamente lo que necesitaba.
P.D. Normalmente utilizo la opción "Buscar" para saber si ya existen mensajes pero no tuve suerte. |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Lun 19 Jul, 2004 7:31 pm Asunto: |
|
|
Con este codigo me pasa lo siguiente:
Si quiero solo colorear la primera columna de los SubItems:
| Código: |
void __fastcall TForm1::ListView1CustomDrawSubItem(TCustomListView *Sender,
TListItem *Item, int SubItem, TCustomDrawState State,
bool &DefaultDraw)
{
if (SubItem==1) //<--Pinta la segunda columna de rojo
{
Sender->Canvas->Brush->Color = clRed;
}
}
|
Pero,... Colorea de la columna selecionada en adelante.
Entonces se me ocurre:
| Código: |
void __fastcall TForm1::ListView1CustomDrawSubItem(TCustomListView *Sender,
TListItem *Item, int SubItem, TCustomDrawState State,
bool &DefaultDraw)
{
if (SubItem==1) //<--Pinta la segunda columna de rojo
{
Sender->Canvas->Brush->Color = clRed;
}
else
{
//clWindow color de la propiedad ListView1
Sender->Canvas->Brush->Color = clWindow;
}
}
|
Es decir que ponga el color por defecto de la propiedad ListView1->Color. Sin embargo, esta linea no surge efecto ??? y lo pone todo, en este caso de color clRed.
Probando, me doy cuenta de que si pongo el mismo color que el de la propiedad ListView1->Color pues no hace efecto, sin embargo si pruebo con otro color si lo hace bien.
Por ejemplo, si ListView1->Color es igual a clWindow
| Código: |
if (SubItem==1) //<--Pinta la segunda columna de rojo
{
Sender->Canvas->Brush->Color = clRed;
}
if (SubItem==2)
{
Sender->Canvas->Brush->Color=clWindow;
}
|
Del SubItem 1 en adelante todo de color clRed.
Ahora bien, igual que antes: ListView1->Color igual a clWindows.
| Código: |
if (SubItem==1) //<--Pinta la segunda columna de rojo
{
Sender->Canvas->Brush->Color = clRed;
}
if (SubItem==2)
{
Sender->Canvas->Brush->Color=clWhite;
}
|
Pues del SubItem 2 en adelante todo de color clWhite.
Ahhh, tambien pasa con otras propiedades (por ejemplo, color texto):
Sender->Canvas->Font->Color
Mas cosas curiosas: Si añado otra propiedad, tambien del canvas, parece que se arregla:
| Código: |
if (SubItem==1) //<--Pinta la segunda columna de rojo
{
Sender->Canvas->Brush->Color = clRed;
}
if (SubItem==2)
{
Sender->Canvas->Brush->Color=clWhite;
Sender->Canvas->Font->Size=11; // <--- AÑADIMOS
}
|
Resumiendo como coloreo SOLO la primera columna de los subitems. ????, es decir como soluciono estas interferencias .
Un saludo. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|