Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2012
Avatar de Facu
Facu Facu is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 14
Poder: 0
Facu Va por buen camino
Color fila actual dbgrid

Hola queridos amigos, una vez más los saludo cordialmente.
He leido varios hilos, y no encuentro una respuesta que me satisfaga.


Tengo una base de datos en access cargada ya con muchos registros son mas de 6000
Lo muestro en un DbGrid y debajo de este hay un Edit con el cual voy filtrando por un campo para ir buscando un registro que me interese.
Hasta acá todo va bien.
El problema es el siguiente:
Quiero que la fila actual de mi DBGrid (este o no filtrada la tabla) sea de otro color, y yo moverme con las flechitas y que donde estoy posicionado
vaya cambiando a ese color, resaltando el registro donde estoy parado en el DBgrid.
Ojalá alguien me pueda ayudar.

Muchas gracias de antemano
Responder Con Cita
  #2  
Antiguo 21-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Facu.

Si no te entiendo mal, basta con que pongas la propiedad dgRowSelect en True para lograr que la fila actual esté en color diferente.

Te pongo un ejemplo sencillo que te permitirá cambiar el color de la selección. Agrega un TColorDialog y un TButton para llamar a la elección del color.

Código Delphi [-]
var
  RowColor: TColor;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // dgRowSelect configurable desde el Object Inspector
  DBGrid1.Options:= DBGrid1.Options+[dgRowSelect];
  RowColor:= clMenuHighlight;
end;

(* Pintar la fila *)
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if gdSelected in State then
  begin
    DBGrid1.Canvas.Brush.Color:= RowColor;
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;

(* cambiar el color *)
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
  begin
    RowColor:= ColorDialog1.Color;
    DBGrid1.Invalidate;
  end;
end;

Saludos.

Edito: Aunque creo que arriba está mencionado, para evitar confusiones: Sólo con poner la propiedad dgRowSelected en True se pintará la fila seleccionada, el resto es para ejemplificar el cambio de color.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-03-2012 a las 22:34:50.
Responder Con Cita
  #3  
Antiguo 21-03-2012
Avatar de Facu
Facu Facu is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 14
Poder: 0
Facu Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Facu.

Si no te entiendo mal, basta con que pongas la propiedad dgRowSelect en True para lograr que la fila actual esté en color diferente.

Te pongo un ejemplo sencillo que te permitirá cambiar el color de la selección. Agrega un TColorDialog y un TButton para llamar a la elección del color.

Código Delphi [-]
var
  RowColor: TColor;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // dgRowSelect configurable desde el Object Inspector
  DBGrid1.Options:= DBGrid1.Options+[dgRowSelect];
  RowColor:= clMenuHighlight;
end;

(* Pintar la fila *)
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if gdSelected in State then
  begin
    DBGrid1.Canvas.Brush.Color:= RowColor;
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;

(* cambiar el color *)
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ColorDialog1.Execute then
  begin
    RowColor:= ColorDialog1.Color;
    DBGrid1.Invalidate;
  end;
end;

Saludos.

Edito: Aunque creo que arriba está mencionado, para evitar confusiones: Sólo con poner la propiedad dgRowSelected en True se pintará la fila seleccionada, el resto es para ejemplificar el cambio de color.

Si, me di cuenta porque solo utilize las primeras 2 líneas, de todos modos tu explicación fué fantástica.
Agradezco tu tiempo, como algo tan simple puede dar un detalle de "calidad" en una búsqueda de de registros no?

De verdad muchas gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Otra vez color de fila de un DBGRID? pepe2000 OOP 7 17-01-2006 02:55:08
cambiar color en fila seleccionada en un dbgrid gmontes OOP 2 05-05-2005 22:33:24
Color en Fila dbgrid MITOPE OOP 4 06-04-2004 10:06:37
Dar un color a una fila de un DBgrid Javier_A OOP 2 15-12-2003 18:59:45


La franja horaria es GMT +2. Ahora son las 12:18:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi