Conoscere le Classi possedute da un Componente
Vai alla navigazione
Vai alla ricerca
Per conoscere via codice quali Classi siano possedute da un Componente, è possibile usare il seguente codice [nota 1], nel quale - come esempio - si individueranno le Classi appartenenti al Componente gb.sdl2.audio .
Public Sub Main()
Dim simboli As String[] = ["Main", "Debug", "^System", "Highlight", "Expression", "Pointer[]", "Long[]", "Object[]",
"Date[]", "Single[]", "Float[]", "Integer[]", "Short[]", "Byte[]", "Boolean[]", ".Array.Bounds",
"Observer", "Timer", "Task", "_BoxedString", "String", "Jit", "User", "System",
"Process", "Application", "Args", "Env", "File", "Stat", "Stat.Perm", ".Stream.Term",
".Stream.Lines", "Error", "Collection", "Object", "Components", "Classes", "Array", "String[]",
".Symbol", "Enum", "Variant[]", "Param", "gb", "Stream", "Component", "Class"]
Dim cp As Component
Dim cl As Class
Dim b As Byte
' Carica il Componente:
cp = Component.Load("gb.sdl2.audio")
Print String(Len(cp.Name), "=\e[1m")
Print cp.Name
Print String(Len(cp.Name), "\e[0m=")
For Each cl In Classes
If (Not simboli.Exist(cl.name)) And (Left(cl.name, 1) <> ".") Then
Inc b
If Left(c.name, 1) = "^" Then
Print b;; Right(cl.Name, Len(cl.Name) - 1)
Else
Print b;; cl.Name
Endif
Endif
Next
End
Va precisato che, qalora vengano caricati manualmente o automaticamente (per dipendenza) due o più Componenti Gambas, il predetto codice non riesce ancora precisamente ad assegnare a ciascun Componente caricato le rispettive Classi, ma comunque le individua.
Ovviamente non fallisce, qualora sia caricato un solo Componente.
Note
[1] Il codice è stato ideato da "Gianluigi", membro del forum "gambas-it.org, con alcune modifiche apportate successivamente dal membro "vuott".