Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Тип объекта неизвестен, а имя свойство точно известно   Найти похожие ветки 

 
SerKom   (2004-04-20 07:52) [0]

Может быть кто-нибудь знает, как обратиться к св-ву объекта, не указывая тип объекта, у которого это свойство имеется?
Подробнее: большинство компонентов (Data Controls) имеют св-во DataField, но у них нет общего наследника с этим свойсвом, т.е., например, я точно знаю, что у меня на форме все контролы имеют св-во DataField, но они все разного типа, как обойти громоздкую констукцию перечисления всех возможных типов:
if Контрол is Тип1 then
s:=(Контрол as Тип1).DataField;
if Контрол is Тип2 then
s:=(Контрол as Тип2).DataField;
и т.д.


 
sniknik ©   (2004-04-20 07:59) [1]

приводи к тому типу наследником которого они все являются и где впервые описано нужное свойство.
(если оно описана в каждом на последнем уровне то так не пойдет)


 
SerKom   (2004-04-20 08:05) [2]


> sniknik ©   (20.04.04 07:59) [1]
>(если оно описана в каждом на последнем уровне то так не пойдет)

cв-во DataField как раз так и описано


 
SerKom   (2004-04-20 08:09) [3]

Всем спасибо, тема закрыта.

uses TypInfo;

......................

const
 strPropName = "DataField";
var
 I: Integer;
 S: String;
begin
 S := "";
 for I := 0  to ComponentCount - 1 do
 begin
   if IsPublishedProp(Components[I], strPropName) then
   begin
     if PropIsType(Components[I], strPropName, tkLString) then
     begin
       S := GetStrProp(Components[I], strPropName);
     end;//if
   end;//if
 end;//for
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
3-1082091545
Hooch
2004-04-16 08:59
2004.05.16
recordset to xml


1-1083401859
pd
2004-05-01 12:57
2004.05.16
Как программно создать таймер?


3-1082550768
}|{yk
2004-04-21 16:32
2004.05.16
n раз возникает событие OnNewRecord


3-1082706232
Ant
2004-04-23 11:43
2004.05.16
Какой компонент использовать?


1-1083308154
pan
2004-04-30 10:55
2004.05.16
Можно-ли установить D5 и D6 под Win95/98 ?