Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как проверить наличие свойства компонента


Страницы:   1 2

Nil ©   (2009-06-19 12:45:00) 

прохожу по всем компонентам формы
for I := 0 to MainForm.ControlCount - 1 do
....
как проверить есть ли у очередного MainForm.Controls[I] свойство Font?
заранее благодарен!


Германн   (2009-06-19 14:55:00) [21]


> Leonid Troyanovsky ©   (19.06.09 14:44) [6]

AND не любишь? Или {$B–} ?
:)


Ega23   (2009-06-19 14:55:00) [22]


> Leonid Troyanovsky ©   (19.06.09 14:44) [6]


Ну да, как-то так.


Leonid Troyanovsky   (2009-06-19 14:44:00) [23]


> Ega23 ©   (19.06.09 12:53) [5]

>  property Font : Integer read ... write ... задать


var
  p: PPropInfo;
  c: TClass;
..
 p := GetPropInfo(xxx.ClassType, 'Font');
 if Assigned(p) then
   if p^.PropType^.Kind = tkClass then
      begin
        c:= GetObjectPropClass(p);
        if Assigned(c) then
          if c.InheritsFrom(TFont) then
            ShowMessage('Yea!');
      end;

--
Regards, LVT.


Ega23   (2009-06-19 12:53:00) [24]


uses TypInfo

procedure TForm1.Button10Click(Sender: TObject);
var
 p : PPropInfo;
begin
 p := GetPropInfo(Timer1, 'Font');
 if Assigned(p) then
   ShowMessage('Yea!')
 else
   ShowMessage('No!')
end;


Но тут есть нюанс - я ведь могу своё свойство
 property Font : Integer read ... write ... задать


{RASkov}   (2009-06-19 12:51:00) [25]

http://www.delphisources.ru/pages/faq/base/set_props_values.html


Palladin   (2009-06-19 12:48:00) [26]

Uses
TypInfo;

IsPublishedProp


Сергей М.   (2009-06-19 12:47:00) [27]

Для опубликованных свойств см. ф-цию TypInfo.IsPublishedProp


MBo   (2009-06-19 12:47:00) [28]

посмотреть подходящие функции в модуле typinfo.pas


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо