Differenze tra le versioni di "Utilizzare un Componente obsoleto"
(19 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 | ||
+ | Dim co As Component | ||
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> |
− | <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 | + | Print "Simboli (\"Costanti\", \"Proprietà\", \"Metodi\" e \"Eventi\") posseduti e gestiti da '\e[34m"; co.Name; "\e[0m':" |
For Each sym In cl.Symbols | For Each sym In cl.Symbols | ||
Print b, sym | Print b, sym | ||
Riga 62: | 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 | ||
− | Write "\r Tempo trascorso: " & | + | <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" & Str(Time(0, 0, 0, <FONT Color=red>Object.GetProperty</font>(cl, cl.Symbols[0]) * 1000)) | ||
Wait 0.01 | Wait 0.01 | ||
Wend | Wend | ||
− | + | Write "\nEsecuzione terminata" | |
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 88: | 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 04: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