Differenze tra le versioni di "Importare ed utilizzare librerie .gambas"

Da Gambas-it.org - Wikipedia.
Riga 7: Riga 7:
 
La realizzazione di una libreria ''.gambas'' non richiede, ovviamente, che siano mostrate finestre e Form, e pertanto, all'atto della creazione del tipo di progetto va scelta l'opzione " ''Applicazione a riga di comando'' ".
 
La realizzazione di una libreria ''.gambas'' non richiede, ovviamente, che siano mostrate finestre e Form, e pertanto, all'atto della creazione del tipo di progetto va scelta l'opzione " ''Applicazione a riga di comando'' ".
  
Il progetto avrà, come struttura iniziale un Modulo principale ''MMain.module'' che non verrà utilizzato.
+
Il progetto avrà, come struttura iniziale ovviamente un Modulo principale ''MMain.module'', ma - volendo - ne potranno essere aggiunti anche altri. Si potranno, inoltre, utilizzare anche una o <SPAN style="text-decoration:underline">più</span> Classi appositamente create all'interno della libereria.
  
V'è da sottolineare che, affinché la Libreria ''.gambas'' possa essere usata, bisognerà creare nell'IDE una Classe o un Modulo <SPAN style="text-decoration:underline">secondario</span> (senza distruggere però il Modulo principale originario, che resterà ovviamente vuoto). Pertanto, le funzioni e le altre risorse fruibili della Libreria potranno essere utilizzabili, soltanto se esse sono poste all'interno di Classi e di Moduli <SPAN style="text-decoration:underline">secondari</span>, e <SPAN style="text-decoration:underline">non</span> in quelli principali.
+
V'è da sottolineare che, affinché possano essere utilizzate le proprietà e le funzioni contenute in un ''Modulo'' o in una ''Classe'' di una libreria ''.gambas'', bisognerà avere l'accortezza di porre all'inizio del ''Modulo'' stesso la parola: '''Export''' .
  
Sia per la creazione di una Classe che di un Modulo, affinché possano essere utilizzate le proprietà e funzioni ivi contenute, bisognerà avere l'accortezza di porre all'inizio la parola: '''Export''' .
+
Si inseriranno successivamente nel ''Modulo'' e/o nella ''Classe'' le funzioni e le proprietà che si intende che la libreria metta a disposizione.
 
 
Si inseriranno successivamente le funzioni e le proprietà messe a disposizione dalla libreria.
 
  
 
Infine, la libreria dovrà essere salvata con l'estensione ''.gambas'' :
 
Infine, la libreria dovrà essere salvata con l'estensione ''.gambas'' :
Riga 20: Riga 18:
 
Va precisato che questo tipo di librerie, costituite da codice Gambas, vanno poste <SPAN style="text-decoration:underline">nella medesima directory</span> del programma che le utilizzerà, altrimenti le librerie non saranno trovate dal programma.
 
Va precisato che questo tipo di librerie, costituite da codice Gambas, vanno poste <SPAN style="text-decoration:underline">nella medesima directory</span> del programma che le utilizzerà, altrimenti le librerie non saranno trovate dal programma.
  
Va precisato, altresì, che, a differenza dell'utilizzo delle [[Extern:_richiamare_funzioni_esterne_a_Gambas|librerie condivise esterne .so]], <SPAN style="text-decoration:underline">non</span> è necessario dichiarare in alcun modo la libreria ''.gambas'' all'interno del codice della Classe principale del programma. La libreria ''.gambas'' andrà richiamata nel percorso " ''Progetto-->Proprietà-->Libraries'' " dell'IDE del progetto.
+
Va precisato, altresì, che, a differenza dell'utilizzo delle [[Extern:_richiamare_funzioni_esterne_a_Gambas|librerie condivise esterne .so]], <SPAN style="text-decoration:underline">non</span> è necessario dichiarare in alcun modo la libreria ''.gambas'' all'interno del codice della Classe principale del programma. La libreria ''.gambas'' andrà richiamata nel percorso " ''Progetto-->Proprietà-->Libraries'' " dell'IDE del progetto
 +
 
 +
Per invocare una funzione contenuta in un ''Modulo'' della libreria, si dovrà scrivere nel programma principale il nome del ''Modulo'' che la contiene e quindi il nome della funzione desiderata, in qualità di ''metodo'' di quel ''Modulo''.
 +
 
 +
Per invocare una funzione o un'altra risorsa contenuta in una ''Classe'' della libreria, si dovrà dichiarare nel programma principale una variabile del tipo della ''Classe'', presente nella libreria, contenente la funzione o la proprietà che si intende invocare, quindi scrivere il nome della funzione o della risorsa desiderata.
  
  
 
===Esempio pratico===
 
===Esempio pratico===
Facciamo un esempio pratico, nel quale avremo una libreria, che chiameremo ad esempio ''lib.gambas'', ed un programma Gambas che ne richiama le funzioni presenti in una Classe ed in un Modulo ''secondari'' di quella libreria.
+
Facciamo un esempio pratico, nel quale avremo una libreria, che chiameremo ad esempio ''lib.gambas'', ed un programma Gambas che ne richiama le funzioni presenti in una ''Classe'' ed in un ''Modulo'' di quella libreria.
  
 
Nella Classe, ''Classe1.class'', della libreria avremo il seguente codice:
 
Nella Classe, ''Classe1.class'', della libreria avremo il seguente codice:
Riga 57: Riga 59:
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
   Dim cl As New Class1
+
   Dim cl As New Class1 <FONT color=#006400>' ''Dichiariamo una variabile del tipo della Classe della libreria contenente la funzione da invocare''</font>
 
   Dim w, y As Integer
 
   Dim w, y As Integer
 
   
 
   

Versione delle 17:31, 12 mag 2013

In generale una Libreria è un insieme di comandi, e più segnatamente funzioni, esterno al codice del programma principale, che fornisce appunto ulteriori ed addizionali funzionalità.

In Gambas è possibile utilizzare, oltre alle librerie condivise esterne .so, anche librerie .gambas, contenenti proprietà e funzioni ricavabili dalle risorse messe a disposizione da Gambas.


Creare una libreria .gambas

La realizzazione di una libreria .gambas non richiede, ovviamente, che siano mostrate finestre e Form, e pertanto, all'atto della creazione del tipo di progetto va scelta l'opzione " Applicazione a riga di comando ".

Il progetto avrà, come struttura iniziale ovviamente un Modulo principale MMain.module, ma - volendo - ne potranno essere aggiunti anche altri. Si potranno, inoltre, utilizzare anche una o più Classi appositamente create all'interno della libereria.

V'è da sottolineare che, affinché possano essere utilizzate le proprietà e le funzioni contenute in un Modulo o in una Classe di una libreria .gambas, bisognerà avere l'accortezza di porre all'inizio del Modulo stesso la parola: Export .

Si inseriranno successivamente nel Modulo e/o nella Classe le funzioni e le proprietà che si intende che la libreria metta a disposizione.

Infine, la libreria dovrà essere salvata con l'estensione .gambas :

nome_libreria.gambas

Va precisato che questo tipo di librerie, costituite da codice Gambas, vanno poste nella medesima directory del programma che le utilizzerà, altrimenti le librerie non saranno trovate dal programma.

Va precisato, altresì, che, a differenza dell'utilizzo delle librerie condivise esterne .so, non è necessario dichiarare in alcun modo la libreria .gambas all'interno del codice della Classe principale del programma. La libreria .gambas andrà richiamata nel percorso " Progetto-->Proprietà-->Libraries " dell'IDE del progetto

Per invocare una funzione contenuta in un Modulo della libreria, si dovrà scrivere nel programma principale il nome del Modulo che la contiene e quindi il nome della funzione desiderata, in qualità di metodo di quel Modulo.

Per invocare una funzione o un'altra risorsa contenuta in una Classe della libreria, si dovrà dichiarare nel programma principale una variabile del tipo della Classe, presente nella libreria, contenente la funzione o la proprietà che si intende invocare, quindi scrivere il nome della funzione o della risorsa desiderata.


Esempio pratico

Facciamo un esempio pratico, nel quale avremo una libreria, che chiameremo ad esempio lib.gambas, ed un programma Gambas che ne richiama le funzioni presenti in una Classe ed in un Modulo di quella libreria.

Nella Classe, Classe1.class, della libreria avremo il seguente codice:

Export


Public Function funzClasse(a As Integer) As Integer
 
 Dim b As Integer
 
   b = a * 7
   
   Return b
 
End

Nel Modulo, Module1.module, della libreria avremo il seguente codice analogo:

Export


Public Function funzModulo(a As Integer) As Integer
 
 Dim b As Integer
 
   b = a + 7
   
   Return b
 
End


Poi, nella Classe principale del programma avremo il seguente codice:

Public Sub Button1_Click()

 Dim cl As New Class1  ' Dichiariamo una variabile del tipo della Classe della libreria contenente la funzione da invocare
 Dim w, y As Integer

' Viene richiamata la funzione nella Classe della libreria ".gambas" :
   w = cl.funzClasse(5)
 
   Print w

 
' Viene richiamata la funzione nel Modulo della libreria ".gambas" :
   y = Module1.modulo(w)
 
   Print y
 
End

Ricordiamo che il programma e la predetta libreria .gambas devono stare nella medesima directory.