Главная страница
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.041 c
4-1085349762
Malya
2004-05-24 02:02
2004.07.04
ShellExecute?


1-1087581978
zep
2004-06-18 22:06
2004.07.04
Listbox


14-1087062636
Vit@ly
2004-06-12 21:50
2004.07.04
Клавиша TAB


6-1081222372
Azazzello
2004-04-06 07:32
2004.07.04
Пересылка строки по сети


4-1084810876
headerr
2004-05-17 20:21
2004.07.04
Как отключить стрелки Up Down.