Bei Klassen werden im Kompilat einfach mehr Informationen gespeichert. Wenn du auf Klassen umsteigst, kannst du deine Felder um entsprechende Eigenschaften ergänzen, die als published deklariert werden sollten. Mit den Routinen aus der
Unit TypInfo kannst du dann recht einfach die Eigenschaften mit ihren Namen als String ansprechen. Dein Array idlist brauchst du damit auch nicht mehr, weil du auch eine Liste aller Eigenschaften bekommen kannst; das ist dann einfacher zu pflegen.