Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как во время выполнения определить поддерживает ли обьект заданное свойство

Звонит клиент в сервисную службу:
- У меня сломался компьютер и из него пошел дым. Мне сказали что надо что-то изменить в 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;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay