Scusate la banalità ma sto imparando. Come si fa ad assegnare un valore ad una variabile che possa essere riutilizzato (scritto e letto) da altre procedure dello stesso progetto ... Static? Come?
Grazie a tutti.
Scusate la banalità ma sto imparando. Come si fa ad assegnare un valore ad una variabile che possa essere riutilizzato (scritto e letto) da altre procedure dello stesso progetto ... Static? Come?
Grazie a tutti.
Private o Public, Public per la visibilità sull'intero progetto.
Ans.
io credo un modulo e ci metto tutte le mie variabili (quasi sempre)
public nome as string
public tel as double
public ncivico as integer
:gren:
static non centra nulla con public, una variabile dichiarata static in una funzione mantiene il valore anche quando si esce dalla funzione.
Ans.
Static permette di definire una variabile all'interno di una Sub o Function il cui valore non viene perso, esempio:
Personalmente credo sia meglio non abusare di questo tipo di dichiarazioni, spesso nascondono bug di difficile individuazione.codice:Public Function NumeroProgressivo() As Integer Static n As Integer n = n + 1 NumeroProgressivo = n End Function 'chiamando la funzione... Debug.Print NumeroProgressivo() '===> 1 Debug.Print NumeroProgressivo() '===> 2 Debug.Print NumeroProgressivo() '===> 3 Debug.Print NumeroProgressivo() '===> 4 ...
Chi non cerca trova.
Allora:
ho messo in una procedura:
Static variabile as string
nome variabile= "pippo"
in un'altra:
msgbox (variabile)
ma è null ...
Dove sbaglio?
yyzyyz sei te che ti sbagli![]()
Simile al Public c'è per le sub o function Friend utilizzato nelle classi, visibilità globale al progetto ma non all'esterno, mentre Public visibilità globale anche al di fuori.
Ans.
Per prima cosa ricordati sempre di impostare la dichiarazione obbligatoria delle variabili, che puoi ottenere di default attraverso il menu Strumenti/Opzioni. Nel form o nel modulo dovresti infatti avere questa dichiarazione:Originariamente inviato da Misterxxx
Allora:
ho messo in una procedura:
Static variabile as string
nome variabile= "pippo"
in un'altra:
msgbox (variabile)
ma è null ...
Dove sbaglio?
Una variabile static non è visibile al di fuori della procedura nella quale è stata dichiarata.codice:Option Explicit
Chi non cerca trova.
ri-ri-ri-ripetiamo, static la visibilità è solo all'interno della sub o function dove è stata dichiarata.
Ans.