| |
| Getting property information |
 |
How can I tell if a given object has a given property at runtime?
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;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|