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

Вниз

Найти свойство по имени   Найти похожие ветки 

 
Ш-К   (2004-06-18 09:48) [0]

У меня есть св-во от TPersistent. Как мне получить его, если я знаю только имя?

Что-то типа:
function FindObjectProp(AInstance: TPersistent; AFindName: string): TPersistent;


 
Skier ©   (2004-06-18 09:50) [1]

TypInfo.pas


 
Гаврила ©   (2004-06-18 09:52) [2]

только для Published свойств
unit TypInfo;
function GetStrProp(Instance: TObject; const PropName: string): string;
{для строкового свойства, для других типов - функции там же }


 
Ш-К   (2004-06-18 10:45) [3]

Делаю следущее:

 ListView1.Columns.Clear;
 ListView1.ViewStyle := vsReport;
 ListView1.Columns.Add.Caption := "11111";
 ListView1.Columns.Add.Caption := "22222";
 ListView1.Columns.Add.Caption := "33333";
 TypInfo.SetPropValue(ListView1.Columns[2],
   "Caption", "aaaaa");

Все работает.
Хочу найти св-во Columns[2] по имени:

procedure TForm1.Button3Click(Sender: TObject);
var
 Propinfo: PPropInfo;
 AInstance: TPersistent;
begin
 Propinfo := GetPropInfo(ListView1.ClassInfo, "Columns[2]");
 if Propinfo <> nil then
   AInstance := TPersistent(GetOrdProp(ListView1, PropInfo));
 ....
end;

Не могу найти - Propinfo всегда nil.
Как получить PPropinfo от "Columns[2]"?
Собственно, мне надо устанавливать св-ва для TCollectionItem.


 
Amoeba ©   (2004-06-18 11:58) [4]

С-во должно быть Published и класс должен быть зарегистрирован.
Подобный вопрос рассматривался в форуме на днях.


 
Ш-К   (2004-06-18 12:25) [5]

Тогда поднимаю вопрос.
Если свойство не Published, что - кирдык?

SetPropValue(ListView1.Columns[2], "Caption", "aaaaa");
Выполняется же и с паблик св-вом. А мне-то надо всего чтобы:
SetPropValue("ListView1.Columns[2]", "Caption", "aaaaa");


 
Amoeba ©   (2004-06-18 12:33) [6]


> Ш-К   (18.06.04 12:25) [5]
> Тогда поднимаю вопрос.
> Если свойство не Published, что - кирдык?

Ага! Именно что кирдык. В RTTI есть информация только о Published свойствах.


 
DieHard   (2004-06-18 13:16) [7]

Что за имя такое у свойства "Columns[2]"?
Что в объявлении класса написано? "Columns"



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

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

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1086592138
Layner
2004-06-07 11:08
2004.07.04
Как получить сумму каждой строки в одной выборке (MSSQL/SQL)


3-1086766094
Роман
2004-06-09 11:28
2004.07.04
Lookup поля в runtime


3-1086452546
Alex__T
2004-06-05 20:22
2004.07.04
Как указать Langdriver для Dbase при откртии ее?


14-1087280962
DimKa
2004-06-15 10:29
2004.07.04
Сколько в кубометре байтов?


8-1082345316
CyberStorm
2004-04-19 07:28
2004.07.04
Определение принадлежности точки к кривой Безье