Ver Mensaje Individual
  #1  
Antiguo 21-01-2006
akinom38 akinom38 is offline
Miembro
 
Registrado: ene 2006
Posts: 15
Reputación: 0
akinom38 Va por buen camino
Cambiar color en panel de DBCtrlGrid segun valor de un atributo

Hola buenas noches!

Estoy programando una aplicación para un restaurante utilizando Delphi6 y Paradox. Mi problema es el siguiente: Estoy utilizando un DBCtrlGrid para visualizar en un formulario todas las mesas de la tabla mesas. Dentro del DBCTrlGrid he dibujado un panel para dar la impresión de que sea un botón....y dentro de este panel tengo un DBText en el que muestro el nombre 'descripción' de la mesa. Además, la tabla mesas tiene un atributo llamado estado en el que guardo si la mesa está libre u ocupada. Si está libre quiero que el panel aparezca en verde y si no en rojo.
Bien, entonces en el evento onPaintPanel he implementado el siguiente código:
Código:
if (DBCtrlGrid1.DataSource.DataSet.FieldByName ('estado').AsString)='Libre'  then
           Panel1.Color :=clGreen
    else
               Panel1.Color :=clRed;
end;
Entonces, en principio, pues las pinta de ese color, pero en cuanto pasa el foco (o en el primer click) a una de las mesas de las que se suponen están en rojo, se ponen en verde por un momento y no sé como arreglarlo. Lo peor es si la primer mesa está en rojo, como en principio tiene el foco, pues aparece en verde.

Alquien tiene alguna idea de como solucionarlo? O si es posible hacer algo, u debería utilizar otro componente? No sé, cualquier idea es bien recibida...

Un saludo,
Responder Con Cita