Ver Mensaje Individual
  #5  
Antiguo 14-12-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.310
Reputación: 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 jzk
Tengo un dbgrid...
Cita:
Empezado por roman
Esto no es posible. Es decir, el StringGrid...
Creo que cada uno váis en una dirección, distintas, por cierto...


Cita:
Empezado por jzk
Tengo un dbgrid que utilizo para mostrar un calendario donde en el eje "X" muestro los días y en el "Y" las tareas que tengo pendientes por hacer.
Mi intención es si para el lunes (por ejemplo) tengo la tarea nº1 asignada, la casilla que corresponde en el DBgrid colorear de color rojo y si no es así manternerlo del color predefinido.
Si utilizas un DBGrid, entiendo que por debajo tienes una tabla/consulta con los datos necesarios; La manera más clara para colorear celdas de un DBGrid es pensar en los datos, no en las celdas.
Segun lo que explicas, tu tabla debería ser una tabla de tareas, con un campo para cada día de la semana.
(a) Si esto es correcto seguir.
(b) Si no es correcto (entonces es que no me he enterado de nada) goto fin.

El evento que debes utilizar en un DBGrid es el OnDrawColumnCell. Preguntas por el valor del campo y si hace falta modificas el color. Prueba con algo como ésto:

Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin 
  // La columna no está seleccionada?
  if (State = []) then begin
    // El valor de la celda es Asignado? (suponiendo A=Asignado)
    if (DBGrid1.Columns[Datacol].Field.AsString = 'A') 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;


También puedes revisar éste hilo, ahí tienes algunos enlaces.
__________________
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