Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: borch - 13 Ottobre 2010, 00:03:58

Titolo: [RISOLTO] Form che contiene al suo interno altri form
Inserito da: borch - 13 Ottobre 2010, 00:03:58
Salve a tutti,

mi sono da pochissimo avvicinato al mondo di Gambas. Il linguaggio mi è dunque per molti versi sconosciuto e spesso procedo a tentoni.
Vorrei porre un quesito.
Ho l'esigenza di potere disporre di un form principale che funga da "contenitore" con un menu permetta di aprire altri form da visualizzare esclusivamente al suo interno. I sotto form devono essere dunque contenuti solo ed esclusivamente all'interno della finestra del form principale. E' possibile?

Grazie e un saluto.
Titolo: Re: Form che contiene al suo interno altri form
Inserito da: Ceskho - 13 Ottobre 2010, 00:18:22
Salve a tutti,

mi sono da pochissimo avvicinato al mondo di Gambas. Il linguaggio mi è dunque per molti versi sconosciuto e spesso procedo a tentoni.
Vorrei porre un quesito.
Ho l'esigenza di potere disporre di un form principale che funga da "contenitore" con un menu permetta di aprire altri form da visualizzare esclusivamente al suo interno. I sotto form devono essere dunque contenuti solo ed esclusivamente all'interno della finestra del form principale. E' possibile?

Grazie e un saluto.

Ma tali finestre devono essere fisse o vuoi anche muoverle facendo sì che il form madre funga da "scatola"?

Nel caso tu voglia semplicemente finestre ferme allora puoi usare il workspace che provvede a creare delle tab contenenti il tuo form...

Ad esempio se hai un form di nome FormPadre al suo interno inserisci una workspace e se vuoi inglobare i form FormFiglio1 e FormFIglio2 allora dai:

Workspace1.add(FormFiglio1)
Workspace1.add(FormFiglio2)

E avrai due tab contenenti rispettivamente i due form.

Se invece i form che vuoi inglobare sono di un programma esterno al tuo allora devi usare l'embedder....
Titolo: Re: Form che contiene al suo interno altri form
Inserito da: borch - 24 Ottobre 2010, 18:08:33
Ho inserito all'interno di un form un container di tipo TabStrip. Questo tipo di container non sembra però disporre del metodo add.
Utilizzo Gambas 2.
Ringrazio in anticipo per la risposta.
Un saluto.
Titolo: Re: Form che contiene al suo interno altri form
Inserito da: milio - 24 Ottobre 2010, 18:12:32
TabStrip1.Count = <numero di schede>
Titolo: Re: Form che contiene al suo interno altri form
Inserito da: ealmuno - 24 Ottobre 2010, 21:18:16
puoi usare un trucchetto, crei un form principale con il menu "classico" in alto, però ognni volta apri un nuovo form identico al primo per i menu e il contenuto diverso. Il risultato è avere un form unico con i menu (almeno per l'utente finale). Considera che occupa tempo il  nascondi/vedi form e quindi se hai 2 pulsanti può andare bene se cominci ad avere troppo contenuto pensa ad usare più form o la visualizzazione a tab (comunque buona soltanto con 6-7 voci, non di più, poi diventano troppo piccole)
Titolo: Re: Form che contiene al suo interno altri form
Inserito da: Picavbg - 24 Ottobre 2010, 23:18:49
Secondo me, se definissi una "FormPadre" sufficientemente grande per contenere una nuova form "FormFiglio" di dimensioni più contenute, ma distinta, da richiamare col metodo "FormFiglio.Showmodal", avresti sempre l'effetto della "FormFiglio" contenuta nella "FormPadre", ma permetteresti all'utente di agire esclusivamente sugli oggetti contenuti in essa, evitando così click involontari sulla "FormPadre", ivi compresi i click sui pulsantini di sistema presenti sempre nella "FormPadre".
 ;)
Ciao.
Titolo: Re: [RISOLTO] Form che contiene al suo interno altri form
Inserito da: borch - 03 Novembre 2010, 22:16:10
Grazie a tutti per le risposte.
Ho adottato la soluzione di Picavbg e ho messo Risolto nel titolo.
Ciao
Titolo: Re: [RISOLTO] Form che contiene al suo interno altri form
Inserito da: perseo - 04 Novembre 2010, 00:04:05
Ciao borch,

ho posto un quesito simile proprio recentemente. Se hai tempo, dagli un'occhiata...

http://www.gambas-it.org/smf/index.php?topic=1470.msg16729#msg16729