Показать сообщение отдельно
  #1  
Старый 14.12.2012, 06:08
front242 front242 вне форума
Прохожий
 
Регистрация: 12.11.2011
Сообщения: 10
Репутация: 10
По умолчанию Delphi7: GetPropList

Уважаемые, имею траблы с 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)

Можно ли с этим как нибудь побороться?
Ответить с цитированием