Главная страница | назад





Article #17930: Determining if an object supports a property.

 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