На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Как во время выполнения определить поддерживает ли обьект заданное свойство Сделать домашней страницей Добавить в избранное Написать писмо

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


Звонит клиент в сервисную службу:
- У меня сломался компьютер и из него пошел дым. Мне сказали что надо что-то изменить в config.sys. Могу ли я воспользоваться Вашими услугами?
- Понимаете, если пошел дым, значит что-то сгорело, скорее всего это блок питания. Привезите к нам системный блок и мы заменим Вам блок питания.
- Нееее, Вы хотите меня обмануть, мне нужно только настроить config.sys и не более того!
Разговор длится 15 минут. Специалист сервисной службы:
- ОКЕЙ!!! Позвоните в Microsoft и закажите программу no-smoke.com ver 2.35.
Звонок в сервисную службу через 10 минут. Звонит тот же человек.
- Возможно поменять у Вас блок питания?
- Да, но зачем Вам это?
- Эта версия no-smoke.com не поддерживает старые блоки питания.


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;


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz