Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Presentanción en LIstView

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Presentanción en LIstView Responder citando

Mediante código hago que en un ListView las filas se vean, por ejemplo, en negrita o no:
Código:
void __fastcall TfSimula::TotalesCustomDrawItem(TCustomListView *Sender, TListItem *Item, TCustomDrawState State, bool &DefaultDraw)
{
     pItem = Item;
     Sender->Canvas->Font->Height = -11;
     Sender->Canvas->Font->Name = "Arial";
     if (pItem->SubItems->Strings[0].Pos("ACUMULADO") == 0 && pItem->SubItems->Strings[0].Pos("ESTIMADO") == 0)
          Sender->Canvas->Font->Style = TFontStyles() >> fsBold;
}

Voy a dar un vuelta de tuerca más: ¿Podría, a través del Canvas, hacer que eso ocurriera sólo para un celda concreta?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola Angel

Como seleccionas la celda concreta? Por una ubicacion? Por un texto que contenga?

Si es por una palabra en especial con Item->Caption miras el texto y podrias determinar si lo pones en negrita o no.

Que dices?
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola Jacko. Para leer la celda lo hago com:
Código:
ListView1->Items->Item[nRow]->SubItems->Strings[nCol]

Siendo nRow la fila en que estoy menos 1 y nCol la columna menos 2.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Que pena Angel. Te preguntaba que como la seleccionas, con qué criterio, para asi saber por cual metodo podrias ponerla en negrilla.

Si quieres poner en negrilla la celda nxm, o en negrilla la que diga "Hola", o cuá?

Depronto no me explique bien....
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

¡Ah! Te había entendido otra cosa; perdón. Vamos a ver; la pantalla es esta:

Si yo introduzco en el cuadro de en medio (es un StringGrid) un valor, al presionar el botón recalcular lo que hago es copiar los valores de este cuadro en el inferior (que es un ListView), de forma que si un casilla está en blanco tomo el valor de la inmediata a izquierda. Lo que intento es que si hay un valor en las columnas Prop. del StringGrid, la posición equivalente del ListView inferior esté en negrilla o con fondo rojo, de forma que se vean con facilidad las diferencias.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

ok, ya entiendo.... algo complicado no?

Por lo que veo, tendrias que mandar algun aviso al evento CustomDrawItem para que en determinado momento ponga lo que esta escribiendo en negrilla o con fondo rojo, verdad? Y el resto lo siga escribiendo normal.

No se podria hacer una comparacion por texto porque no se sabe cual es el valor que se va a escribir en la casilla Prop. Pero si se podria hacer la comparacion por posicion de la celda. Podrias utilizar la propiedad GetPosition del Item para determinar en donde se esta dibujando y asi poner negrilla en la columna que quieres.

Que te parece?

Nos cuentas como lo solucionaste!
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Parte de ese código ya está. El ListView tiene definida la fuente en negrilla y cuando lo relleno cambio cada fila para que se vea como en la figura. Una opción que no se me había ocurrido es poner con fondo rojo, por ejemplo, las filas en las que se ha modificado algo. Será lo que haga al final, porque yo había pensado usar el evento OnAdvancedCustomDrawSubItem pero no me hace lo que quiero.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.