Вопросы и ответы

Дата: 2000-06-02 00:00:00

Как во время выполнения определить поддерживает ли обьект заданное свойство?



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;



Источник: Дельфи. Вокруг да около.