Question and Answer Database FAQ2930D.txt Determining if an object supports a property. Category :VCL Platform :All Product :All 32 bit Question: How can I tell if a given object has a given property at runtime? Answer: The following example shows how to determine if an object has a property available, and if so, how to change the property: function HasProperty(Obj : TObject; Prop : string) : PPropInfo; begin Result := GetPropInfo(Obj.ClassInfo, Prop); end; procedure TForm1.Button1Click(Sender: TObject); var p : pointer; begin p := HasProperty(Button1, 'Color'); if p <> nil then SetOrdProp(Button1, p, clRed) else ShowMessage('Button has no color property'); p := HasProperty(Label1, 'Color'); if p <> nil then SetOrdProp(Label1, p, clRed) else ShowMessage('Label has no color property'); p := HasProperty(Label1.Font, 'Color'); if p <> nil then SetOrdProp(Label1.Font.Color, p, clBlue) else ShowMessage('Label.Font has no color property'); end; 7/16/98 4:31:28 PM
Last Modified: 01-SEP-99