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,