Уважаемые, имею траблы с GetPropList. Функция честно возвращает список
property, но когда property имеет тип record, то функция не включает её
в возвращаемый список.
Код:
program enumerator;
{$APPTYPE CONSOLE}
uses
TypInfo,
Classes,
SysUtils;
type
tRec = record
x,y : Single;
end ;
tBaseClass = class ( TPersistent )
end ;
tChild = class( tBaseClass )
private
Fbeta: Boolean;
Falpha: string;
Flazha: tRec;
published
property alpha : string read Falpha write Falpha;
property beta : Boolean read Fbeta write Fbeta;
property lazha : tRec read Flazha write Flazha;
end ;
var
List: PPropList;
Count, i : integer;
begin
with tChild.Create do
begin
GetMem(List, 3);
Count := GetPropList(ClassInfo, tkAny, List);
for i := 0 to count -1 do
with List[ I ]^ do
writeln( format( '%s %s (%s)', [ Name, PropType^.Name, getenumname( typeinfo(TTypeKind ), Integer(PropType^.Kind ) ) ] ) );
FreeMem( List );
Free;
end;
Readln;
end.
Вывод:
Код:
alpha String (tkLString)
beta Boolean (tkEnumeration)
Можно ли с этим как нибудь побороться?