Conoscere le Classi possedute da un Componente
Da Gambas-it.org - Wikipedia.
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".