On 2015-08-20 08:06, Sven Barth wrote:
Am 20.08.2015 03:42 schrieb "Fabio Luis Girardi"
<fluisgira...@gmail.com <mailto:fluisgira...@gmail.com>>:
> Currently, I'm doing a small program that uses libraries, objects
and the operator IS, that is know that this operator fails because of
duplication of VMT.
And /that/ is one of the reasons why dynamic packages were invented...
>
> Everyone know some alternative (or more elegant) method to test if a
object created on a library is a class descendant without use
object.ClassName? Or in case of use String to check the class name,
how retrieve the class name of all descendant classes from a object?
>
Nope, there is no more elegant way. And you'll probably need to walk
the class tree using ParentClass and retrieve each name.
Note: an except-handler will suffer from the same problem if it needs
to catch an exception that was raised from the library (or the other
way round).
You are going to a extreme fragile direction there.
What about TObject.InheritsFrom(aclass : tclass) - Is that not the
equivalent of the *IS* operator
-Torsten.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal