Utilizzare un Componente obsoleto

Da Gambas-it.org - Wikipedia.

Come è noto, qualche Componente, attivo nelle precedenti versioni di Gambas, oggi è invece considerato obsoleto, e pertanto è stato disattivato.

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, 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.

Questa circostanza rende possibile richiamarli e quasi sempre utilizzare le loro Classi.

Sono almeno due le modalità per richiamare ed utilizzare le risorse di tali Componenti ormai obsoleti.


Riattivazione dall'IDE di Gambas

La prima modalità prevedere la loro possibile riattivazione dall'IDE di Gambas.

Ecco come fare:
1) nell'IDE cliccare in alto nel menu e scegliere le seguenti voci: " Progetto --> Proprietà ";
2) nella finestra di dialogo che appare cliccare su "Componenti";
3) appariranno tutti i Componenti attivabili;
4) al di sopra di essi, a destra, e più precisamente nella prima riga scrivibile all'estrema destra, proprio sotto la icona X per chiudere la finestra di dialogo, v'è un tastino virtuale contenente una piccola icona con un cerchietto rosso sbarrato. Lasciando il puntatore del mouse su tale icona, apparirà un popup avente il seguente testo: " Show deprecated components ".
5) cliccare su tale tastino;
6) in tal modo saranno mostrati i Componenti ormai obsoleti, che potranno comunque essere attivati con la modalità consueta e così utilizzati.

Ecco, dunque, come si mostrerà la finestra dei Componenti; quelli in colore grigio chiaro sono i Componenti obsoleti riattivabili: Uso Componenti obsoleti.png


Riattivazione da codice

Il richiamo ed uso dei Componenti ormai obsoleti può avvenire anche da codice. [nota 1]

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" - ormai obsoleto - e si utilizzeranno alcune risorse della sua Classe "Music" per eseguire un file audio o Midi:

Private cl As Class
Private esce As Boolean


Public Sub Main()
 
 Dim sym, percorso_file As String
 Dim b As Byte
 
' Impostiamo il percorso del file audio (.wav, .mp3, .ogg) o del file Midi:
  percorso_file = "/percorso/del/file"
 
  Component.Load("gb.sdl.sound")
   
  cl = Class.Load("Music")
   
  Print "Simboli di SDL supportati da 'gb.sdl.sound':"
  For Each sym In cl.Symbols
    Print b;; sym; "   ";
    Inc b
  Next
  Print
  Print
   
  Object.Call(cl, cl.Symbols[1], [percorso_file])
  Object.Call(cl, cl.Symbols[2], Null)
   
  While Not esce
    Write #File.out, "\r Tempo trascorso: " & Date(0, 0, 0, 0, 0, 0, Object.GetProperty(cl, cl.Symbols[0]) * 1000)
    Wait 0.01
  Wend
  
  Print "Esecuzione terminata"
  Quit
  
End


Public Sub Application_Read()
 
 Dim s As String
 
  Input #File.In, s
   
' Se dalla console/terminale invio la lettera 'q', allora termina l'esecuzione del file:
  If s = "q" Then Object.Call(cl, cl.Symbols[3], Null)
  esce = True
  
End



Note

[1] Vedere anche questa pagina della Wiki: http://www.gambas-it.org/wiki/index.php?title=Attivare_un_Componente_dinamicamente_da_codice