Differenze tra le versioni di "Conoscere le Classi possedute da un Componente"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per conoscere quali Classi siano possedute da un Componente, è possibile usare il seguente codice <SUP>[[[#Note|nota 1]]]</sup>, nel quale - come esempio - si indiv...")
 
 
Riga 1: Riga 1:
Per conoscere quali Classi siano possedute da un Componente, è possibile usare il seguente codice <SUP>&#091;[[#Note|nota 1]]&#093;</sup>, nel quale - come esempio - si individueranno le Classi appartenenti al Componente ''gb.sdl2.audio'' .
+
Per conoscere ''via codice'' quali Classi siano possedute da un Componente, è possibile usare il seguente codice <SUP>&#091;[[#Note|nota 1]]&#093;</sup>, nel quale - come esempio - si individueranno le Classi appartenenti al Componente ''gb.sdl2.audio'' .
 
  Public Sub Main()
 
  Public Sub Main()
 
   
 
   

Versione attuale delle 16:55, 8 lug 2024

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