Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-01-2006
akinom38 akinom38 is offline
Miembro
 
Registrado: ene 2006
Posts: 15
Poder: 0
akinom38 Va por buen camino
Gracias, pero no ha habido suerte.....

Hola, muy buenas. Antes de nada, muchas gracias por la respuesta.
Primeramente he probado con la última sugerencia de invocar al método Repaint en el evento OnEnter del Panel, pero no funciona.

Seguidamente he probado a usar el método OnDataChange del DataSource, quitando el código de OnPaintPanel, pero misteriosamente...hace cosas muy raras.

Finalmente, dejando el código que tenía OnPaintPanel y además añadiendolo también en OnDataChange, funciona bien para todos los casos menos para el primer registro. (Que debería de salir rojo, pero se pinta en verde hasta que clickeo en él). Antes de este cambio, además de ésto en las demás mesas rojas, al clickear por primera vez en ellas se pintaban en verde. Cosa que al añadir el código de OnDataChange ya no.

No sé si me he explicado bien o no....

Alguna sugerencia?
Responder Con Cita
  #2  
Antiguo 22-01-2006
akinom38 akinom38 is offline
Miembro
 
Registrado: ene 2006
Posts: 15
Poder: 0
akinom38 Va por buen camino
de otra forma....

Hola, bueno, creo que me voy a volver loca!!

A ver, ahora he probado sólo con el siguiente código en el evento OnPaintPanel del DBCtrlGrid:

Código Delphi [-]
begin
    if (DBCtrlGrid1.DataSource.DataSet.FieldByName('estado').AsString)='Libre' then
        DBCtrlGrid1.Color:=clGreen
  else
       DBCtrlGrid1.Color :=clRed;    
end;

En vez de colorear el Panel, como antes, coloreo el DBCtrlGrid. Y cual es el resultado? Pues que si tienen que aparecer las mesas 1,2,3 y 15 en rojo. Aparecen en rojo las mesas 2,3,4 y 16. Alguna idea de por qué pasa ésto?

Un saludo,
Responder Con Cita
  #3  
Antiguo 23-01-2006
akinom38 akinom38 is offline
Miembro
 
Registrado: ene 2006
Posts: 15
Poder: 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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:53:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi