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 

Colorear Registro activo en un TDBGrid

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Colorear Registro activo en un TDBGrid Responder citando

Holas amigos del Foro, utilice el codigo que dio _Leo para colorear un DBGrid en un post del foro:
_Leo escribió:
en el evento OnDrawColumnCell del DBGrid:
Código:
    // Puntero al DbGrid enlazado con este evento
    TDBGrid *grid = dynamic_cast<TDBGrid*>(Sender);
    if ( grid && !State.Contains(gdSelected) )
    {
        grid->Canvas->Brush->Color =
            (grid->DataSource->DataSet->RecNo & 1) ? clRed : clBlue;
    }
    grid->DefaultDrawColumnCell(Rect, DataCol, Column, State);

y deseaba que solo se coloree el registro que esta activo, asi que supuce que seria cambiar la linea de codigo:
Código:
(grid->DataSource->DataSet->RecNo & 1) ? clRed : clBlue;
por una que nos muestre cual es el registro activo, Pero en cuanto busque un metodo o porpiedad que me indique cual es el registro activo no la encuentro utilizo TADOTable si alguien sabe cual es esta propiedad o la forma de hacer lo que menciono estare agradecido.
Américo
C++ Builder lo mejor de lo mejor
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Código:

TDBGrid *grid = dynamic_cast<TDBGrid*>(Sender)
TCanvas * c = grid->Canvas;
  c->Brush->Color = clWhite;
  c->Font->Color = clBlack;
  if( State.Contains(gdSelected) )//Esta línea es la que te indica si la celda esta activa o no
  { c->Brush->Color = clSkyBlue;
    c->Font->Color = clBlack;
  }
 grid->DefaultDrawColumnCell(Rect,DataCol,Column,State);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Cecito gracias por responder pero como tu indicas eso muestra la celda activa no la fila activa que el la que deseo reasaltar
Alguna idea mas
Americo
C++ Builder lo mejor de lo mejor
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Selecciona la propiedad options del dbgrid, la expandes y activa la subpropiedad dgRowSelected = true

Con esto de forma automática se selecciona toda la fila, pero ya no puedes editar el grid, si deseas regresar al comportamiento anterior deberás desactivar esta opcion y activar la opción dgEditing = true Razz
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.