Utilizzare un Componente obsoleto
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.
Come procedere.
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