Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#1

Typinformation von Records

  Alt 25. Sep 2007, 13:28
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
  Mit Zitat antworten Zitat