System.Rtti.TValueData
Aus RAD Studio API Documentation
Delphi
TValueData = record FTypeInfo: PTypeInfo; FValueData: IValueData; case Integer of 0: (FAsUByte: Byte); 1: (FAsUWord: Word); 2: (FAsULong: LongWord); 3: (FAsObject: Pointer); 4: (FAsClass: TClass); 5: (FAsSByte: Shortint); 6: (FAsSWord: Smallint); 7: (FAsSLong: Longint); 8: (FAsSingle: Single); 9: (FAsDouble: Double); 10: (FAsExtended: Extended); 11: (FAsComp: Comp); 12: (FAsCurr: Currency); 13: (FAsUInt64: UInt64); 14: (FAsSInt64: Int64); 15: (FAsMethod: TMethod); 16: (FAsPointer: Pointer); end;
C++
struct DECLSPEC_DRECORD TValueData{ public: System::Typinfo::TTypeInfo *FTypeInfo; _di_IValueData FValueData; #pragma pack(push,1) union { struct { void *FAsPointer; }; struct { System::TMethod FAsMethod; }; struct { __int64 FAsSInt64; }; struct { unsigned __int64 FAsUInt64; }; struct { System::CurrencyBase FAsCurr; }; struct { System::CompBase FAsComp; }; struct { System::Extended FAsExtended; }; struct { double FAsDouble; }; struct { float FAsSingle; }; struct { int FAsSLong; }; struct { short FAsSWord; }; struct { System::Int8 FAsSByte; }; struct { System::TClass FAsClass; }; struct { void *FAsObject; }; struct { unsigned FAsULong; }; struct { System::Word FAsUWord; }; struct { System::Byte FAsUByte; }; }; #pragma pack(pop) };
Eigenschaften
| Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
|---|---|---|---|---|
record struct |
public | System.Rtti.pas System.Rtti.hpp |
System.Rtti | System.Rtti |
Beschreibung
Repräsentiert die Speicherstruktur für eine Vielzahl von Typen.
TValueData wird intern im Typ TValue verwendet. Der Hauptzweck von TValueData ist die optimale Speicherung von verschiedenen Wertarten.