Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-08-2004
candido candido is offline
Miembro
 
Registrado: may 2003
Posts: 11
Poder: 0
candido Va por buen camino
Cambiar el color de una celda de un DBGrid

La pregunta es sencilla aunque la respuesta no creo que lo sea,

Quisiera cambiar el color de una celda de un DBGrid, dependiendo de si el valor de esta es positivo o negativo.

Gracias!!!!
__________________
Me da pena que se admire el valor en la batalla;
menos mal que con los rifles no se matan las palabras.
Responder Con Cita
  #2  
Antiguo 06-08-2004
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.233
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
Cita:
Empezado por candido
Quisiera cambiar el color de una celda de un DBGrid, dependiendo de si el valor de esta es positivo o negativo.
Pues la respuesta es sencilla, seguro que si buscas en los foros ya se ha contestado antes (en la pantalla de búsqueda escribes "DBGrid Color" sin las comillas) y podrás obtener otras soluciones, de todas formas hace unos días contesté una pregunta muy similar y tengo el código a mano. Ahí va:

Es un ejemplo que pinta todas las celdas de la columna 1 cuyo importe sea impar (...sí, ya se que es una parida, pero es para poner un ejemplo...)

Código Delphi [-]
//-----------------------------------------------------------------procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  // La columna es la 1 y no está seleccionada?
  i f (Column.Index = 1) and (State = []) then begin
   // El valor de la celda es impar? 
    if (odd(DBGrid1.Columns[Datacol].Field.AsInteger)) then begin
      // Cambia el color de fondo de la celda a ROJO.
      DBGrid1.Canvas.Brush.Color := clRed;
      // Manda pintar la celda
      DBGrid1.DefaultDrawColumnCell(rect,DataCol,Column,State);
    end;
  end;
end;
//-----------------------------------------------------------------

__________________
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
  #3  
Antiguo 06-08-2004
candido candido is offline
Miembro
 
Registrado: may 2003
Posts: 11
Poder: 0
candido Va por buen camino
gracias machote, me ha servido perfectamente.
__________________
Me da pena que se admire el valor en la batalla;
menos mal que con los rifles no se matan las palabras.
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 16:33:36.


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