2011-09-23 11 views
6

Desidero chiedere all'utente di chiudere tutti i moduli aperti prima di terminare la mia domanda.Come ottenere una lista da tutti i moduli aperti del mio software?

Come posso ottenere automaticamente un elenco dai moduli aperti?

Utilizzo Delphi 2006 e non utilizzo Creazione automatica del modulo, ma sto utilizzando il modulo creato automaticamente con riferimento allo var con Application.CreateForm.

I miei saluti.

risposta

3

Una possibile soluzione (utilizzo in C#) consiste nel memorizzare ogni istanza di modulo aperta in una lista var. Ad esempio, è possibile avere un elenco globale denominato openedForms; quando viene creato ogni modulo, il modulo stesso può aggiungere il suo riferimento a openedForms e rimuoverlo alla chiusura.
Quando l'utente tenta di chiudere l'app, è possibile controllare che il numero di elenchi sia maggiore di zero e, se l'utente vuole davvero chiudere, chiudere con garbo ogni istanza di modulo contenuta in openForms prima di chiudere l'app.

1

Io uso

Main.MDIChildCount >0 

per il bambino froms

+0

Thx per risposta, ma non sto 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; 

Spettacoli MDI e forme non MDI.

Problemi correlati