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 07-08-2008
Avatar de ManuelPerez
ManuelPerez ManuelPerez is offline
Miembro
 
Registrado: sep 2007
Ubicación: Rio III - Córdoba - Argentina
Posts: 71
Poder: 17
ManuelPerez Va por buen camino
Pintar filas TDBGrid

Hola necesito pintar las filas en una TDBGrid, es decir pintar por ejemplo con celeste las filas impares.
gracias
Responder Con Cita
  #2  
Antiguo 07-08-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, ¿te refieres a alternar los colores en las filas de un DBGrid?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 07-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola ManuelPerez,
Para conseguir lo que quieres, debes interceptar el evento OnDrawDataCell y/o el OnDrawColumnCell. Estos eventos se disparan cada vez que se va a "pintar" una celda y columna. Tengo entendido que en otras ocasiones se habló del tema. Si buscas en el buscador con la palabras clave pintar dbgrid y DrawColumnCell, DrawDataCell vas a encontrar mayor información.

Yo mucho no puedo decirte puesto que no trabajado con estos eventos pero recuerdo haber visto ejemplos aqui en los foros.

La otra opción es emplear un dbgrid de terceros que añada dicha funcionalidad. Puedes encontrar componentes pagos como gratuitos. En torry.net es muy probable que encuentres algunos.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 07-08-2008
Avatar de ManuelPerez
ManuelPerez ManuelPerez is offline
Miembro
 
Registrado: sep 2007
Ubicación: Rio III - Córdoba - Argentina
Posts: 71
Poder: 17
ManuelPerez Va por buen camino
Si..

Si lo que quiero es alternar los colores.

celeste
blanco
celeste
blanco
celeste
...

gracias
Responder Con Cita
  #5  
Antiguo 07-08-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
hola,
seria algo asi

Código Delphi [-]
procedure T_main.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
        x : integer;
begin
        if (gdSelected in state) then
        (sender as TDBGrid).canvas.Brush.Color := $00C08000
        else
        if (sender as TDBGrid).datasource.dataset.RecNo mod 2 = 0 then
        (sender as TDBGrid).canvas.Brush.Color := clAqua - $000b0b0b
        else
        (sender as TDBGrid).canvas.Brush.Color := clAqua - $00010101;

        (sender as TDBGrid).canvas.FillRect(Rect);

        if Column.Field <> nil then
        begin
        case  Column.Alignment of
         taCenter : x := (Rect.Right - Rect.Left) div 2 - (sender as TDBGrid).canvas.TextWidth(Column.Field.asstring) div 2;
         taLeftJustify : x := 0;
         taRightJustify : x := Rect.Right - (sender as TDBGrid).canvas.TextWidth(Column.Field.asstring);
         end;

        (sender as TDBGrid).DefaultDrawing := true;
        (sender as TDBGrid).canvas.TextOut(Rect.Left + x,Rect.top,Column.Field.asstring);
        end;
end;

EDITO : modificacion para el justify y el selected, y el activerecord por el RecNo

Última edición por coso fecha: 11-08-2008 a las 16:14:56.
Responder Con Cita
  #6  
Antiguo 07-08-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola


Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 07-08-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Wink

como menciono delphiu anteriormente, puedes utilizar el componente NiceGrid, el cual es muy util y puedes realizar varios opciones adicionales..

vista esta pagina y lo encontrarás...

Salu2
__________________
BlueSteel
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 filas del TstringGrid Gagiel Varios 2 16-03-2007 10:46:59
problemas al pintar filas con cxGrid v5 DANY OOP 1 29-11-2006 03:02:14
Pintar filas de un Listview Coco_jac Varios 4 14-07-2006 15:46:18
Pintar filas DbGrid lunatiko Varios 5 05-07-2005 15:11:51
pintar filas de un dbgrid febito Varios 1 01-04-2004 16:50:20


La franja horaria es GMT +2. Ahora son las 06:30:31.


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