Utilizzare un Componente obsoleto

Da Gambas-it.org - Wikipedia.
Versione del 8 dic 2016 alle 08:04 di Vuott (Discussione | contributi) (Creata pagina con "Come è noto, qualche ''Componente'', attivo nelle precedenti versioni di Gambas, oggi è invece considerato ''obsoleto'', e pertanto è stato disattivato. Tali ''Componenti'...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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