Ver Mensaje Individual
  #5  
Antiguo 23-01-2006
akinom38 akinom38 is offline
Miembro
 
Registrado: ene 2006
Posts: 15
Reputación: 0
akinom38 Va por buen camino
Una posible solución

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);
 
  // determinamos el color del panel
  if DBCtrlGrid1.DataSource.DataSet.FieldByName('estado').AsString = 'Libre' then
    DBCtrlGrid1.Canvas.Brush.Color := clGreen
  else
    DBCtrlGrid1.Canvas.Brush.Color := clRed;
     
// rellenar panel
  DBCtrlGrid1.Canvas.FillRect(r);
    
// Dibujar el rectangulo del foco
  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,
Responder Con Cita