Hola a todos! Tras un paseillo por foros y otros lugares de Internet, lo que he conseguido es lo siguiente:
He quitado el Panel de antes, y el DBText lo pongo directamente.
Entonces con poner el siguiente código en el evento OnPaintPanel, funciona correctamente. (En vez de cambiar el color del panel, cambiamos el color del canvas, y luego lo dibujamos, ' o eso es lo que entiendo, vamos').
Código Delphi
[-]
procedure TFSituacionMesas.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
Index: Integer);
var
r: TRect;
begin
r := Rect(0,0,DBCtrlGrid1.PanelWidth-3,DBCtrlGrid1.PanelHeight-3);
if DBCtrlGrid1.DataSource.DataSet.FieldByName('estado').AsString = 'Libre' then
DBCtrlGrid1.Canvas.Brush.Color := clGreen
else
DBCtrlGrid1.Canvas.Brush.Color := clRed;
DBCtrlGrid1.Canvas.FillRect(r);
if DBCtrlGrid1.PanelIndex = Index then
DBCtrlGrid1.Canvas.DrawFocusRect(r);
end;
Lo dejo, aquí por si a alguien le sirve de algo.
Aúnque lo haya solucionado de esta forma, si a alguien se le ocurre como arreglar el problema que tenía antes, o por qué pasaba eso, pues que lo comente. Más que nada, porque me he quedado con curiosidad....
Saludos,