2011-09-23 12 views
6

Quiero pedirle al usuario que cierre todos los formularios abiertos antes de finalizar mi aplicación.¿Cómo obtener una lista de todas las formas abiertas de mi software?

¿Cómo puedo obtener automáticamente una lista de formularios abiertos?

Estoy usando Delphi 2006, y no usando la creación automática de formularios, pero estoy usando el formulario creado automáticamente referenciado var con Application.CreateForm.

Mis saludos.

Respuesta

3

Una posible solución (uso en C#) es almacenar cada instancia de formulario abierto en una lista var. Por ejemplo, podría tener una lista global llamada openedForms; cuando se crea cada formulario, el formulario mismo puede agregar su referencia a openedForms y eliminarlo al cerrar.
Cuando el usuario intenta cerrar su aplicación, puede verificar que el recuento de listas sea mayor que cero y, si el usuario realmente quiere cerrar, cierra con gracia todas las instancias de formularios contenidas en openForms antes de cerrar la aplicación.

1

utilizo

Main.MDIChildCount >0 

para Child froms

+0

Thx por respuesta, pero no estoy usando MDI. –

0
var 
i:integer; 
begin 
    with Application do 
    for i:=0 to componentcount-1 do 
    if components[i] is TMyCustomForm   //your form class here, or simply TForm 
    then showmessage(components[i].Name); 
end; 

Muestra MDI y formas que no son IDM.

Cuestiones relacionadas