FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Pintar filas TDBGrid
Hola necesito pintar las filas en una TDBGrid, es decir pintar por ejemplo con celeste las filas impares.
gracias |
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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, |
#4
|
||||
|
||||
Si..
Si lo que quiero es alternar los colores.
celeste blanco celeste blanco celeste ... gracias |
#5
|
|||
|
|||
hola,
seria algo asi
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. |
#7
|
||||
|
||||
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 |
#8
|
||||
|
||||
También puedes echarle un vistazo a este componente (TCustomizeGrid) que hay en mi página Web.
Te permite hacer lo que necesitas utilizando el DBGrid que ya tienes y sin escribir una línea de código. Es un componentes aparte del DBGrid; Le asignas el Grid con el que trabaja, y el estilo de filas alternativas que quieres: asOxid, asDarkSky, asDesert,... En la imagen tienes algunos ejemplos; Además tienes alguna otra propiedad para mejorar el pintado del DBGrid, junto con eventos extra para facilitar el pintado de elementos diferentes en las filas. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
||||
|
||||
cambiar el color de una fila del dbgrid
Puedes consultar el truco 411 de Trucomania (cambiar el color de una fila) y tambien el 61, para las columnas
No obstante, te lo copio para adelantarte algo En este otro, cambiaremos el color de una fila entera, es decir, de un registro entero (un registro o los que cumplan una determinada condición). El asunto es conseguir que la comparacion de si se trata de un registro a mostrar de otro color, no se realice una vez por cada campo de cada registro, sino una vez por registro, ganando así en velocidad. Para ello, calcularemos el color con el que pintaremos el registro en una sóla de las columnas del DBGrid, usando este color calculado en el resto de las columnas. ¿Para que sirve esto?, por ejemplo, imaginate una lista de clientes mostrada en un DBGrid... podriamos marcar en rojo aquellos clientes que nos deban dinero... Vamos con un ejemplo: Usaremos la tabla Animals.DBF de las demos de Delphi: -Pon una Tabla y asociala a la tabla Animals.DBF de las demos de Delphi -Pon un Datasouce asociado a la tabla -Pon un DBGrid (DBGrid1) asociado al DataSource -Declara una variavle TColor en el private de la form:
-Mete este código en el evento OnDrawColumnCell de DBGrid1:
Una mejora para que funciona aunque hagan scroll de las columnas:
Enviado por: Santy Concepción (SANTYCG@terra.es) Te envío una mejora para el truco [411] de TrucoManía Mostrar de otro color una FILA de un DBGrid Con los trucos anteriores, el formato y la alineación del texto de las celdas se perdía... Pero con este método lo conservamos y el resultado es increíble.
Así conservamos el formato y alineación del texto que había antes. |
#10
|
|||
|
|||
pintar las filas pares de un color
Fijate con esto un dbgrid y un query
no me lo acuerdo bien como lo hice pero era mas o menos asi... Ej If((Query1.recNo mod 2)=0)then DBgrid1.Canvas.Brush.color:= clSkyBlue; {Fijate en las propiedades del query que no se si iba de una recNo o iba antes Field o otra cosa} dbgrid1.DefaultDrawColumnCell(rect,DataCol,Column,State) |
#11
|
|||
|
|||
Aca lo encontre....
procedure TFVisor.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var i:integer; begin if ((Column.Field.Dataset.FieldbyName('Prestado').AsBoolean)=True) then dbgrid1.canvas.Font.color := clRed; if ((DataModule1.QVisor.RecNo mod 2)=0)then begin if (gdselected in State)then begin dbgrid1.canvas.brush.color := clActiveCaption; end else dbgrid1.canvas.brush.color := clSilver; end; dbgrid1.DefaultDrawColumnCell(rect,DataCol,Column,State); |
#12
|
||||
|
||||
Francisco, utiliza TAG's cuando añadas código a los mensajes.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
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 |
|