Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2006
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
Smile Pintar Fila del DBGrid

hola gente, como andan....

Les presento el siguiente codigo

Código Delphi [-]
procedure TfrmCelulas.GrillaIntDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
if (Sender as TDBGrid).Datasource.DataSet.RecNo mod 2 = 0 then
        (Sender as TDBGrid).Canvas.Brush.Color := $00FFEFDF
      else
        (Sender as TDBGrid).Canvas.Brush.Color := clCream;
(Sender as TDBGrid).Canvas.Font.Color := clBlack;
(Sender as TDBGrid).DefaultDrawColumnCell(rect,DataCol,Column,State);
end;

Les cuento lo que hace...
Pinta la filas de una DDBgrid con colores intercalados. por ej: una fila de amarrillo clarito y la siguiente de celeste clarito.
Hasta aqui funciona todo de 10.
He aqui va mi pregunta....

El problema que tengo con este procedimiento es que cuando selecciona una fila no se distingue la fila seleccione a pesar de que la opción del multiselect del dbgrid este activada, la unica manera de que saber que fila es la seleccionada es atraves del indicador.
¿Habria alguna manera de que la fila seleccionada cambie de color o algo mas visible con ella sin que se altere el resto de la grilla y al deseleccionar vuelva a estar como antes? Ya que he probado varias cosas y ninguna me salieron.
Si me puede ayudar diciendome de que manera tendria que cambiar el procedimiento mencionado o que debo hacer, desde ya se lo agradesco.

Espero que me haberme dado a entender.
__________________
No es lo mejor, pero es lo que hay...
Responder Con Cita
  #2  
Antiguo 05-04-2006
cgomez cgomez is offline
Miembro
 
Registrado: oct 2005
Posts: 31
Poder: 0
cgomez Va por buen camino
ojala te sirva

If (gdFocused in State) then
dbgrid2.canvas.brush.color := clRed;
dbgrid2.DefaultDrawColumnCell(rect,DataCol,Column,State)

este codigo debes ingresarlo en
procedure TForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);

y el dgmultiselect en true...ojala te sirva, en este caso las pintara de rojo cuando estes sobre una fila.
Responder Con Cita
  #3  
Antiguo 05-04-2006
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
Gracias por tu ayuda, pero lo soluciones de la siguiente manera....

Código Delphi [-]
procedure TfrmCelulas.GrillaIntDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
if (Sender as TDBGrid).Datasource.DataSet.RecNo mod 2 = 0 then
        (Sender as TDBGrid).Canvas.Brush.Color := $00FFF5EC
      else
        (Sender as TDBGrid).Canvas.Brush.Color := $00F5FEFE;
(Sender as TDBGrid).Canvas.Font.Color := clBlack;
 if (Sender as TDBGrid).SelectedRows.CurrentRowSelected then
         begin
          (Sender as TDBGrid).Canvas.Font.Color := clWhite;
          (Sender as TDBGrid).Canvas.Brush.Color := clRed
         end;
(Sender as TDBGrid).DefaultDrawColumnCell(rect,DataCol,Column,State);
end;

Lo que esta en color rojo es lo que agregue para obtener lo deceado.
__________________
No es lo mejor, pero es lo que hay...
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
Pintar un dbGRid sebas78 Gráficos 5 22-07-2006 16:06:36
pintar columna DBGRid Coco_jac Varios 1 02-02-2006 23:54:59
Pintar Renglones en DBGRID Enan0 SQL 2 15-02-2005 20:39:05
Pintar Fila por medio en ub DBGrid josem OOP 3 01-01-2005 20:54:52
pintar filas de un dbgrid febito Varios 1 01-04-2004 16:50:20


La franja horaria es GMT +2. Ahora son las 21:01:55.


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