Differenze tra le versioni di "Utilizzare un Componente obsoleto"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Come è noto, qualche ''Componente'', attivo nelle precedenti versioni di Gambas, oggi è invece considerato ''obsoleto'', e pertanto è stato disattivato. Tali ''Componenti'...")
 
 
(28 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>&#091;[[#Note|nota 1]]&#093;</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, qualora tali Componenti obsoleti non siano stati definitivamente eliminati dai sorgenti di Gambas <SUP>&#091;[[#Note|nota 2]]&#093;</sup>, è possibile richiamarli e quasi sempre utilizzare le loro ''Classi''.
  
Eppure, nonostante tali ''Componenti'' sia dichiarati obsoleti, ed il loro svilupo ed aggiornamento sia stato arrestato, i loro ormai vecchi sorgenti sono stati lasciati dagli sviluppatori del linguaggio Gambas nei file sorgente dei ''Componenti'' di Gambas.
+
Il richiamo ed uso dei ''Componenti'' ormai obsoleti può avvenire da codice <SUP>&#91;[[#Note|nota 3]]&#93;</sup>, purché - come già detto - non siano stati definitivamente estromessi dai sorgenti di Gambas.
 
 
Questa circostanza rende possibile richiamarli e quasi sempre utilizzare le loro ''Classi''.
 
 
 
 
 
Come procedere.
 
  
 
Nel progetto Gambas si dovrà fare uso delle ''Classi'':
 
Nel progetto Gambas si dovrà fare uso delle ''Classi'':
Riga 17: Riga 13:
  
  
Mostriamo un esempio pratico, nel quale si richiamerà l'ormai obsoleto e disattivato Componente "''gb.sdl.sound''" - ormai obsoleto - e si utilizzeranno alcune risorse della sua Classe "''Music''" per eseguire un file audio o Midi:
+
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()
+
  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>' ''Impostiamo il percorso del file audio (.wav, .mp3, .ogg) o del file Midi:''</font>
+
  <FONT Color=gray>' ''Imposta il percorso del file audio (FLAC, OGG, WAV):''</font>
  percorso_file = "<FONT Color=gray>''/percorso/del/file''</font>"
+
  percorso_file = "<FONT Color=darkgreen>''/percorso/del/file''</font>"
 
    
 
    
  Component.Load("gb.sdl.sound")
+
<FONT Color=gray>' ''Carica innanzitutto il Componente "obsoleto" necessario per utilizzare la Classe che permetterà di eseguire il file:''</font>
 +
  co = <FONT Color=red>Component.Load</font>("<FONT Color=darkorange>gb.sdl.sound</font>")
 
      
 
      
  cl = Class.Load("Music")
+
<FONT Color=gray>' ''Carica quindi la Classe che permetterà di eseguire il file:''</font>
 +
  cl = <FONT Color=red>Class.Load</font>("Music")
 
      
 
      
  Print "Simboli di SDL supportati da 'gb.sdl.sound':"
+
  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
    Inc b
+
    Inc b
  Next
+
  Next
  Print
+
  Print
  Print
+
  Print
 
      
 
      
  Object.Call(cl, cl.Symbols[1], [percorso_file])
+
<FONT Color=gray>' ''Carica infine i Metodi specifici della Classe necessari per caricare ed eseguire il file:''</font>
  Object.Call(cl, cl.Symbols[2], Null)
+
  <FONT Color=red>Object.Call</font>(cl, cl.Symbols[1], [percorso_file])
 +
  <FONT Color=red>Object.Call</font>(cl, cl.Symbols[2], Null)
 
      
 
      
  While Not esce
+
  While Not esce
    Write #File.out, "\r Tempo trascorso: " & Date(0, 0, 0, 0, 0, 0, Object.GetProperty(cl, cl.Symbols[0]) * 1000)
+
<FONT Color=gray>' ''Richiama anche la Proprietà ".Pos" della Classe "Music" per sapere la currente posizione temporale dell'esecuzione:''</font>
    Wait 0.01
+
    Write "\e[0m\r Tempo trascorso: \e[31m" & Str(Time(0, 0, 0, <FONT Color=red>Object.GetProperty</font>(cl, cl.Symbols[0]) * 1000))
  Wend
+
    Wait 0.01
 +
  Wend
 
    
 
    
  Print "Esecuzione terminata"
+
  Write "\nEsecuzione terminata"
  Quit
+
  Quit
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Application_Read()
+
  Public Sub Application_Read()
 
 
  Dim s As String
 
 
 
  Input #File.In, s
 
 
      
 
      
  <FONT Color=gray>' ''Se dalla console/terminale invio la lettera 'q', allora termina l'esecuzione del file:''</font>
+
  <FONT Color=gray>' ''Premendo il tasto "Invio" della tastiera, termina l'esecuzione del file:''</font>
  If s = "q" Then Object.Call(cl, cl.Symbols[3], Null)
+
  <FONT Color=red>Object.Call</font>(cl, cl.Symbols[3], Null)
  esce = True
+
  esce = True
 
    
 
    
  '''End'''
+
  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]]

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