Ein Problem hab ich nun noch mit der klasse.
Wie bekomme ich denn so wie beim Array mit
RTTI alle Feldnamen?
Also bei meiner Klasse die ganzen Properties?
Ja, mit
RTTI:
Delphi-Quellcode:
uses
Rtti, TypInfo;
procedure PrintStuff(
const Item: TMyRecord);
var
ctx: TRttiContext;
t: TRttiType;
f: TRttiField;
p: TRttiProperty;
begin
t := ctx.GetType(TypeInfo(TMyRecord));
if Assigned(t)
then
begin
for f
in t.GetFields
do
begin
if f.Visibility
in [mvPublic..mvPublished]
then
Writeln(f.
Name + '
= ' + f.GetValue(@Item).ToString);
end;
for p
in t.GetProperties
do
begin
if p.Visibility
in [mvPublic..mvPublished]
then
Writeln(p.
Name + '
= ' + p.GetValue(@Item).ToString);
end;
end;
end;
Also welchen Pointer gibt man bei
p.GetValue(@Item).ToString
an ?
mit p.name komm ich zwar an die Propertienamen, jedoch nich an den Wert.
nagut p.name tuts auch schon =)