Utilizzare un Componente obsoleto: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (13 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
Come è noto, qualche ''Componente'', attivo nelle precedenti versioni di Gambas, oggi è invece considerato ''obsoleto'', e pertanto è stato disattivato. | Come è noto, qualche ''Componente'', attivo nelle precedenti versioni di Gambas, oggi è invece considerato ''obsoleto'', e pertanto è stato disattivato. <SUP>[[[#Note|nota 1]]]</sup> | ||
Tali ''Componenti'' obsoleti non sono più disponibili nell'apposita sezione dell'IDE fra quelli forniti dalla corrente versione di Gambas, e non sono più utilizzabili nei progetti. | Tali ''Componenti'' obsoleti non sono più disponibili nell'apposita sezione dell'IDE fra quelli forniti dalla corrente versione di Gambas, e non sono più utilizzabili nei progetti. | ||
Eppure, | Eppure, qualora tali Componenti obsoleti non siano stati definitivamente eliminati dai sorgenti di Gambas <SUP>[[[#Note|nota 2]]]</sup>, è possibile richiamarli e quasi sempre utilizzare le loro ''Classi''. | ||
Il richiamo ed uso dei ''Componenti'' ormai obsoleti può avvenire da codice <SUP>[[[#Note|nota 3]]]</sup>, purché - come già detto - non siano stati definitivamente estromessi dai sorgenti di Gambas. | |||
Il richiamo ed uso dei ''Componenti'' ormai obsoleti può avvenire | |||
Nel progetto Gambas si dovrà fare uso delle ''Classi'': | Nel progetto Gambas si dovrà fare uso delle ''Classi'': | ||
| Riga 34: | Riga 13: | ||
Mostriamo un esempio pratico, nel quale si richiamerà l'ormai obsoleto e disattivato Componente "''gb.sdl.sound''" | Mostriamo un esempio pratico, nel quale si richiamerà l'ormai obsoleto e disattivato Componente "''gb.sdl.sound''" e si utilizzeranno alcune risorse della sua Classe ''Music'' per eseguire un file audio: | ||
Private cl As Class | Private cl As Class | ||
Private esce As Boolean | Private esce As Boolean | ||
Public Sub Main() | |||
Dim sym, percorso_file As String | Dim sym, percorso_file As String | ||
| Riga 45: | Riga 24: | ||
Dim b As Byte | Dim b As Byte | ||
<FONT Color=gray>' ''Imposta il percorso del file audio ( | <FONT Color=gray>' ''Imposta il percorso del file audio (FLAC, OGG, WAV):''</font> | ||
percorso_file = "<FONT Color= | percorso_file = "<FONT Color=darkgreen>''/percorso/del/file''</font>" | ||
<FONT Color=gray>' ''Carica innanzitutto il Componente obsoleto necessario per utilizzare la Classe che permetterà di eseguire il file:''</font> | <FONT Color=gray>' ''Carica innanzitutto il Componente "obsoleto" necessario per utilizzare la Classe che permetterà di eseguire il file:''</font> | ||
co = <FONT Color= | co = <FONT Color=red>Component.Load</font>("<FONT Color=darkorange>gb.sdl.sound</font>") | ||
<FONT Color=gray>' ''Carica quindi la Classe che permetterà di eseguire il file:''</font> | <FONT Color=gray>' ''Carica quindi la Classe che permetterà di eseguire il file:''</font> | ||
cl = <FONT Color= | cl = <FONT Color=red>Class.Load</font>("Music") | ||
Print "Simboli (\"Costanti\", \"Proprietà\", \"Metodi\" e \"Eventi\") posseduti e gestiti da '\e[34m"; co.Name; "\e[0m':" | Print "Simboli (\"Costanti\", \"Proprietà\", \"Metodi\" e \"Eventi\") posseduti e gestiti da '\e[34m"; co.Name; "\e[0m':" | ||
| Riga 63: | Riga 42: | ||
<FONT Color=gray>' ''Carica infine i Metodi specifici della Classe necessari per caricare ed eseguire il file:''</font> | <FONT Color=gray>' ''Carica infine i Metodi specifici della Classe necessari per caricare ed eseguire il file:''</font> | ||
<FONT Color= | <FONT Color=red>Object.Call</font>(cl, cl.Symbols[1], [percorso_file]) | ||
<FONT Color= | <FONT Color=red>Object.Call</font>(cl, cl.Symbols[2], Null) | ||
While Not esce | While Not esce | ||
<FONT Color=gray>' ''Richiama anche la Proprietà ".Pos" della Classe "Music" per sapere la currente posizione temporale dell'esecuzione:''</font> | <FONT Color=gray>' ''Richiama anche la Proprietà ".Pos" della Classe "Music" per sapere la currente posizione temporale dell'esecuzione:''</font> | ||
Write "\e[0m\r Tempo trascorso: \e[31m" & | Write "\e[0m\r Tempo trascorso: \e[31m" & Str(Time(0, 0, 0, <FONT Color=red>Object.GetProperty</font>(cl, cl.Symbols[0]) * 1000)) | ||
Wait 0.01 | Wait 0.01 | ||
Wend | Wend | ||
| Riga 75: | Riga 54: | ||
Quit | Quit | ||
End | |||
Public Sub Application_Read() | |||
<FONT Color=gray>' ''Premendo il tasto "Invio" della tastiera, termina l'esecuzione del file:''</font> | <FONT Color=gray>' ''Premendo il tasto "Invio" della tastiera, termina l'esecuzione del file:''</font> | ||
<FONT Color= | <FONT Color=red>Object.Call</font>(cl, cl.Symbols[3], Null) | ||
esce = True | esce = True | ||
End | |||
| Riga 90: | Riga 69: | ||
=Note= | =Note= | ||
[1] Minisini ha spiegato brevemente perché i Componenti ''obsoleti'' non vengono rimossi dall'architettura dello sviluppo di Gambas in questa discussione della ''Mailing list'' ufficiale: https://lists.gambas-basic.org/pipermail/user/2020-June/069507.html | [1] La lista dei Componenti di Gambas sino a oggi dichiarati ''obsoleti'': https://gambaswiki.org/wiki/comp-deprecated?l=it | ||
[2] Minisini ha spiegato brevemente perché i Componenti ''obsoleti'' non vengono rimossi dall'architettura dello sviluppo di Gambas in questa discussione della ''Mailing list'' ufficiale: https://lists.gambas-basic.org/pipermail/user/2020-June/069507.html | |||
[ | [3] Vedere anche questa pagina: [[Attivare un Componente dinamicamente da codice]] | ||
Versione attuale delle 05:20, 18 nov 2024
Come è noto, qualche Componente, attivo nelle precedenti versioni di Gambas, oggi è invece considerato obsoleto, e pertanto è stato disattivato. [nota 1]
Tali Componenti obsoleti non sono più disponibili nell'apposita sezione dell'IDE fra quelli forniti dalla corrente versione di Gambas, e non sono più utilizzabili nei progetti.
Eppure, qualora tali Componenti obsoleti non siano stati definitivamente eliminati dai sorgenti di Gambas [nota 2], è possibile richiamarli e quasi sempre utilizzare le loro Classi.
Il richiamo ed uso dei Componenti ormai obsoleti può avvenire da codice [nota 3], purché - come già detto - non siano stati definitivamente estromessi dai sorgenti di Gambas.
Nel progetto Gambas si dovrà fare uso delle Classi:
- " Component ", per richiamare il Componente obsoleto;
- " Class ", per richiamare la Classe che ci interessa di quel Componente obsoleto;
- " Object ", per richiamare Metodi e Proprietà della Classe utilizzata del Componente obsoleto.
Mostriamo un esempio pratico, nel quale si richiamerà l'ormai obsoleto e disattivato Componente "gb.sdl.sound" e si utilizzeranno alcune risorse della sua Classe Music per eseguire un file audio:
Private cl As Class
Private esce As Boolean
Public Sub Main()
Dim sym, percorso_file As String
Dim co As Component
Dim b As Byte
' Imposta il percorso del file audio (FLAC, OGG, WAV):
percorso_file = "/percorso/del/file"
' Carica innanzitutto il Componente "obsoleto" necessario per utilizzare la Classe che permetterà di eseguire il file:
co = Component.Load("gb.sdl.sound")
' Carica quindi la Classe che permetterà di eseguire il file:
cl = Class.Load("Music")
Print "Simboli (\"Costanti\", \"Proprietà\", \"Metodi\" e \"Eventi\") posseduti e gestiti da '\e[34m"; co.Name; "\e[0m':"
For Each sym In cl.Symbols
Print b, sym
Inc b
Next
Print
Print
' Carica infine i Metodi specifici della Classe necessari per caricare ed eseguire il file:
Object.Call(cl, cl.Symbols[1], [percorso_file])
Object.Call(cl, cl.Symbols[2], Null)
While Not esce
' Richiama anche la Proprietà ".Pos" della Classe "Music" per sapere la currente posizione temporale dell'esecuzione:
Write "\e[0m\r Tempo trascorso: \e[31m" & Str(Time(0, 0, 0, Object.GetProperty(cl, cl.Symbols[0]) * 1000))
Wait 0.01
Wend
Write "\nEsecuzione terminata"
Quit
End
Public Sub Application_Read()
' Premendo il tasto "Invio" della tastiera, termina l'esecuzione del file:
Object.Call(cl, cl.Symbols[3], Null)
esce = True
End
Note
[1] La lista dei Componenti di Gambas sino a oggi dichiarati obsoleti: https://gambaswiki.org/wiki/comp-deprecated?l=it
[2] Minisini ha spiegato brevemente perché i Componenti obsoleti non vengono rimossi dall'architettura dello sviluppo di Gambas in questa discussione della Mailing list ufficiale: https://lists.gambas-basic.org/pipermail/user/2020-June/069507.html
[3] Vedere anche questa pagina: Attivare un Componente dinamicamente da codice