Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2004
Avatar de merlin
merlin merlin is offline
Miembro
 
Registrado: nov 2003
Posts: 64
Poder: 21
merlin Va por buen camino
Exclamation colorear filas dbgrid

hola a todos los foreros.

mi problema creo q es muy tipico por lo q he visto en otros hilos aunq en ningunno he encontrao la manera de solucionarlo.

Yo tengo dbgrid relaccionado con una tabla (dbase) lo q quiero es q en los registro q el campo tipo='S' se coloreen de rojo y los de tipo='E' que se queden con el color de siempre mi codigo es el siguiente:

Código:
procedure TAPUNTES.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 if (TAPUNTES.FieldByName ('TIPO').AsString ='S') and (gdSelected in State) then
    DBGrid1.Canvas.Font.Color := clRed;

 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
pero mi problema es que no lo termina de hacer bien porque cuando yo habro el formulario solo me ha pintado el ultimo que cumple la condicion y todos los demas los ha dejado con el color de siempre lo q si hace es q cuando me muevo por el dbgrid los colorea pero solo cuando estoy en el si me cambio se quita el color ¿como puedo hacer para q de primeras me salgan todos pintalos y q no pierdan el color cuando paso por ellos?
__________________
.:|Merlin|:.
Responder Con Cita
  #2  
Antiguo 17-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por merlin
[...]los colorea pero solo cuando estoy en el si me cambio se quita el color

Pues hace lo que le estás diciendo:


Cita:
Empezado por merlin
Código Delphi [-]
if (TAPUNTES.FieldByName ('TIPO').AsString ='S') and (gdSelected in State)  then
    DBGrid1.Canvas.Font.Color := clRed;
Es decir, le estás diciendo, "pon la fuente de color rojo si tipo='s' y la fila está seleccionada"

Quita esa condición para que te ponga el texto rojo en cualquier momento.

// Saludos
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 02:21:46.


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