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 23-01-2006
Iskariote0087 Iskariote0087 is offline
Miembro
 
Registrado: ene 2006
Posts: 81
Poder: 19
Iskariote0087 Va por buen camino
Red face Cambiar color filas DBGrid

Hola tengo un pequeño problema.
Dependiendo del valor de una variable quiero q el registro q grabo en el DBGrid se grabe con un color o con otro, casi lo consigo pero en vez de cambiar un solo registro me cambian todos y eso NO NO. Lo estoy haciendo asi:

En el evento DrawColumnCell
if linea=0 then
DBGrid1.Canvas.Brush.Color:=clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);


Con esto me cambia todo el DBGrid, hay alguna forma de que me cambie una sola linea.
Lo que quiero consegir es cada linea este de un color diferente para que se distingan bien.Que tal una ayudita.Gracias

Un saludete
Iskariote
Responder Con Cita
  #2  
Antiguo 23-01-2006
tuto tuto is offline
Registrado
 
Registrado: nov 2003
Posts: 5
Poder: 0
tuto Va por buen camino
Yo eso lo tengo en un TstringGrid de la siguiente forma;

if (Pos('DIFERENTE', Sgrid1.cells[0,row]) > 0) then
begin
Sgrid1.canvas.brush.Color := clred;
Sgrid1.canvas.fillrect(rect);
Sgrid1.canvas.textrect(rect, rect.left, rect.top, Sgrid1.Cells[col,row]);
end;

Espero te pueda ayudar o guiar.

;-)
Responder Con Cita
  #3  
Antiguo 23-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa los hilos que aparecen al final de la página o realiza una búsqueda en los foros; Es un tema que ya se ha tratado muchas veces.
__________________
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.
Responder Con Cita
  #4  
Antiguo 23-01-2006
Iskariote0087 Iskariote0087 is offline
Miembro
 
Registrado: ene 2006
Posts: 81
Poder: 19
Iskariote0087 Va por buen camino
Agradecimiento

Gracias por vuestras contestaciones, pero algo no estoy haciendo bien.Despues de revisar con detenimiento algunos hilos he tomado una idea bastante buena, hago lo siguiente:
if linea=0 then
DBGrid1.Canvas.Brush.Color:=clRed;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Font.Color:=clWindowText;


Pero este codigo me cambia todas las lineas no solo una. Es mas cuando la variable Linea tiene 1 todas las lineas me las pone de un color y si viene con 0 me las pone de otro. algo se me queda en el tintero y no se que es.Alguna alma caritativa que me eche un cable???????
Un saludete
Iskariote
Responder Con Cita
  #5  
Antiguo 23-01-2006
josem josem is offline
Miembro
 
Registrado: mar 2004
Posts: 23
Poder: 0
josem Va por buen camino
Pintar una fila en un DbGrid

Hola, espero que este ejemplo te sirva.

Saludos
Jose Miguel

procedure TFMntInventario.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
iDif : Extended;
iFile: Extended;
begin
// Cambia color a Existencia por debajo del minimo
if ( Dt1.TInventario.FieldByName('ExistAct').AsInteger <
Dt1.TInventario.FieldByName('ExistMin').AsInteger ) then begin
DBGrid1.Canvas.Font.Color := clRed;
end;

// Cambia color a inventario inactivo
if ( SoloNumeros(Dt1.TInventario.FieldByName('Activo').AsString, 0) = '0' ) then begin
DBGrid1.Canvas.Font.Color := clSilver;
end;
if ( FCampoJPG( Dt1.TInventario, 'ActivaVencto' )) then begin
iDif := StrToDate(FormatFecha(Dt1.TInventario.FieldByName( 'FecVcto' ).AsString)) - Date;
iFile := StrToInt(SoloNumeros(Dt1.TInventario.FieldByName( 'AvisoVcto' ).AsString, 0));
// Cambia color a inventario vencido
if ( SoloNumeros( Dt1.TInventario.FieldByName('ActivaVencto').AsString, 0) = '1' ) then begin
if ( Abs( iFile ) >= iDif ) then begin
DBGrid1.Canvas.Brush.Color := $004080FF;
end;
end;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Responder Con Cita
  #6  
Antiguo 23-01-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
(1) Leed la guía de estilo, por favor.
(2) Utilizad TAG's en los mensajes (sobre todos los de delphi); Seleccionáis el trozo de texto correspondiente a código Delphi y pulsáis sobre el icono que hay en la barra del editor (no es tan difícil...).
__________________
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.
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
problema cambiar formato de fila en dbGrid VRO OOP 4 01-10-2004 17:38:52
Cambiar la tecla Tab en un DBGrid Mariano Varios 2 15-09-2004 19:57:26
Cambiar Color una Celda del DbGrid Rabata Varios 5 02-09-2004 09:31:01
como cambiar una fila seleccionada por otra en un DBgrid ? TURING Varios 1 04-08-2004 04:52:01
Cambiar el valor de una celda en DBGrid Aura OOP 8 25-05-2004 23:38:13


La franja horaria es GMT +2. Ahora son las 07:28:17.


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