On Sat, 07 Nov 2015, Beno??t Minisini wrote: > Le 06/11/2015 06:04, Tobias Boege a ?crit : > > Hi, > > > > in my project I have the need to enumerate all classes from my current > > project (not from components) for which > > > > hClass Is X > > > > is true for some fixed class X, once at startup. I think I tried > > > > For Each hClass In Classes > > hCurrent = hClass > > While hCurrent.Parent > > If hCurrent.Parent = Classes["X"] Then > > aRes.Add(hClass) > > Break > > Endif > > hCurrent = hCurrent.Parent > > Wend > > Next > > > > (written from memory, but it gets the idea across). However, this does not > > work as Classes can only access the already loaded classes. > > > > Is there a way to enumerate _all_ classes in the current project or to force > > loading of all remaining classes from the project? I have no particular > > technical problem with hard-coding the desired list instead of computing it > > but I want to know if I *could* compute it. > > > > Regards, > > Tobi > > > > At the moment, you can't get any information on a class without loading > it into the interpreterer, which may have unwanted effects... > > I have the same need, so I may provide a solution in the future! >
Cool. In the meantime, to close this thread, I have decided for my project to list the relevant classes explicitly. It was about testing for all sub-classes of a specific class whether they could be constructed from a certain argument (i.e. if their constructors don't throw an error). Since I control all classes in the project, I found it less obscure and painful to write Dim hObj As MyClass Try hObj = New MySubClass1(Arg) If Not Error Then Return hObj Try hObj = New MySubClass2(Arg) If Not Error Then Return hObj ... Error.Raise(("No compatible implementation found")) Regards, Tobi -- "There's an old saying: Don't change anything... ever!" -- Mr. Monk ------------------------------------------------------------------------------ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user