Delphi provided Runtime Type Information (RTTI) more than a decade ago. Yet even today many developers aren't fully aware of its risks and benefits.
In short, Runtime Type Information is information about an object's data type that is set into memory at run-time.
RTTI provides a way to determine if an object's type is that of a particular class or one of its descendants.
RTTI IN DELPHI - EXPLAINED
The Run-Time Type Information In Delphi - Can It Do Anything For You? article by Brian Long provides a great introduction to the RTTI capabilities of Delphi. Brian explains that the RTTI support in Delphi has been added first and foremost to allow the design-time environment to do its job, but that developers can also take advantage of it to achieve certain code simplifications. This article also provides a great overview of the RTTI classes along with a few examples.
Examples include: Reading and writing arbitrary properties, common properties with no common ancestor, copying properties from one component to another, etc.