Zitat:
FixStringXX
So weit war ich auch schon, aber leider sind da auch die Generics zu nix zu gebrauchen.
Und aus irgendwelchen Gründen wehren sich Alle gegen die Einführung von Makros, bzw. daß man Konstanten als "Parameter" in den Generics verwenden kann.
Delphi-Quellcode:
TFixString<Len> = record
Value: array[0..Len-1] of Char;
class operator implicit(const aValue: string): TFixString;
class operator implicit(const aValue: TFixString): string;
end;
Zitat:
Jetzt suche ich eine Lösung um die
Rtti Informationen von rec als typloser Parameter auszulesen.
P{Pointer} := TypeInfo(TNodeData);
kannst du problemlos als Parameter an deine Funktion übergen, oder hab ich dein Problem falsch verstanden?
Du könntest auch TReader und TWriter verwenden, so wie es z.B. die
VCL mit den binären DFMs macht.
Dort wurd zu jedem "Wert" auch der Typ mit gespeichert, was das Auslesen von "unbekannten" Datenstrukturen ermöglicht.
Wenn man da Feldname+Wert abspeichet, dann kann man beim Auslesen die Daten sogar in einen anderen Record/Datenobjekt übertragen, da man den Feld-/Propertynamen kennt.
- so kann man Speicher sparen, da man "unnötige" Daten weglässt (in der
DFM stehen ja auch nur "abweichende" Property drin)
- wenn man das ausgelesene Feld über seinen Namen sucht, passiert nichts, wenn man an der Struktur des Records was verändert (neue Felder irgendwo einfügen oder Alte entfernen)