Altra cosa, nei Form secondari se clicco sulla "X" invece di "Home"
si nasconde tutto....sarebbe meglio in ogni caso ritornare alla Form "Home" principale,
oppure aggiungere un bottone "chiudi tutto".
Sai come potrei risolvere questi due problemi?Consigli?
La chiamata di form modali funziona come quella di una "Function", come potrai constatare nella documentazione di Gambas.org. Ciò significa che puoi benissimo fare salire la form dipendente con :
Dim iSwReturn as integer
iSwReturn = Form1.showmodal()
if SwReturn > 0
Message.Info("Form1 chiusa anomalmente")
else
Message.Info("Form1 chiusa con successo")
endif
Dentro la Form1 puoi decidere in qualsiasi punto della classe di chiudere la Form e di restituire il controllo alla Form padre, semplicemente con:
Me.Close(x) ' dove x è un intero
Non ho capito perchè nella chiamata di una form utilizzi sia .Load che .Showmodal.
Infatti per ottenere il caricamento della Form dipendente è sufficiente applicare il metodo
Showmodal.Così pure non hai bisogno di rientrare dalla Form modale alla chiamante con:
la riga f1.hide nasconde la
F1 ma non la rilascia, mantenendola pertanto sempre attiva e con conseguente impegno inutile di memoria.
Inoltre la
FMain.Show fa partire una nuova istanza della FMain, creando perciò un nuovo impegno di memoria. Il tutto si risolve semplicemente utilizzando il Me.Close che ho indicato sopra.
Spero di esserti stato utile.