Se non vuoi che l'utente possa interagire con il form chiamante mentre è visualizzato un altro form (ad esempio se _deve_ rispondere a qualche domanda o selezionare qualcosa) allora conviene fare chiamate modali. Altrimenti, se l'utente deve poter interagire con i 2 form contemporaneamente, chiamali normalmente.
Tieni conto di una cosa: un form modale è legato al form chiamante anche per il desktop manager, per cui cliccando sulla riduzione ad icona del form genitore rimpicciolisci anche il figlio. Nel secondo caso no, ogni form è a sé stante.
Scusa Leo se ho tralasciato questa discussione per un pò di giorni, ma, come avrai sicuramente, appreso, ho incontrato qualche problema con errori strani provocati dal tentativo di imparare ad usare i gruppi di oggetti all'interno di una Form. Ora che gli errori sono stati consegnati alla giustizia esadecimale per la successiva condanna a mai più comparire durante l'esecuzione del mio povero programma,
posso riprendere perchè vorrei impostare il .show delle Form chiamate di volta in volta attraverso le funzioni agganciate ai menù della FMain.
È chiaro che se da un Menù presente nella FMain, scateno l'evento relativo:
PUBLIC SUB MenuX_Click()
FormX.Show
END
La FormX si apre, mentre resta attiva la FMain e tutte le altre finestre eventualmente selezionabili nel pannello di Gnome/Kde.
Se però il codice relativo all'evento scatenato è il seguente:
PUBLIC SUB MenuX_Click()
FormX.ShowModal
END
La FormX si apre, ma da quel momento e fino a quando il controllo non ritorna, da codice, alla Form chiamante(FMain nell'esempio) non riesco a svolgere alcuna funzione dentro appunto la Form chiamante, ma non posso nemmeno rientrare nella finestra di connessione Internet per consultare il Forum di Gambas.
Infine, se il codice relativo all'evento scatenato è il seguente:
PUBLIC SUB MenuX_Click()
FormX.ShowDialog
END
La FormX rappresenta una Form.children che si apre, ma ...non ho capito... se, come la modale, da quel momento e fino a quando il controllo non ritorna, da codice, alla Form chiamante, posso svolgere operazioni solo all'interno della orm chiamata, oppure, se posso ugualmente agire sulla Form chiamante, Sicuramente potrò invece agire sulle altre finestre disponibili per la selezione nel pannello di Gnome/Kde.
In ogni caso, se volessi rendere attiva la Form successiva, prima ancora di eseguire lo show, in modo permetterle l'esecuzione di codice preliminare al metodo show, come potrei fare?
Ti prego, se non ti pesa, di darmi anche un piccolo chiarimento: in questo momento, prima che prosegua nella stesura del programma, è molto importante per me. Ne va anche della mia crescita in Gambas. Come faresti a caricarti di una simile responsabilità?
Ciao.