- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Determining if an object supports a property.

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;



* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile