RTTI/Reflection. Especially useful for serializing classes. And that also works well with Variants.But normally, wanting to create a var of "some random type" means that your class hierarchy is flaky.