Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
problema cambiar formato de fila en dbGrid

Hola gente del Club Delphi, he hecho una pregunta similar en otro hilo pero referente a una TreeView pero ya hallé la solución ahora mi problema es co el dbGrid.

Necesito cambiar el color de una fila, ya se que es un tema muy comentado en el foro, he realizados varias busquedas pero lo que he visto no me sirve ó eso creo yo,vereis tengo un dbgrid en el formulario con más componentes y lo que yo quiro es cuendo pulso fuera del dbgrid que la fila que tenía seleccionada me cambie de color, con el TreeView lo he hecho con la propiedad HideSelection y me lo pone en color gris, es decir, quita el foco pero se mantiene seleccionado. ¡Habría alguna propiedad así en el DBGrid?,

he probado con la propiedad
Código Delphi [-]
  dbgrid.options
  dgAlwaysShowSelection

pero no me sirve ya que aparece una fila del dbgrid selecionada en cuanto se ejecuta la aplicación y yo sólo quiero que seleccione una fila cuando pinche en ella. Tambien he probado con el metodo dbGridDrawColumnCell()
pero no se como poner la condición que sería

cuando no este un se encuentre el foco en el dbGrid que la fila que estaba selecionada cambie de color, creo que con el método anteriormente nombrado no me sirve ya que el cambio de color se haría en el metodo dbGridExit, es decir, cuando he salido del dbgrid el que estaba selecionado que cambie de color.

Si alguien tiene alguna idea de como hacerlo. Espero que me hayan entendido, si no es así por favor comuniquenmelo.

Gracias por su ayuda en este y tantos otros problemas que me han resuelto.
Responder Con Cita
  #2  
Antiguo 01-10-2004
aglopez aglopez is offline
Miembro
 
Registrado: may 2003
Posts: 11
Poder: 0
aglopez Va por buen camino
Lightbulb A ver si te he entendido bien

Prueba con este código en los eventos OnEnter y OnExit a ver si es lo que
buscabas.

Código:
procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
  DBGrid1.Options:=DBGrid1.Options-[dgrowselect,dgAlwaysShowSelection];
end;

procedure TForm1.DBGrid1Exit(Sender: TObject);
begin
  DBGrid1.Options:=DBGrid1.Options+[dgrowselect,dgAlwaysShowSelection];
end;
Responder Con Cita
  #3  
Antiguo 01-10-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
ok

Gracias sólo con poner la instrucción en el método exit ya funciona, ahora voy a investigar para en vez que la mantega seleccionado en color azul lo cambie a gris.

Muchísimas gracias , amigo .
Responder Con Cita
  #4  
Antiguo 01-10-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
Smile Resuelto

POr si ha alguien le interesa pongo la solución, para ello utilizo una función tan comentada como es:

Código Delphi [-]
if (dbgrid.Options=dbgrid.Options+[dgAlwaysShowSelection]) and (gdselected in state) then
 begin
     dbgrid.Canvas.Brush.Color:=clMenu;
     dbgrid.Canvas.Font.color:=clInfotext;
 end;

dbgrid.DefaultDrawColumnCell(Rect,DataCol,Column,State);

La condición expuesta puede ser redundante ya que pongo que el dbgrid continue se muestre selecionada y pongo también (gdSelected in state), es decir, que es estado sea selecionado, pues bien explico porque si no pongo esto último sería en caso de que exista un campo selecionado coloreo todo el dbgrid y poniendo esa consición más me colorea solo el campo selecionado en el dbgrid, que es lo que yo quería.

Espero que lo hayais entendido y que le sirva a alguien de ayuda.

Chao
Responder Con Cita
  #5  
Antiguo 01-10-2004
aglopez aglopez is offline
Miembro
 
Registrado: may 2003
Posts: 11
Poder: 0
aglopez Va por buen camino
Sin el OnEnter...

Si te funciona solo con el evento OnExit, pero si no pones el OnEnter
al entrar en el DBGrid no podrás modicar datos. Si no necesitas modificar, entonces no te hace falta.

Saludos.
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


La franja horaria es GMT +2. Ahora son las 23:39:34.


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