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 31-01-2004
soyhugo soyhugo is offline
Miembro
 
Registrado: ene 2004
Posts: 66
Poder: 21
soyhugo Va por buen camino
colorear filas de un dbgrid

¿alguien sabe el código para colorear las líneas de un dbgrid alternativas en dos colores distintos? gracias.
Responder Con Cita
  #2  
Antiguo 31-01-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Fijate si este código te ayuda (Tenés que usar el evento DrawDataCell del componente):
Código:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
var
   iRowNumber : Integer;
begin
   with (Sender as TDBGrid), Canvas do begin
      iRowNumber := (Rect.Top + Rect.Bottom) div ((1+Rect.Bottom - Rect.Top)*2);
         if Odd(iRowNumber) then Brush.Color := clYellow
         else Brush.Color := clWhite;
      FillRect(Rect);
      DefaultDrawDataCell(Rect, Field, State);
   end;
end;
Como dato interesante el componente rxDBGrid de las rxlib tiene propiedades un tanto mas avanzadas que el DBGrid.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 05-08-2010
rmora rmora is offline
Miembro
 
Registrado: may 2006
Posts: 10
Poder: 0
rmora Va por buen camino
Pintar celdas alternas con texto

Cita:
Empezado por Gydba Ver Mensaje
Fijate si este código te ayuda (Tenés que usar el evento DrawDataCell del componente):
Código:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
var
   iRowNumber : Integer;
begin
   with (Sender as TDBGrid), Canvas do begin
      iRowNumber := (Rect.Top + Rect.Bottom) div ((1+Rect.Bottom - Rect.Top)*2);
         if Odd(iRowNumber) then Brush.Color := clYellow
         else Brush.Color := clWhite;
      FillRect(Rect);
      DefaultDrawDataCell(Rect, Field, State);
   end;
end;
Como dato interesante el componente rxDBGrid de las rxlib tiene propiedades un tanto mas avanzadas que el DBGrid.
Hola amigos, el ejemplo descrito a mi me funciono de maravilla, sin embargo cuando estas celdas tienen texto, el texto desaparece o no se puede visualizar. Por favor podrían decirme como puedo hacer???. Estoy utilizando el componente tRxDBLib.

Gracias de antemano

Última edición por rmora fecha: 05-08-2010 a las 22:29:47.
Responder Con Cita
  #4  
Antiguo 05-08-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por rmora Ver Mensaje
...sin embargo cuando estas celdas tienen texto, el texto desaparece o no se puede visualizar. Por favor podrían decirme como puedo hacer???. Estoy utilizando el componente tRxDBLib.
En ese caso puedes cambiar el color del texto agregando una linea de código:
Código Delphi [-]
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
var
   iRowNumber : Integer;
begin
   with (Sender as TDBGrid), Canvas do begin
      iRowNumber := (Rect.Top + Rect.Bottom) div ((1+Rect.Bottom - Rect.Top)*2);
         if Odd(iRowNumber) then Brush.Color := clYellow
         else Brush.Color := clWhite;
       Font.Color:=clBlack;// <-Aqui le estoy poniendo que los textos sean negros
      FillRect(Rect);
      DefaultDrawDataCell(Rect, Field, State);
   end;
end;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 06-08-2010
rmora rmora is offline
Miembro
 
Registrado: may 2006
Posts: 10
Poder: 0
rmora Va por buen camino
Gracias por tu respuesta, sin embargo ahora me encuentro con el siguiente problema:

Mi componente (rxDbLib) posee estos parametros:

GridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);

Por lo tanto el código se cae ya que no recibe el parámetro "Field" como lo indica el código anterior.
Tener idea que puedo cambiar para lograr lo que deseo??

De antemano gracias por tu ayuda.
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 00:21: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