Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 07-12-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Poder: 24
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
 



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 13:27:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi