Gli operatori logici in Visual Basic Net? Li trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Le API: approfondimenti sul concetto di struttura: tipi definiti dall'utente


Se recuperiamo la definizione di struttura e l'esempio analizzato nell'ultimo articolo sulle API, possiamo addentrarci meglio nella comprensione di tali concetti.
Eravamo infatti rimasti alla struttura denominata STRUTTURADIESEMPIO caratterizzata dal seguente codice:

Type STRUTTURADIESEMPIO
Variabile_Long As Long
Altra_Variabile_Long As Long
Testo As String
Altro_Testo As String * 24
Altra_Struttura As RECT
End Type

Come si può notare questa struttura è composta da cinue membri che possono essere di tipo diverso, come già abbiamo visto in precedenza.
Nella fattispecie abbiamo due variabili di tipo Long (i primi due membri della struttura), due variabili stringa denominate Testo e Altro_Testo, ed una variabile della struttura RECT.
La presenza di una variabile di un'altra struttura implica che nel progetto sia definita una seconda struttura (in questo caso la struttura RECT) che definisca a sua volta i suoi membri.
E come si vede le interazioni tra due strutture differenti sono possibili. Inoltre le variabili che fanno parte del tipo di dati specificato (STRUTTURADIESEMPIO), che facciano parte di questa o di quella struttura, possono essere trattati come variabili del tutto normali, per cui non ci si deve preoccupare troppo della struttura di provenienza.
Poco sotto si dimostrerà con un esempio la validità di tale affermazione.
Se volessimo lavorare con una variabile di tipo definito dalla struttura è sufficiente interporre un punto "." tra il nome della variabile ed il nome del membro.
Ad esempio, il seguente codice definisce e dichiara una variabile come dato di tipo della struttura denominata STRUTTURADIESEMPIO (un po' come se dichiarassimo una variabile come Long o String...):

Dim Es As STRUTTURADIESEMPIO
Es.Variabile_Long = 50
Es.Altra_Variabile = 40 + Es.Variabile_Long
Es.Testo = "testo"
...

Altra cosa importante è che al momento in cui la prima linea di codice viene letta dall'applicazione, se non viene riconosciuta una struttura nota, viene generato un tipo di dati definito dall'utente (ossia un tipo di dato non presente nel linguaggio ma impostabile in base alle preferenze del programmatore).
Dove naturalmente un tipo di dati rappresentano la caratteristica di una variabile che determina quale genere di dati essa può includere.
I tipi di dati interni al linguaggio e quindi immediatamente interpretabili sono: Byte, Boolean, Integer, Long, Currency, Decimal, Single, Double, Date, String, Object e Variant, mentre altri tipi di dati provenienti esternamente sono i tipi definiti dall'utente, e i tipi specifici di oggetto. Questo va comunque oltre lo scopo del presente articolo che ha l'unico fine di analizzare (cosa che verrà fatta tra poco) le strutture API. In ogni caso è facile comprendere dal punto di vista visivo quando Visual Basic genera un nuovo tipo di dati.
Facciamo un esempio pratico:

Private Type SSTRUTT
Nome As String
Cognome As String
Eta As Integer
Tel As Integer
End Type

Abbiamo creato un nuovo tipo di dati. Dichiariamo adesso una variabile del tipo appena definito:

Private Sub Form_Load()
Dim Utente As SSTRUTT
Utente.Nome = "Giovanni"
End Sub

nel momento in cui si termina di scrivere As ci si accorge che è possibile selezionare dalla lista dei tipi di dati, anche SSTRUTT ossia il tipo da noi appena generato:

L'icona visualizzata alla sinistra di SSTRUTT è quella tipica dei tipi definiti dall'utente.
Quando andiamo invece ad assegnare la stringa di testo "Giovanni" ad Utente, non facciamo altro che assegnare un valore ad un elemento della struttura. Ossia l'elemento viene finalmente definito.
Da adesso in poi possiamo fare uso di tale elemento proprio come utilizzeremmo una variabile qualunque.
Ad esempio, possiamo definire anche la variabile Cognome e nella routine Command1_Click unire Nome e Cognome con l'operatore di concatenazione "&", come faremmo nel caso di due semplici variabili di testo.
Ecco l'esempio completo:

Private Type SSTRUTT
Nome As String
Cognome As String
Eta As Integer
Tel As Integer
End Type
Dim Utente As SSTRUTT
Private Sub Form_Load()
Utente.Nome = "Giovanni"
Utente.Cognome = "Verdi"
End Sub
Private Sub Command1_Click()
MsgBox Utente.Nome & " " & Utente.Cognome
End Sub

Una piccola precisazione: perchè nel codice mostrato sopra la dichiarazione di Utente è stata spostata nelle dichiarazioni generali del modulo di codice?
Semplicemente perchè l'area di validità della variabile Utente non è più limitata alla routine Form_Load come nell'esempio precedente ma si estende anche alla routine Command1_Click.
E si sa che le variabili che devono avere uno scopo valido per tutto il modulo di codice sono dichiarate nella parte iniziale del codice.
Questo rappresenta il funzionamento delle strutture in generale. In ogni caso l'interessante argomento dei tipi definiti dall'utente verrà approfondito in maniera ancora più specifica in un prossimo articolo al di fuori dell'argomento API
Riferendoci alle API le cose non cambiano di molto. Nel prossimo articolo si vedrà come molte funzioni interne a Windows utilizzano membri di particolari strutture come loro parametri.

Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it