Thema: Delphi Records und RTTI?

Einzelnen Beitrag anzeigen

Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#9

Re: Records und RTTI?

  Alt 13. Feb 2009, 02:14
bei diesem Code ist in der PropList nur MyDouble vorhanden.
Wie kann man den Record auch noch regiestrieren? Damit er in die Liste kommt?

Hier mal der Code:


Delphi-Quellcode:

uses
  typinfo;

type

 TMyRecord = record
   Value1 : Integer;
   Value2 : Integer;
 end;

 TMyClass = class(TPersistent)
 private
   FDouble : Double;
   FMyRecord : TMyRecord;

 published
   property MyDouble : Double read FDouble write FDouble;
   property MyRecord : TMyRecord read FMyRecord write FMyRecord;

 end;


procedure TForm1.btnRTTIClick(Sender: TObject);
  var
    i, Count: Integer;
    PropList: PPropList;

    s:string;
    sl : TStringList;

    myObject : TMyClass;
    typeInfo : PTypeInfo;
  begin


    sl := TStringList.Create;

    myObject := TMyClass.Create;
    TypeInfo := myObject.ClassInfo;

    Count := GetPropList(typeInfo ,tkProperties,nil);
    GetMem(PropList, Count * SizeOf(PPropInfo));

    GetPropList(TypeInfo, tkProperties, PropList);

    for I := 1 to Count do begin
        s := PropList^[i - 1].Name;
        sl.Add(s);
    end;


    ShowMessage(sl.Text);

    FreeMem(PropList);
    myobject.free;
    sl.Free;
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat