|
... mmmm, discreparía contigo de poner la consulta en el OnShow, ya que dicha consulta se ejecutará cada vez que, por ejemplo, pases de una aplicación a otra del propio windows, y tu form se 'oculte'. Al volver se ejecuta de nuevo el evento OnShow y se volverá a ejecutar la consulta sin ser necesario.
Pero esa sería otra discusión diferente. Aun así, no sé si eso puede o no tener influencia en tu 'parpadeo'. Sólo por probar, deberías sacar esa consulta del evento OnShow y colocarla por ejemplo en el OnCreate, que sólo se ejecutará una vez, al crear el Form.
Hay varios temas en el foro sobre orden de llamada a los diferentes eventos OnShow, OnCreate, OnActivate y parecidos.
Respecto a tu afirmación de que no haya nada en tu aplicación que llame al repintado del Grid, ese es precisamente el problema. Que no es que lo llames tu. Sino que el OnDrawColumnCell se ejecuta muchísimas veces sin tu ser consciente de ello. Lo llama el propio delphi cada vez que tenga que repintarse algo del Grid. Por ejemplo, al mover una ventana cualquiera de tu propia aplicación por encima del DBGrid, es necesario repintarlo, y por tanto se llama al evento OnDrawColumnCell.
Por eso, seguramente sin darte cuenta, se estará llamando por algún lado a dicho evento, y es lo que te provoca el parpadeo del mismo.
__________________
Piensa siempre en positivo !
Última edición por gluglu fecha: 11-06-2007 a las 09:58:24.
|