Laut Delphi
OH ist TControl der gemeinsame Vorfahre, der die Property "Caption" einführt. Da nahezu alle
VCL-Controls davon abstammen dürften, die eine Caption haben, reicht es einfach darauf zu casten. (<deinObjekt> as TControl).Caption
Da auch alle Nachfahren einer Klasse geerbte Felder und Properties an den selben Offsets haben, kann man problemlos auf den ersten Vorfahren casten, der die gewünschte Eigenschaft einführt. (Bei Methoden evtl. auf Überladungen achten, wie es damit steht weiss ich gerade nicht genau - für den Fall der Caption aber unerheblich.)
Somit wird dein Vorhaben ein 2-Zeiler.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)