Newsgroup: it.comp.lang.visual-basic
Titolo: Chi ha la Guida in italiano? Mi serve un favore...(domanda sui moduli - X TUTTI)

Salve,
mi serve un favore da qualcuno che abbia la guida in italiano...nella
guida se cercate modulo, dovrebbe esistere una sottosezione (class
modules vs. standard modules), qualcuno mi può incollare e copiare
quello che dice la guida IN ITALIANO a riguardo? :)) Nella mia in
inglese mi sono bloccato alla prima riga su cose tipo "...data is
stored" :))
Comuque mi stavo chiedendo che differenza ci sia tra un modulo e un
modulo di classe, soprattutto:
1) Quando creo un progetto con un modulo e poi compilo tutto, il
    modulo farà parte del mio eseguibile, quindi: me lo carico in
    memoria tutto quanto, anche se non lo uso, quando lancio l' exe o
    solo quando chiamo funzioni/sub scritte dentro il modulo?
2) In un modulo è possibile scrivere property let/get?
3) Stessa cosa, se io creo un modulo di classe e lo utilizzo senza
    farlo diventare dll, quando creo l' eseguibile del progetto e
    tutto va a finire li dentro, nel momento in cui clicco sull' exe,
    mi carica l' intero modulo in memoria, o solo quando chiamo quello
    che ho scritto dentro?
4) Concludendo, che differenza c'è tra modulo e modulo di classe?
Saluti...

 stored" :))
Ho provato a scrivere "modulo" e mi appaiono 55 documenti, ma nessuno
che sembri a quello che volevi.
Per eseguire una traduzione al volo, prendi il testo e fai "copia", vai su
http://world.altavista.com/
 e fai "incolla", scegli "English to Italian" e
dai OK.
Questa pagina ti fa la traduzione di testi interi e addirittura, dandogli
l'indirizzo
di una pagina Web, te la traduce e te la mostra a video.
Ciao
Sir Jo

di una pagina Web, te la traduce e te la mostra a video.
Non è l' unico servizio a fare queste cose, e soprattutto non è il
migliore.

 modules vs. standard modules),
****
Le classi sono diverse dai moduli standard per quanto riguarda la modalità
di memorizzazione dei dati. Non esiste mai più di una copia dei dati di un
modulo standard. Ciò significa che se una parte del programma modifica una
variabile pubblica in un modulo standard e un'altra parte del programma
legge successivamente tale variabile, entrambi i valori saranno identici.
D'altra parte, i dati del modulo di classe esistono separatamente per ogni
istanza della classe, ovvero per ciascun oggetto creato dalla classe.
Inoltre i dati in un modulo standard hanno come area di validità il
programma, ovvero esistono per tutto il ciclo di vita del programma. Il
ciclo di vita dei dati del modulo di classe per ciascuna istanza di una
classe corrisponde invece al ciclo di vita dell'oggetto, ovvero vengono
creati durante la creazione dell'oggetto e distrutti quando l'oggetto viene
eliminato.
Infine, le variabili dichiarate Public in un modulo standard sono visibili
da qualsiasi punto del progetto, mentre è possibile accedere alle variabili
Public in un modulo di classe solo se esiste una variabile oggetto
contenente un riferimento a una particolare istanza di una classe.
Tutto ciò vale anche per le routine pubbliche nei moduli standard e nei
moduli di classe, come illustrato nell'esempio seguente. È possibile
eseguire questo codice tramite l'apertura di un nuovo progetto EXE standard
e utilizzando il menu Progetto per aggiungere un modulo e un modulo di
classe.
Inserire il seguente codice in Class1:
' Quella che segue è una proprietà degli oggetti della
' classe Class1.
Public Comment As String
' Quello che segue è un metodo degli oggetti della
' classe Class1.
Public Sub ShowComment()
   MsgBox Comment, , gstrVisibleEverywhere
End Sub
Inserire il seguente codice in Module1:
' Il codice nel modulo standard è globale.
Public gstrVisibleEverywhere As String
Public Sub CallableAnywhere(ByVal c1 As Class1)
   ' La riga seguente modifica una variabile globale
   ' (proprietà) di un'istanza di Class1. Solo
   ' l'oggetto specifico passato a questa routine
   ' viene interessato.
   c1.Comment = "Modificata da una funzione globale"
End Sub
Inserire due pulsanti di comando in Form1 e aggiungere il seguente codice a
Form1:
Private mc1First As Class1
Private mc1Second As Class1
Private Sub Form_Load()
   ' Crea due istanze di Class1.
   Set mc1First = New Class1
   Set mc1Second = New Class1
   gstrVisibleEverywhere = "Dati stringa globali"
End Sub
Private Sub Command1_Click()
   Call CallableAnywhere(mc1First)
   mc1First.ShowComment
End Sub
Private Sub Command2_Click()
   mc1Second.ShowComment
End Sub
Premere F5 per eseguire il progetto. Quando viene caricato, Form1 crea due
istanze di Class1, ciascuna con i relativi dati. Form1 imposta inoltre il
valore della variabile globale gstrVisibleEverywhere.
Fare clic su Command1, che richiama la routine globale e passa un
riferimento al primo oggetto di Class1. La routine globale imposta la
proprietà Comment e Command1 richiama quindi il metodo ShowComment per
visualizzare i dati dell'oggetto.
Come illustrato nella figura 9.6, la finestra di dialogo risultante dimostra
che la routine globale CallableAnywhere ha impostato la proprietà Comment
dell'oggetto passato e che la stringa globale è visibile da Class1.
Figura 9.6   Finestra di messaggio dal primo oggetto di Class1
Fare clic su Command2, che richiama il metodo ShowComment della seconda
istanza di Class1.
Come illustrato nella figura 9.7, entrambi gli oggetti hanno accesso alla
variabile globale stringa. Tuttavia la proprietà Comment del secondo oggetto
è vuota, in quanto la chiamata della routine globale CallableAnywhere ha
modificato solo la proprietà Comment del primo oggetto.
Figura 9.7   Finestra di messaggio dal secondo oggetto di Class1
Importante   È necessario evitare che il codice delle classi dipenda da dati
globali, ovvero variabili pubbliche in moduli standard. Molte istanze di una
classe possono esistere contemporaneamente e tutti questi oggetti
condividono i dati globali nel programma.
L'utilizzo di variabili globali nel codice del modulo di classe viola
inoltre il concetto di incapsulamento tipico della programmazione orientata
agli oggetti, in quanto gli oggetti creati da una classe di questo tipo non
contengono tutti i dati.
Dati di classe statici
In alcuni casi è possibile che si desideri condivere dei dati tra tutti gli
oggetti creati da un modulo di classe. In questo caso si parla di dati di
classe statici.
Non è possibile implementare veri dati di classe statici in un modulo di
classe di Visual Basic. È tuttavia possibile simulare questa condizione
utilizzando le routine Property per impostare e restituire il valore di un
membro dei dati Public in un modulo standard, come nel codice indicato di
seguito:
' Proprietà di sola lettura che restituisce il nome
' dell'applicazione.
Property Get CommonString() As String
   ' La variabile gstrVisibleEverywhere è memorizzata
   ' in un modulo standard e dichiarata Public.
   CommonString = gstrVisibleEverywhere
End Property
Nota   Non è possibile utilizzare la parola chiave Static per le variabili a
livello di modulo in un modulo di classe. La parola chiave Static può essere
utilizzata solo all'interno di routine.
Per assegnare un nuovo valore ai dati di modulo standard, è possibile
simulare dati di classe statici non di sola lettura fornendo una
corrispondente routine Property Let oppure Property Set per una proprietà
contenente un riferimento a un oggetto. Tuttavia questo tipo di utilizzo
delle variabili globali viola il concetto di incapsulamento e pertanto non è
consigliato.
Ad esempio, la variabile gstrVisibleEverywhere può essere impostata da
qualsiasi punto del progetto, anche dal codice che non appartiene alla
classe che presenta la proprietà CommonString. Ciò può causare errori
difficili da individuare nel programma.
Ulteriori informazioni   Per i dati globali nei componenti ActiveX è
necessaria una gestione diversa rispetto a quella prevista nei normali
programmi. Se si dispone dell'edizione Professional o Enterprise di Visual
Basic, vedere "Differenze tra moduli standard e moduli di classe" in
"Principi fondamentali per la progettazione di componenti" in Creazione di
componenti ActiveX nella Guida ai componenti.

Grazie mille!!
Saluti...
----------------------------------------------------
Inviato da: 212.29.130.175, via 
http://usenet.iol.it
 

 "cicli di vita dei moduli (o moduli di classe)
OK, trovato, però ho visto che ti hanno già risposto :-(((
Ciao
Sir Jo


Hey, mancano le figure !!!

 ha scritto nel messaggio
news:3a41d650...@news.enter.it...


 wrote in message
news:h0q06.159261$DG3.3...@news2.giganews.com...


 Alessandro
Buon Natale
Aldo

 Credo che bisognera' tenerne conto tutti.
Io non mi sentirei vincolato da una licenza scritta in inglese se il sw e`
in versione italiana o con manuali in italiano. Sbaglio?
Io credo (ma non sono sicuro) di avere il diritto di citare passi da
qualsiasi testo (anche elettronico) in un mio scritto, citandone la fonte.
Sbaglio?
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 Sbaglio?
in linea di massima no. credo ci sia un tetto su una specie di 'quantita''
citabile liberamente. pero' occhio al copyr -- appunto -- dei libri usa: in
teoria non puoi neanche copiarli a mano...
che palude ragazzi !