[Gambas-user] List al the classes and symbols

Bruce Steers bsteers4 at gmail.com
Sun Jun 26 22:16:16 CEST 2022


On Sun, 26 Jun 2022 at 11:30, Martin <mbelmonte at belmotek.net> wrote:

> Hi,
> I want to list all the Gambas classes for all components.
>
> Public Function AllClases() As Collection
>
>    Dim cClass As New Collection
>    Dim obj As Object = ? ' what object would be here?
>    Dim MyClass As Class = Object.Class(obj)
>    Dim sSymbol As String
>
>    For Each sSymbol In MyClass.Symbols
>        Print MyClass.Name & ": " & sSymbol
>    Next
>
>    Return cClass
>
> End
>
> Best regards.
> Martin
>

Any gambas application only knows it's loaded classes, if you want ALL
other classes you could probably list the /usr/lib/gambas3 dir and load
each component manually with Component.Load().

Something like...
Dim sClasses As String[] = Dir("/usr/lib/gambas3", "*.gambas")

For Each s As String In sClasses
  Component.Load(File.BaseName(s))
Next

But you cannot load ALL the components as some are incompatible with others
so the above code won't work, maybe you can work with that?

With components loaded use the Classes array

*For Each hClass As Class In Classes*



*  For Each sSymbol As String In hClass.Symbols        Print hClass.Name &
": " & sSymbol    Next Next*

Maybe you could use a script (or make an exe) to load a component and list
its clases/symbols by running it with a component name (comining the above
method)....





*#!/usr/bin/env gbs3' Gambas script file' *List classes before loading
component




*Dim sList As New String[]For Each cl As Class In ClassessList.Add(cl.name
<http://cl.name>)Next*

*' *load component from arg

*Component.Load(Args[1])*

*' *List the classes/symbols again and report what's new








*For Each cl As Class In ClassesIf Not sList.Exist(cl.name
<http://cl.name>) Then Print cl.Name  For Each sSymbol As String In
cl.Symbols     Print cl.Name & ": " & sSymbol  NextEndifNext*


BruceS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20220626/878abc34/attachment.htm>


More information about the User mailing list