Главная страница
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.045 c
14-1087046197
Pat
2004-06-12 17:16
2004.07.04
Магистратура


4-1085560979
Jel
2004-05-26 12:42
2004.07.04
Как получить размеры иконки?


14-1086883702
DelphiN!
2004-06-10 20:08
2004.07.04
Изменение текстовых файлов в InstallSheild Expree 3.5


8-1082279093
forest
2004-04-18 13:04
2004.07.04
Рисование гна TImage


1-1087466808
Dolphin1
2004-06-17 14:06
2004.07.04
RTTI глюк