Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: - 22 Marzo 2008, 19:32:30

Titolo: Variabili globali
Inserito da: - 22 Marzo 2008, 19:32:30
Ciao

Ho necessità di usare le stesse variabili all'interno di un Module e all'interno di un form.

ho provato questo sistema :

CLASS1 : le variabili

FORM1 : PUBLIC xxx as new class1
        xxx.nomevariabile  

FORM1 : PUBLIC xxx as new class1
        xxx.nomevariabile        


ma non mi funziona molto bene ....

Voi come fate ???
Titolo: Re: Variabili globali
Inserito da: g.paolo - 22 Marzo 2008, 20:14:40
Creo un modulo di avvio chiamato "avvio" in cui dichiaro le variabili PUBLIC e poi le richiamo in qualsiasi punto del programma con il costrutto "avvio.variabile".
Ovviamente con il modulo di avvio poi apro il form iniziale ed eseguo operazioni preliminari eventualmente richieste.
E funziona perfettamente
Titolo: Re: Variabili globali
Inserito da: g.paolo - 22 Marzo 2008, 20:40:50
A proposito: se guardi il topic "progetto in prova" che contiene il mio allegato e quello correttomi da md9327 avrai un esempio pratico di cosa intendo.
Titolo: Re: Variabili globali
Inserito da: leo72 - 22 Marzo 2008, 21:17:08
Non è necessario che il modulo sia quello di avvio.
Puoi dichiarare le variabili come PUBLIC in un qualunque modulo.
Titolo: Re: Variabili globali
Inserito da: - 22 Marzo 2008, 22:19:17
Perfetto capito benissimo grazie .... ero comunque sulla strada giusta, solo che probabilmente facendo  "AS NEW module" settavo le variabili a null
 Grazie
Titolo: Re: Variabili globali
Inserito da: md9327 - 23 Marzo 2008, 16:34:54
Se vuoi che una variabile pubblica non venga azzerata, anche se appartenente ad una classe, devi anteporre la parolina STATIC.
In questo caso, la variabile viene impostata alla prima chiamata, e rimane valida fino al termine del programma.
Una ipotesi è quella di una generazione di un ID progressivo per la stessa classe; ogni volta che crei una nuova classe dello stesso tipo, puoi incrementare l'ID, che rimane incrementato fino alla chiusura dell'applicazione. Se crei un'altra classe dello stesso tipo, ti trovi il numero incrementato, lo incrementi nuovamente, e via così.

Spero di essere stato chiaro, io non mi sono capito... :-)