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 TForm .Button Click(Sender: TObject);
var
p : pointer;
begin
p := HasProperty(Button , 'Color');
if p <> nil then
SetOrdProp(Button , p, clRed) else
ShowMessage('Button has no color property');
p := HasProperty(Label , 'Color');
if p <> nil then
SetOrdProp(Label , p, clRed) else
ShowMessage('Label has no color property');
p := HasProperty(Label .Font, 'Color');
if p <> nil then
SetOrdProp(Label .Font.Color, p, clBlue) else
ShowMessage('Label.Font has no color property');
end;
7/ 6/98 4:3 :28 PM