PDA

Ver la Versión Completa : Ventanas Modales


subzero
27-09-2006, 01:10:02
Hola amigos, como anda todo.... y empiezo así:

En las ultimas aplicaciones he estado trabajando con ventanas que se crean al momento de ser invocadas y se liberar al momento de cerrarlas por cierto les comparto mi código:


Creo una función que se llama mostrar_ventana


procedure mostrar_ventana(AClass: TFormClass);
begin
with AClass.Create(Application) do
try
ShowModal;
finally
free;
end;
end;

**********
Con esta linea se invoca
mostrar_ventana(TfProductosPorEmpresa)


Bueno, el funcionamiento como sabemos del ShowModal al momento de ser invocado bloque todo hasta la ventana principal.

Ya conociendo como abordo el llamamiento de ventanas mi pregunta es la siguiente: debido a que en ocasiones se hace necesario tener varias ventanas abiertas de la misma aplicación existirá alguna forma de reutilizar la función, ya que cuando lo coloco como Show, me muestra la ventana pero se pierde instantaneamente, y tambien he probado colocando la ventanas que se autocreen...

Agradezco de antemano al haberse interezado en mi pregunta.

jachguate
27-09-2006, 02:30:13
Si queres interactuar con varias ventanas a la vez, no podes mostrarlas modalmente, has de hacerlo "no modal".

Cómo ya has apuntado, al mostrar la ventana, el control regresa a la siguiente línea de código, por lo que no podes liberarla puesto que el usuario jamás la verá.

Podes usar un código similar, pero no liberar la ventana. Para asegurarte que se libere al cerrarla, podes establecer el Parámetro "Action" del evento OnClose de la ventana al valor "caFree", de manera que esta se "autolibera" cuando se oculta.

Hasta luego.

;)