Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2005
Avatar de Anunakis
Anunakis Anunakis is offline
Miembro
 
Registrado: abr 2004
Posts: 37
Poder: 0
Anunakis Va por buen camino
Question Colorear las lineas de un DBGrid

Hola a todos,

Mi pregunta es la siguiente:
¿Como puedo hacer para que un DBGrid me salgan sus lineas alternado el color, por ejemplo blanco y amarillo, para que genere el tipico efecto que sale en la mayoria de sitios.

He probado en DBGrid1DrawColumnCell pero no se como especificar que si la linea es par sea blanca o impar amarilla ya que este evento es para las columnas y no las filas.

Gracias de antemano
__________________
Un buen programador no se mide por los programas que hace, sino por lo que ayuda a los demás programadores.
Responder Con Cita
  #2  
Antiguo 24-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Esta búsqueda en los Foros ofrece, entre otros Hilos, este, este y este, que creo pueden echarte una mano.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 24-08-2005
Avatar de Anunakis
Anunakis Anunakis is offline
Miembro
 
Registrado: abr 2004
Posts: 37
Poder: 0
Anunakis Va por buen camino
No me ha servido porque yo lo que busco es pintar las lineas y no las columnas, lo que busco es como saber si estoy en una linea par o impar de un DBGrid porque el pintar no es el problema sino la condicion esa.

De todos modos gracias por contestar y por la rapidez.
__________________
Un buen programador no se mide por los programas que hace, sino por lo que ayuda a los demás programadores.
Responder Con Cita
  #4  
Antiguo 24-08-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
El DBGrid de las JVCL tiene una propiedad AlternateRowColor y otra AlternateRowFontColor en donde defines que color quieres para las filas pares.

La dbgrid de SM tambien maneja colores alternados, incluso tiene varias combinaciones de colores ya definidas.

En pocas palabras, con estos componentes no tienes que programar nada de código para tener el efecto que pides, solo hay que definir los colores en las propiedades.

La dbgrid de sm es dos o tres compnenetes solamente y las JVCL se intala junto con un motón de componentes. Lo más rápido sería utilizar la de SM , pero yo utilizaría las JVCL ya que estoy seguro que tambien te podrán ayudar con más cosas.
__________________

Responder Con Cita
  #5  
Antiguo 26-08-2005
Avatar de Anunakis
Anunakis Anunakis is offline
Miembro
 
Registrado: abr 2004
Posts: 37
Poder: 0
Anunakis Va por buen camino
Ya conocia esos grids de las JVCL pero los de SM no. El caso es que, aunque tenga que programas me da igual, lo que pasa es que tengo un proyecto de mas de 60grids cada uno con sus propiedades y eventos asignados y no es plan de cambiar todo eso.

Yo habia pensado en un codigo que me lo pintase y asignarles a todo ese mismo procedimiento y asi me ahorro mucho trabajo.

Gracias de todas formas, veo que hay gente que le pone interes a las dudas de los demas.
__________________
Un buen programador no se mide por los programas que hace, sino por lo que ayuda a los demás programadores.
Responder Con Cita
  #6  
Antiguo 26-08-2005
Avatar de Chente(rMan)
Chente(rMan) Chente(rMan) is offline
Miembro
 
Registrado: ago 2005
Posts: 89
Poder: 19
Chente(rMan) Va por buen camino
Thumbs up

Que tal Anunakis, yo tambien ya habia buscado esto que preguntas, y lo habia buscado tambien en los hilos que te enviaron, pero ahi no encontre nada, de cualquier manera aqui te envio la solución.


en el evento OnDrawColumnCell de tu dbgrid agrega este código:

Código Delphi [-]
  with (Sender as TDBGrid) do
    begin
      if DataSource.DataSet.RecNo mod 2 = 0 then
        Canvas.Brush.Color := $00F8FFC6
      else
        Canvas.Brush.Color := clWhite;
      Canvas.Font.Color := Font.Color;
      DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

y listo!!!


Saludos.


Vicente López.
Responder Con Cita
  #7  
Antiguo 29-08-2005
Avatar de Anunakis
Anunakis Anunakis is offline
Miembro
 
Registrado: abr 2004
Posts: 37
Poder: 0
Anunakis Va por buen camino
Hola Chenter(Man), probé el codigo que me pusistes en cuanto pude pero no he conseguido hacerlo funcionar ya que siempre me hace el "else" de la condicion y por tanto me lo pone todo en blanco, salvo cuando el dbgrid no tiene registros y la primera fila (vacia) me sale en ese color azulillo.

Yo utilizo D7 con BDE, ¿tendrá algo que ver?.
Lo probaré con ADO aver que tal.
__________________
Un buen programador no se mide por los programas que hace, sino por lo que ayuda a los demás programadores.
Responder Con Cita
  #8  
Antiguo 29-08-2005
Avatar de Anunakis
Anunakis Anunakis is offline
Miembro
 
Registrado: abr 2004
Posts: 37
Poder: 0
Anunakis Va por buen camino
Efectivamente con ADO funciona a la perfeción, el fallo es que tengo todo el proyecto con BDE, jeje, y tendré asi como unas 40 50 tablas con su codigo especifico de BDE.

Seguiré probando cosas de todas maneras y alomejor el codigo que me as pasado lo puedo amoldar a BDE, si alguién sabe como hacerlo que me lo comente porfavor.

Gracias
__________________
Un buen programador no se mide por los programas que hace, sino por lo que ayuda a los demás programadores.
Responder Con Cita
  #9  
Antiguo 14-06-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Recuadrar líneas de un DBGrid

Mi problema es parecido, así que añado mi pregunta aquí.
Yo tengo esta función de coloreado de filas que funciona perfectamente:
Código Delphi [-]
  if (qfacturaITOT.IsNull) then
    begin
      gFacturas.canvas.brush.color := clwhite;
      gFacturas.canvas.font.color := clblack;
      gFacturas.canvas.fillrect(rect);
    end
  else
    begin
      gFacturas.canvas.brush.color := clAqua;
      gFacturas.canvas.font.color := clblack;
      gFacturas.canvas.fillrect(rect);
    end;
  gFacturas.DefaultDrawColumnCell(Rect, DataCol, Column, State);
El problema es que ahora quieren cambiarlo: quieren que en lugar de colorear la fila entera sólo dibuje un recuadro en la fila, enmarcarla en lugar de rellenarla. Y no tengo ni idea de cómo hacerlo, lo que he intentado hasta el momento no me ha funcionado.
¿Alguien sabe cómo hacerlo o es imposible?

Gracias de antemano.
Responder Con Cita
  #10  
Antiguo 23-02-2012
hugobenitez hugobenitez is offline
Miembro
 
Registrado: oct 2006
Posts: 24
Poder: 0
hugobenitez Va por buen camino
filas de diferentes colores

Hola Chicos, es mi primer y humilde aporte a vuestros bastos conocimientos sobre el tema.

Yo lo solucione asi:

if (odd(TDBGrid(Sender).DataSource.DataSet.RecNo)=TRUE) and not (gdSelected in State) then
begin
TDBGrid(Sender).canvas.Font.Color:=clBlack;
TDBGrid(Sender).canvas.Brush.Color:=clSilver;
end;
TDBGrid(Sender).DefaultDrawColumnCell(rect,DataCol,Column,State);


Utilizo Delphi 5. Un abrazo y gracias por tantas soluciones para todos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 07:17: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