Главная страница
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.05 c
4-1085420501
notA
2004-05-24 21:41
2004.07.04
"описатель окна"(HWND)


8-1082481420
MIA
2004-04-20 21:17
2004.07.04
Звук (ошибка)


14-1087374879
MeF88
2004-06-16 12:34
2004.07.04
GL_ARB_shader_objects or Detonator 60


3-1086802083
yar
2004-06-09 21:28
2004.07.04
фильтрации по диапазону


1-1087496319
lelik
2004-06-17 22:18
2004.07.04
закрытие приложения