Prof Adriani Francesco
francesco.adriani@ricecipriani.it
           http://mate.myblog.it
Programmazione ad Oggetti:
OOP e Visual Basic
 Cosa sono gli oggetti
 Analogia con la realtà
 Astrazione massima
 Oggetti specifici nel Vb
 Proprietà, Metodi ed Eventi
 Paradigmi della programmazione in Vb
 Sub e Function
            http://mate.myblog.it       2
Le classi
 I membri di una classe sono:
   attributi (dati, esattamente come i membri di
   un record)
     sono dati che caratterizzano la singola istanza
   metodi (procedure che operano su un oggetto)
     sono le azioni che possono compiere tutte le istanze
     modificano gli attributi
     metodi particolari sono gli eventi che vengono richiamati
     quando un attributo viene modificato




               http://mate.myblog.it                             3
Classe1                          Classe2
 Attributi                        Attributi
 • Colore                         • Base
 • Forma                          • Altezza
 • Posizione


 Metodi                           Metodi
 • Ricolora                       • Calcola Area
 • Spostati                       • Calcola Perimetro



         http://mate.myblog.it                          4
Gli oggetti
 Un oggetto è una istanza di una classe. Un oggetto
 occupa memoria, la sua classe definisce come sono
 organizzati i dati in questa memoria.



 Oggetto1: Classe1                              Oggetto2: Classe2
     Attributi                                     Attributi
     • Colore: Bianco                              • Base: 20
     • Forma: Quadrato                             • Altezza: 30
     • Posizione: 0,0,10,6




                        http://mate.myblog.it                       5
Gli oggetti
 L’oggetto non memorizza i metodi perché sono
 memorizzati già dalla classe mentre memorizza tutte
 le sue proprietà (attributi)




             http://mate.myblog.it                     6
Gli oggetti e la realtà
 Il concetto che sta dietro alla programmazione ad
 oggetti nasce dallo stesso principio: ciò che importa
 non è l'implementazione interna del codice (che
 corrisponde ai componenti elettronici, nel caso del
 masterizzatore) ma, piuttosto, le caratteristiche e le
 azioni che un componente software è in grado di
 svolgere e che mette a disposizione (espone)
 all'esterno.



              http://mate.myblog.it                       7
Gli oggetti e la realtà
 Chi programma ad oggetti non pensa a come è stato
 scritto il codice dell’oggetto ma pensa a come è fatto
 l’oggetto in termini di caratteristiche ed azioni
 Nella realtà si possono rappresentare tutte le cose con
 gli oggetti, infatti tutte le cose fanno parte di una classe
 di cose che ne definiscono le azioni che compiono,
 mentre ciò che distingue le cose dalle altre come loro
 sono le caratteristiche ad esempio:



               http://mate.myblog.it                            8
Gli oggetti e la realtà
     Classe
    Macchina
                                           Panda:             Ypsilon:
     Attributi                            Macchina            Macchina
     • Marca
     • Modello
     • Velocità                            Attributi           Attributi
                                           • Marca: Fiat       • Marca: Lancia
                                           • Modello: Panda    • Modello: Ypsilon
                                           • Velocità: 0       • Velocità: 0
     Metodi
     • Fermati
     • Accelera
     • Parti

                  http://mate.myblog.it                                             9
Gli oggetti e la realtà
 In questo modo si può rappresentare qualsiasi realtà
 tramite questo particolare paradigma.
 E abbiamo più facilità di gestione della
 programmazione
 Non abbiamo bisogno di conoscere il linguaggio di
 programmazione approfonditamente dato che tutti i
 linguaggi di programmazione ad oggetti sono molto
 simili!



             http://mate.myblog.it                      10
Oggetti specifici del Vb




         http://mate.myblog.it   11
Oggetti specifici delVb




        http://mate.myblog.it   12
Proprietà
Proprietà                           Serve a
Name                                per impostare il nome dell'oggetto
                                    può valere true o false e rende l'oggetto
Visible
                                    visibile o invisibile
                                    per abilitare un oggetto con true o
Enabled
                                    disabilitarlo con false
FontName                            il nome di un font di caratteri
FontSize                            la dimensione del font
forecolor                           per attribuire il colore del testo




            http://mate.myblog.it                                               13
Metodi
 I metodi degli oggetti di visual basic non sono molti e spesso
 dipendono dal tipo di oggetto, come nel caso di listbox per esempio che
 ha metodi caratteristici come additem e removeitem, che sono presenti
 anche per combobox. Ci sono però dei metodi che tutti gli oggetti
 hanno; uno di questi é setfocus. Questo metodo permette di spostare 'il
 fuoco' sopra l'oggetto indicato. Per fuoco s'intende quale control in un
 determinato momento ha l'attenzione di Visual Basic e spostare il
 fuoco vuol dire fare in modo che VB sia posizionato sopra l'oggetto
 voluto. Esempio:
 txtNome.setFocus
 Naturalmente se txtNome non é visibile, questa istruzione da' errore.
 Un altro metodo in comune é move; esso serve a cambiare la
 dimensione e la posizione di un oggetto dentro il form. La sintassi
 completa é:
                  http://mate.myblog.it                                 14
Metodi
 oggetto.move left,top,width,heigh
 dove i 4 parametri sono rispettivamente la posizione a sinistra, in alto,
 la larghezza e la lunghezza dell'oggetto espressi in twips. 256 twips
 corrispondono ad 1 cm circa. I parametri left e top dipendono da dove si
 trova l'oggetto: se é in un form, si ri feriscono alle coordinate del form
 che hanno il punto 0,0, ovvero l'origine del sistema di riferimento,
 nell'angolo in alto a sinistra del form. Se l'oggetto é all'interno di un
 frame, le coordinate si riferiscono all'angolo in alto a sinistra del frame e
 non del form che li contiene entrambe. In pratica le coordinate sono
 relative all'oggetto che li contiene. Esempio di move:
 txtNome.move 10,20,200,225
 Ultimo metodo sempre presente é
 refresh serve a rivisualizzare l'oggetto nel caso VB non l'abbia fatto
 correttamente: non é molto usato.
                   http://mate.myblog.it                                     15
Eventi
activate                            attivazione del control (vedi il caso del form)
                                    cambiamento nel contenuto del control come in
change
                                    label e textbox
click                               ho fatto click col mouse

dblClick                            doppio click

gotfocus                            il control ha il fuoco

keydown                             tasto tenuto premuto

keypress                            codice del tasto premuto

keyup                               tasto premuto e rilasciato

load                                caricamento dell'oggetto

lostfocus                           perdita del fuoco

mousedown                           tasto del mouse tenuto premuto

mouseup                             tasto del mouse premuto e rilasciato
                                    mouse in movimento Non tutti gli eventi descritti
mousemove
                                    valgono per tutti gli oggetti

            http://mate.myblog.it                                                       16
Sub
 Le procedure sono dei blocchi di codice che permettono di eseguire una
 serie di istruzioni quando vengono richiamate.
 Le Sub sono delle procedure che quando terminano la loro esecuzione,
 non restituiscono un valoer di ritorno. Le Function invece oltre ad
 eseguire il loro codice hanno un valore di ritorno.

 SUB

 Vediamo come si dichiara una procedura Sub:

 Sub nomeProcedura (lista parametri)
   Dichiarazioni locali ed istruzioni
 End Sub


                 http://mate.myblog.it                                17
Function
 Sono simili alle Sub, ma restituiscono un valore. Per questo motivo
 nella segnature, occorre specificare il tipo restituito.

 Function nomeProcedura (lista
 parametri) As tipoDiRitorno
   Dichiarazioni locali ed istruzioni
   Return espressione
 End Function




                  http://mate.myblog.it                                18

Lezione 10 - Programmazione Ad Oggetti, Vb Accenni

  • 1.
  • 2.
    Programmazione ad Oggetti: OOPe Visual Basic Cosa sono gli oggetti Analogia con la realtà Astrazione massima Oggetti specifici nel Vb Proprietà, Metodi ed Eventi Paradigmi della programmazione in Vb Sub e Function http://mate.myblog.it 2
  • 3.
    Le classi Imembri di una classe sono: attributi (dati, esattamente come i membri di un record) sono dati che caratterizzano la singola istanza metodi (procedure che operano su un oggetto) sono le azioni che possono compiere tutte le istanze modificano gli attributi metodi particolari sono gli eventi che vengono richiamati quando un attributo viene modificato http://mate.myblog.it 3
  • 4.
    Classe1 Classe2 Attributi Attributi • Colore • Base • Forma • Altezza • Posizione Metodi Metodi • Ricolora • Calcola Area • Spostati • Calcola Perimetro http://mate.myblog.it 4
  • 5.
    Gli oggetti Unoggetto è una istanza di una classe. Un oggetto occupa memoria, la sua classe definisce come sono organizzati i dati in questa memoria. Oggetto1: Classe1 Oggetto2: Classe2 Attributi Attributi • Colore: Bianco • Base: 20 • Forma: Quadrato • Altezza: 30 • Posizione: 0,0,10,6 http://mate.myblog.it 5
  • 6.
    Gli oggetti L’oggettonon memorizza i metodi perché sono memorizzati già dalla classe mentre memorizza tutte le sue proprietà (attributi) http://mate.myblog.it 6
  • 7.
    Gli oggetti ela realtà Il concetto che sta dietro alla programmazione ad oggetti nasce dallo stesso principio: ciò che importa non è l'implementazione interna del codice (che corrisponde ai componenti elettronici, nel caso del masterizzatore) ma, piuttosto, le caratteristiche e le azioni che un componente software è in grado di svolgere e che mette a disposizione (espone) all'esterno. http://mate.myblog.it 7
  • 8.
    Gli oggetti ela realtà Chi programma ad oggetti non pensa a come è stato scritto il codice dell’oggetto ma pensa a come è fatto l’oggetto in termini di caratteristiche ed azioni Nella realtà si possono rappresentare tutte le cose con gli oggetti, infatti tutte le cose fanno parte di una classe di cose che ne definiscono le azioni che compiono, mentre ciò che distingue le cose dalle altre come loro sono le caratteristiche ad esempio: http://mate.myblog.it 8
  • 9.
    Gli oggetti ela realtà Classe Macchina Panda: Ypsilon: Attributi Macchina Macchina • Marca • Modello • Velocità Attributi Attributi • Marca: Fiat • Marca: Lancia • Modello: Panda • Modello: Ypsilon • Velocità: 0 • Velocità: 0 Metodi • Fermati • Accelera • Parti http://mate.myblog.it 9
  • 10.
    Gli oggetti ela realtà In questo modo si può rappresentare qualsiasi realtà tramite questo particolare paradigma. E abbiamo più facilità di gestione della programmazione Non abbiamo bisogno di conoscere il linguaggio di programmazione approfonditamente dato che tutti i linguaggi di programmazione ad oggetti sono molto simili! http://mate.myblog.it 10
  • 11.
    Oggetti specifici delVb http://mate.myblog.it 11
  • 12.
    Oggetti specifici delVb http://mate.myblog.it 12
  • 13.
    Proprietà Proprietà Serve a Name per impostare il nome dell'oggetto può valere true o false e rende l'oggetto Visible visibile o invisibile per abilitare un oggetto con true o Enabled disabilitarlo con false FontName il nome di un font di caratteri FontSize la dimensione del font forecolor per attribuire il colore del testo http://mate.myblog.it 13
  • 14.
    Metodi I metodidegli oggetti di visual basic non sono molti e spesso dipendono dal tipo di oggetto, come nel caso di listbox per esempio che ha metodi caratteristici come additem e removeitem, che sono presenti anche per combobox. Ci sono però dei metodi che tutti gli oggetti hanno; uno di questi é setfocus. Questo metodo permette di spostare 'il fuoco' sopra l'oggetto indicato. Per fuoco s'intende quale control in un determinato momento ha l'attenzione di Visual Basic e spostare il fuoco vuol dire fare in modo che VB sia posizionato sopra l'oggetto voluto. Esempio: txtNome.setFocus Naturalmente se txtNome non é visibile, questa istruzione da' errore. Un altro metodo in comune é move; esso serve a cambiare la dimensione e la posizione di un oggetto dentro il form. La sintassi completa é: http://mate.myblog.it 14
  • 15.
    Metodi oggetto.move left,top,width,heigh dove i 4 parametri sono rispettivamente la posizione a sinistra, in alto, la larghezza e la lunghezza dell'oggetto espressi in twips. 256 twips corrispondono ad 1 cm circa. I parametri left e top dipendono da dove si trova l'oggetto: se é in un form, si ri feriscono alle coordinate del form che hanno il punto 0,0, ovvero l'origine del sistema di riferimento, nell'angolo in alto a sinistra del form. Se l'oggetto é all'interno di un frame, le coordinate si riferiscono all'angolo in alto a sinistra del frame e non del form che li contiene entrambe. In pratica le coordinate sono relative all'oggetto che li contiene. Esempio di move: txtNome.move 10,20,200,225 Ultimo metodo sempre presente é refresh serve a rivisualizzare l'oggetto nel caso VB non l'abbia fatto correttamente: non é molto usato. http://mate.myblog.it 15
  • 16.
    Eventi activate attivazione del control (vedi il caso del form) cambiamento nel contenuto del control come in change label e textbox click ho fatto click col mouse dblClick doppio click gotfocus il control ha il fuoco keydown tasto tenuto premuto keypress codice del tasto premuto keyup tasto premuto e rilasciato load caricamento dell'oggetto lostfocus perdita del fuoco mousedown tasto del mouse tenuto premuto mouseup tasto del mouse premuto e rilasciato mouse in movimento Non tutti gli eventi descritti mousemove valgono per tutti gli oggetti http://mate.myblog.it 16
  • 17.
    Sub Le proceduresono dei blocchi di codice che permettono di eseguire una serie di istruzioni quando vengono richiamate. Le Sub sono delle procedure che quando terminano la loro esecuzione, non restituiscono un valoer di ritorno. Le Function invece oltre ad eseguire il loro codice hanno un valore di ritorno. SUB Vediamo come si dichiara una procedura Sub: Sub nomeProcedura (lista parametri) Dichiarazioni locali ed istruzioni End Sub http://mate.myblog.it 17
  • 18.
    Function Sono similialle Sub, ma restituiscono un valore. Per questo motivo nella segnature, occorre specificare il tipo restituito. Function nomeProcedura (lista parametri) As tipoDiRitorno Dichiarazioni locali ed istruzioni Return espressione End Function http://mate.myblog.it 18