| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Vie 29 Oct, 2004 5:44 pm Asunto: Colorear Registro activo en un TDBGrid |
|
|
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 |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Vie 29 Oct, 2004 5:57 pm Asunto: |
|
|
| 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 |
|
 |
americo_bcb Lt

Registrado: 05 May 2004Mensajes: 84
|
Publicado: Vie 29 Oct, 2004 10:32 pm Asunto: |
|
|
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 |
|
 |
cecito Capt

Registrado: 25 Nov 2003Mensajes: 164Ubicación: Arequipa - Perú
|
Publicado: Sab 30 Oct, 2004 2:12 pm Asunto: |
|
|
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  |
|
| Volver arriba |
|
 |
|