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 

TDBGrid, multiselect y OnDrawColumnCell

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: TDBGrid, multiselect y OnDrawColumnCell Responder citando

En un TDBGrid he puesto un determinado código en el evento OnDrawColumnCell para que las filas pares de un TDBGrid salgan de un color y las impares de otro. Además he tenido que tener en cuenta el estado del TDBGrid para poder dibujar en azul la fila seleccionada. El problema está en que a pesar de tener ajustadas a true las propiedades Multiselect y RowSelect del TDBGrid únicamente me aparece en azul la última fila que he elegido, cuando lo que en realidad quiero es que me vaya poniendo en azul todas las filas que vaya marcando. ¿Alguien sabe como puedo capturar esto en el OnDrawColumnCell? He probado con SelectedRows pero no he conseguido nada.

Muchas gracias y un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Puedes usar la propiedad "..SelectedRows->CurrentRowSelected" del TDBGrid. Por ejemplo, suponiendo que usas Paradox, ponemos lo siguiente en el evento OnDrawColumnCell:

    if (!DBGrid1->SelectedRows->CurrentRowSelected)
    {
        DBGrid1->Canvas->Brush->Color =
              (DBGrid1->DataSource->DataSet->RecNo & 1) ? clWhite : clAqua;
    }
    DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);

En caso de usar otro motor de base de datos que no actualice la propiedad "RecNo", puedes usar el código que hay al final del siguiente mensaje modificando solo esa línea:

    https://cppbuilder.es/viewtopic.php?t=4298
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchísimas gracias _Leo! Funciona genial. No se me había ocurrido usar la propiedad CurrentRowSelected

Saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
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.