[QUOTE]Originariamente inviato da zxc80
Io non capisco perchè se l'elemento "obj.Valore" punta già all'area di memoria in cui voglio memorizzare la proprietà, io devo anche usare "mValore" ...
[QUOTE]
L'area in cui viene effettivamente memorizzato il valore e' la variabile privata della classe.
obj.Valore NON e' un'area di memoria ma e' soltanto il "nome pubblico" con cui ci si riferisce per ottenere il valore della variabile privata.
Niente di assurdo quindi ... ma perfettamente corretto.
Esatto! E' cosi' ... e cosa c'e' di strano?E' come se salvassi il dato in "mValore" e poi attraverso "obj.Valore" andassi a pescare quanto sta scritto in "mValore"...
Forse l'equivoco sta qui ... per ogni proprieta' devi definire una variabile privata che ne contenga il valore ...mi sembra come se "mValore" fosse solo una variabile d'appoggio.
Possibile che per ciascuna variabile che definisco debba anche definire un'ulteriore variabile per memorizzare i dati ...
Tu NON definisci variabili ma proprietà ... per ogni proprietà una variabile privata ...
Veramente nell'elenco dopo obj. compare solamente Valore ...Inoltre quando poi crei codice e scrivi "obj.", compare l'elenco di scelta rapida (oppure anche dal visualizzatore oggetti si può vedere)
nel quale vi è un numero di termini doppio rispetto alle proprità definite (compaiono "mValore" e "Valore").
Nel visualizzatore di oggetti ci sono anche le componenti private (leggi bene ... riporta le private e le pubbliche) solamente perche' nel tuo progetto
c'e' anche il sorgente della classe.
Se tu compili la classe da sola in una DLL e poi referenzi la DLL in un tuo progetto, allora vedrai solamente la parte pubblica ...
Gia' ... ma io non lavoro con VBA e quello che ti ho detto vale per il VB6 ... anche se sono praticamente certo che valga anche per il VBA ...Dato che lavoro con VBA io ho sempre scritto le Sub in un Modulo lanciandole col tasto del triangolino, non sento l'esigenza di usare un Form...
In ogni caso NON e' possibile lavorare con gli eventi in un modulo ... il modulo NON gestisce eventi ...
Prova ad inserire un Command in un modulo e gestiscine il Click ...
Non puoi.Se riuscissi a far digerire la dichiarazione con WithEvents secondo me dovrebbe funzionare.
Io ti ho mostrato l'uso del WithEvents ... ma non posso cambiare le funzionalita' del linguaggio ...
Da MSDN
Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .
The Dim statement syntax has these parts:
Part Description
WithEvents Optional. Keyword that specifies that varname is an object variable used to respond to events triggered by an ActiveX object. WithEvents is valid only in class modules. You can declare as many individual variables as you like using WithEvents, but you can't create arrays with WithEvents. You can't use New with WithEvents.
Questo non lo so ma penso che alka lo fara' da solo quando leggera' ...Come posso dire ad Alka che dovrebbe modificarmi il linguaggio nel titolo, mettendo VBA??