Ich habe
hier (klick) eine
Unit von Sirius gefunden, mit der man dynamische Strukturen komfortabel in einen Stream packen kann.
Bleibt das Problem, das TypeInfo(TMyRecord) nur funktioniert, wenn der Record einen Member vom Typ Variant hat.
Beispiel:
Delphi-Quellcode:
Type
TMyRecord1 = packed Record
aInteger : integer;
aString : String[100];
end;
...
Typeinfo(TMyRecord1) >>>> Der Typ TMyRecord1 enthält keine TypInformation.
Delphi-Quellcode:
Type
TMyRecord2 = packed Record
Dummy : variant;
aInteger : integer;
aString : String[100];
end;
Typeinfo(TMyRecord2) >>>> geht
Warum ist das so ?
Kann ich irgendwie an die Typinformation kommen ohne einen Variant in den Record zu stecken ?
Der Record wird als Parameter zum Aufruf einer
DLL Prozedur verwendet. Die
DLL verwendet kein Sharemem. Daher habe ich etwas Respekt vor dem Variant, weil der der geneigte "
DLL Benutzer" versuchen könnte, lange Strings über den Variant zu transportieren.
Schöne Grüße,
Jens