PDA

Ver la Versión Completa : Borde persistente en aplicación MDI


sferron1
29-07-2010, 19:35:16
Hola a tod@s,
Tengo un problema que no sé cómo solucionar.
En una aplicación MDI, si abro un par de forms mdichild y uno de ellos lo maximizo, al devolverlo al tamaño normal me aparece una línea a la izquierda del form sobre la imagen del form principal que, presumiblemente, se corresponde con el borde izquierdo del mismo form hijo. Si arrastro el form, en cuanto se inicia el movimiento la línea desaparece.

He de añadir que en el form principal utilizo el evento OnPaint para repintar una imagen en el canvas del form.

No sé si estará relacionado con la resolución de mi monitor (1280x1024).

Muchas gracias de antemano por vuestra habitual ayuda.
Saludos

AzidRain
29-07-2010, 19:55:44
Si pones una captura de pantalla va a ser más fácil. Aunque por lo que mencionas se trata del refresco de la imagen. Puede bien ser en efecto un detallito con windows dada la resolución. Puedes probar haciendo un update en el evento que se ejecuta cuando vuelves a su tamaño normal el form hijo, es decir, al regresar a su tamaño normal el form hijo le debe decir a su padre que se actualice para que la imagen se refresque. Es exactamente lo mismo que el form hijo le dice al padre cuando lo mueves, por eso se borra al moverlo.

sferron1
29-07-2010, 20:40:12
Si pones una captura de pantalla va a ser más fácil. Aunque por lo que mencionas se trata del refresco de la imagen. Puede bien ser en efecto un detallito con windows dada la resolución. Puedes probar haciendo un update en el evento que se ejecuta cuando vuelves a su tamaño normal el form hijo, es decir, al regresar a su tamaño normal el form hijo le debe decir a su padre que se actualice para que la imagen se refresque. Es exactamente lo mismo que el form hijo le dice al padre cuando lo mueves, por eso se borra al moverlo.

En primer lugar, gracias por tu pronta respuesta.
He probado a forzar repintar el form padre en el evento resize del formchild pero el problema persiste.
He podido averiguar alguna cosa: se debe a la presencia de un Splitter en el form padre. En realidad, el form padre contiene un treeview ajustado a la izquierda, un splitter también ajustado a la izquierda y una imagen que ocupa todo el resto, a modo de escritorio.
Pues bien, si el Splitter está visible, es entonces cuando sucede que tras maximizar y devolver a la popsición normal un form hijo, aparece la rayita
Si el splitter no está visible no aparece la rayita de marras.
http://www.clubdelphi.com/foros/c:\dibujo.bmp
Muchas gracias por todo. Sigo investigando para ver la manera de mantener el splitter sin que se produzca el problema.
Saludos