PDA

Ver la Versión Completa : Repintar Formulario Padre al Mover Formulario Modal


juniorSoft
11-03-2017, 18:54:22
Hola Amigos,

Mi inquietud es, como puedo repintar el formulario padre al mover un formulario Modal; al mover el formulario Modal se produce un efecto no deseado dejando rayas por todos lados.

AgustinOrtu
11-03-2017, 19:10:41
Se supone que si abris un formulario de manera modal, el "padre" (no se a que te refieres exactamente con esto, supongo que al formulario principal) se desactiva. A que llamas repintarlo?

Y mas curioso aun, porque necesitas repintarlo? Al mostrar una ventana modal se supone que el usuario deberia centrar toda su atencion en esta ventana, es por eso que es una llamada "bloqueante" para el emisor, el cual no puede continuar hasta que se cierre esta ventana modal

juniorSoft
11-03-2017, 19:18:53
realice una solución quizás algo chapucera pero funciono

Cree un procedimiento publico en el formulario principal para poder invocar el método Realign, luego en el formulario modal lo invoco en su evento OnMouseUp

juniorSoft
11-03-2017, 19:29:00
Hola AgustinOrtu

si es el formulario Principal, excusas por la descripción

Y mas curioso aun, porque necesitas repintarlo? Al mostrar una ventana modal se supone que el usuario deberia centrar toda su atencion en esta ventana, es por eso que es una llamada "bloqueante" para el emisor, el cual no puede continuar hasta que se cierre esta ventana modal

Es un Formulario Modal Pequeño, si se mueve con el mouse empieza a crear rayas en el formulario principal, claro el usuario estará utilizando dicho form modal pero se ve poco profesional que si el usuario mueve este formulario este empiece a crear rayas y si al terminar no invoco el método Realign se quedan hasta que abra otro formulario y lo que buscaba era una forma de que si se mueve repinte automáticamente estas rayas

AgustinOrtu
11-03-2017, 19:33:09
Muy extraño, nunca he visto algo igual.

Podes crear un ejemplo que lo reproduzca?

juniorSoft
11-03-2017, 19:36:50
Otra forma de solucionar el problema adaptando algo de código que encontré aquí http://stackoverflow.com/questions/288813/how-to-repaint-a-parent-form-while-a-modal-form-is-active

procedure TFormPrincipal.OnDoIdle(Sender: TObject; var Done: Boolean);
begin
Realign;
end;


procedure TFormPrincipal.FormCreate(Sender: TObject);
begin
Application.OnIdle:=OnDoIdle;
end;

juniorSoft
11-03-2017, 20:23:30
Ya encontré el problema yo también lo vi muy extraño y aparecía aveces. El efecto se esta produciendo por una aplicación externa a Delphi; tengo instalado un Emulador de android llamado Memu y al parecer esta creando una capa sobre la pantalla que produce ese efecto. Dure un rato probando sin el emulador abierto y no se reprodujo el efecto.

Disculpas por no identificar esto antes de preguntar.