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

Вниз

Использование найденого свойства компонента   Найти похожие ветки 

 
MikeZ   (2002-07-27 19:14) [0]

Функция вроде работает, но опять проблемы...
Этой функцией я определяю, есть ли свойства Caption и/или Hint:
Function HasPublishedProperty(Obj: TObject; PropName: String): Boolean;
Begin
Result := GetPropInfo(Obj.ClassInfo, PropName) <> Nil;
End;

Определил - есть. Теперь надо получить их значения. Я делаю это так:

ACaption, AHint : String;
Cm : TComponent //или TObject поставить? Но все равно ошибка...

.....

If HasPublishedProperty(Cm, "Caption") Then
ACaption := Cm.Caption;
If HasPublishedProperty(Cm, "Hint") Then
AHint := Cm.Hint;

Только Delphi ошибку выдает, т.к. Cm - это TComponent, а у него свойств Caption и Hint нет. Вот и вопрос - как считать значение свойства, которое реально есть, "но его вроде нет" (C)


 
Юрий Зотов ©   (2002-07-27 19:32) [1]

См. GetStrProp или GetPropValue в модуле TypInfo.

А если хотите, чтобы подобных вопросов больше не возникало, советую прочитать статью об использовании RTTI на "Королевстве". А также в журнале "Программист" за этот год (вот номер не скажу, не помню, попробуйте поискать на www.programme.ru).


 
Холмс   (2002-07-27 19:33) [2]

Для получения значения published св-ва независимо от типа объекта есть специальные ф-и (модуль typinfo)

function GetPropValue(Instance: TObject; const PropName: string;
PreferStrings: Boolean = True): Variant; // Почти для всех типов, кроме обработчиков событий

function GetObjectProp(Instance: TObject; PropInfo: PPropInfo;
MinClass: TClass = nil): TObject; overload; // Для объектных св-в

function GetMethodProp(Instance: TObject; PropInfo: PPropInfo): TMethod; overload; // Только для обработчиков событий (TMethod)



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
7-24254
Alex_MIB2
2002-05-22 21:22
2002.08.08
Как отправить на печать имеющийся *.тхт файл?


14-24204
Billy
2002-07-14 05:01
2002.08.08
Потомки TObject


14-24191
Lola
2002-07-12 13:29
2002.08.08
---|Ветка была без названия|---


14-24173
AL2002
2002-07-12 13:35
2002.08.08
Лицензионное Дельфи


14-24192
Igorek
2002-07-12 17:17
2002.08.08
Стереть информацию с HDD без возможности восстановления