There's more...

RTTI is a really vast topic. There are endless possibilities for using it in smart ways.

Remember, however, that, if the Delphi linker sees that your class is not used in the actual code (because it is used only in RTTI calls), it could eliminate the class from the executable. So, to be sure that your class will be included in the final executable, write a line of code, even a useless one, referring to the class. In this recipe, I've included a line of code similar to the following one in every initialization section of the different calculus classes:

//. . . other code before 

initialization 
 
//Linker will not remove the class from the final executable 
//because now it is used somewhere 
 
TCalculationCustomer_CityMall.ClassName; 
 
end.