![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить список свойств класса [D7, Win95/98, WinME, NT4, Win2k, WinXP]
aleshap © (2004-10-12 10:16:00)Уважаемые мастера!
Каким образом можно получить список всех свойств класса из области public ?
При использовании RTTIполучается получить доступ только к publishedсвойствам.
var TD:PTypeData;
List:PPropList;
i,N:Integer;
begin
TD:=GetTypeData(CInfo.ClassInfo);
N:=TD.PropCount;
if N<=0 then exit;
GetMem(List,SizeOf(PPropInfo)*N);
try
GetPropInfos(TObject(TD).ClassInfo ,List);
for i:=0 to N-1 do begin
Memo.Lines.Add(List[i].Name);
.....
Ведь Delphi же их как то получает?
Спасибо
aleshap (2004-10-12 10:53:00) [1]Да ладно забудьте - то, что вы предлагаете - "овчинка выделки не стоит"
TUser (2004-10-12 10:50:00) [2]Тогда никак. Почти никак - можно DeDe'й 'декомпилировать' и посмотреть.
aleshap (2004-10-12 10:49:00) [3]тогда проблема в том что исходников может и не быть....
Sapersky (2004-10-12 10:47:00) [4]Каким образом можно получить список всех свойств класса из области public?
Распарзить исходник :)
Смех смехом, но я делал нечто подобное, правда, для записей... (для автоматического чтения/сохранения в ini).
Правда, парзер кривоват получился, работает не очень надёжно, ограничений на вид исходника масса... зато не надо писать много-много ini.WriteString(bla-bla-bla) :)
TUser (2004-10-12 10:38:00) [5]published - это и есть такой механизм, который описывает информацию доступную, через RTTI. Все что не-published через RTTI недоступно (в смысле - все свойства класса).
Delphi - у него есть компилятор, он исходники читает.
aleshap (2004-10-12 10:34:00) [6]НИКАК!
Все вопрос снят! Спасибо за участие