Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2004
frf_84 frf_84 is offline
Registrado
 
Registrado: dic 2004
Posts: 3
Poder: 0
frf_84 Va por buen camino
colores en un dbgrid

buenas tengo una tabla en la que uno de sus campo es de tipo booleano, y me gustaria que al mostrar sus registros en un dbgrid los registros que estan con el valor verdadero de este campo quiero mostrarlos con un color por ejemplo rojo t lo que lo tienen a falso amarillo po ejemplo, he leido que el componente canvas se puede hacer que no lo he conseguio y por eso os pido ayuda.
gracias.
Responder Con Cita
  #2  
Antiguo 07-12-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
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 éste hilo:
http://www.clubdelphi.com/foros/showthread.php?t=14929

Puedes encontrar respuestas anteriores a ésta pregunta.
__________________
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 07-12-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Poder: 21
burasu Va por buen camino
Este es el código que utiizo yo, lo añado en el OnDrawColumnCell de la rejilla, y lo puedes usar tanto si esta está enlazada con un componente Tabla como con un componetne SQL. En este caso, yo uso los colores para determinar si el usuario está en el sistema y si el usuario está activado o no.

Código Delphi [-]
  if gdselected in state then begin                   // REGISTRO SELECCIONADO POR EL USUARIO.
    dbgrid1.canvas.brush.color := RGB(0,0,128);
    dbgrid1.canvas.Font.color := RGB(255,255,255);
    dbgrid1.canvas.Font.style:=[fsBold];                  // Lo ponemos en modo negrita
  end
  else begin
   if (TBUsuarios.RecNo mod 2) = 0 then begin         // COMPROBAMOS SI EL REGISTRO ESTÁ SITUADO EN REJILLA PAR O IMPAR
    if Column.Field.Dataset.FieldbyName('LActivo').Value = 1 then begin   // SI EL REGISTRO ESTÁ BLOQUEADO.
      dbgrid1.canvas.brush.color := RGB(255,0,0);
      dbgrid1.canvas.font.color := RGB(255,255,255);
      dbgrid1.canvas.Font.style:=[fsBold];
    end
    else begin
      if (TablaAcceso[TBUsuarios.FieldbyName('NUsuario').AsInteger-1] = 1) and ( TBUsuarios.FieldbyName('NUsuario').Value<> ModuloDatos.RegFichIni.UltUser) then begin
        dbgrid1.canvas.brush.color := RGB(0,128,128);    // Verde Teal'
        dbgrid1.canvas.Font.color:=RGB(255,255,255);    // Blanco
        dbgrid1.canvas.Font.style:=[fsBold];
      end
      else begin
          dbgrid1.canvas.brush.color := RGB(255,255,225);   // Amarillo Claro
          dbgrid1.canvas.Font.color := RGB(0,0,0);
          dbgrid1.canvas.Font.style:=[];
      end;
    end;
   end
   else begin
    if Column.Field.Dataset.FieldbyName('LActivo').Value = 1 then begin
      dbgrid1.canvas.brush.color := RGB(255,0,0);
      dbgrid1.canvas.font.color := RGB(255,255,255);
      dbgrid1.canvas.Font.style:=[fsBold];
    end
    else begin
//      if (TBUsuarios.FieldbyName('NUsuario').Value = AcUser) and (AcUser <> ModuloDatos.RegFichIni.UltUser) then begin
      if (TablaAcceso[TBUsuarios.FieldbyName('NUsuario').AsInteger-1] = 1) and ( TBUsuarios.FieldbyName('NUsuario').Value<> ModuloDatos.RegFichIni.UltUser) then begin
        dbgrid1.canvas.brush.color := RGB(0,128,128);
        dbgrid1.canvas.Font.color:=RGB(250,250,183);
        dbgrid1.canvas.Font.style:=[fsBold];
      end
      else begin
        dbgrid1.canvas.brush.color := RGB(250,250,183);
        dbgrid1.canvas.Font.color := RGB(0,0,0);
        dbgrid1.canvas.Font.style:=[];
      end;
    end;
   end;
  end;

  dbgrid1.DefaultDrawColumnCell(rect,DataCol,Column,State);

Espero que te ayude

P.D: Visto así creo que se puede optimizar bastante, pero eso ya te lo dejo a tí.
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


La franja horaria es GMT +2. Ahora son las 17:57:42.


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