maurogsc.eu
mauro gamberini


home ==> vbscript ==> Classi - Creare una classe e derivare oggetti

Classe - Creare una classe e derivare oggetti

Situazione.
Vogliamo creare un ed utilizzare una classe in un file .vbs.

Nota.
Il codice dell'esempio scaricabile a questo link è commentato e nella cartella in formato .zip è contenuto un file .vbs. Utilizzare gli esempi forniti o files di test per le vostre prove. Alcune indicazioni su come creare un file .vbs le trovate qui.

1 - Come si crea una classe in vbs.
Così si crea una classe in vbs:

Class miaClasse
    '
    'codice
    '
End Class

2 - Come creare una istanza della classe.
Una volta creata una classe, derivarne un oggetto(crearne una istanza) è semplice:

Class miaClasse
    '
    'codice
    '
End Class

Set obj = New miaClasse
    '
    'codice
    '
Set obj = Nothing

3 - Aggiungiamo eventi alla classe.
Andiamo ad aggiungere gli eventi Initialize e Terminate alla classe:

Class miaClasse
    Private Sub Class_Initialize()
        MsgBox "Evento Initialize"
    End Sub
    Private Sub Class_Terminate()
        MsgBox "Evento Terminate"
    End Sub
End Class

Set obj = New miaClasse
    '
    'codice
    '
Set obj = Nothing

Salvando e lanciando il file, vedremo le due MsgBox che ci avvertono della creazione e distruzione dell'oggetto.

4 - Campi(variabili), proprietà, metodi e funzioni.
Andiamo ad aggiungere campi(variabili), proprietà, metodi e funzioni alla classe:

'creazione classe
Class miaClasse
    
    'campo(variabile) interno alla classe
    Dim d
    
    'evento Initialize della classe
    Private Sub Class_Initialize()
        MsgBox "Evento Initialize"
    End Sub
    
    'proprietà Let che porta valorizza il campo(variabile) d
    Public Property Let miaProperty(ByVal v)
        d = v
    End Property

    'proprietà Get che restituisce il valore del campo(variabile) d    
    Public Property Get miaProperty()
        miaProperty = d
    End Property
     
    'metodo che elabora il valore del campo(variabile) d  
    Public Sub mioMetodo()
        d = d * 10
    End Sub

    'funzione che restituisce il cubo del valore passato
    Public Function mioCubo(v)
        mioCubo = v ^ 3
    End Function
    
    'evento Terminate della classe
    Private Sub Class_Terminate()
        MsgBox "Evento Terminate"
    End Sub
    
End Class

'dichiaro le variabili
Dim vs
'passo alla variabile il valore inserito nella InputBox
vs = InputBox ("Inserire un valore numerico", "Attenzione")

'gestione errori
On Error Resume Next

'se il valore di vs è inserito
If vs <> "" Then
    'Set della nuova istanza della classe
    Set obj = New miaClasse
    'passo il dato all'oggetto
    obj.miaProperty = vs
    'elaboro il dato passato all'oggetto
    obj.mioMetodo
    'se non c'è errore
    If err.Number = 0 then
    	'recupero il dato elaborato dall'oggetto
    	MsgBox obj.miaProperty
    	'utilizzo la funzione mioCubo() dell'oggetto
    	MsgBox obj.mioCubo(vs)
    End If
    'Set a Nothing dell'oggetto
    Set obj = Nothing
End if	

Per ulteriori informazioni sui Vbscript utilizzate questo forum:
http://social.msdn.microsoft.com/Forums/it-IT/vbseiit/threads


Ultimo aggiornamento di questa pagina: 20/12/2010 - mauro gamberini