[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'System' (#rtl)

# tvardata

Variant record.

## Declaration

Source position: varianth.inc line 95

`type tvardata = packed record`
`vtype: tvartype;` |  | Type of variant.
`case Integer of`
`0: (`
`res1: Word;` |  | Reserved byte
`case Integer of`
`0: (`
`res2: Word;` |  | Reserved byte
`res3: Word;` |  | Reserved byte
`case Word of`
`varsmallint: (`
`vsmallint: SmallInt;` |  | Smallint value
`);`
`varinteger: (`
`vinteger: LongInt;` |  | Integer value
`);`
`varsingle: (`
`vsingle: single;` |  | Single value
`);`
`vardouble: (`
`vdouble: Double;` |  | Double value
`);`
`vardate: (`
`vdate: TDateTime;` |  | TDateTime value
`);`
`varcurrency: (`
`vcurrency: currency;` |  | Currency value
`);`
`varolestr: (`
`volestr: PWideChar;` |  | OLE string value (specially allocated widestring)
`);`
`vardispatch: (`
`vdispatch: pointer;` |  | Dispatch interface value
`);`
`varerror: (`
`verror: HRESULT;` |  | Error value
`);`
`varboolean: (`
`vboolean: wordbool;` |  | Boolean value
`);`
`varunknown: (`
`vunknown: pointer;` |  | IUnknown interface value
`);`
`varustring: (`
`vustring: pointer;`
`);`
`varshortint: (`
`vshortint: ShortInt;` |  | Shortint value
`);`
`varbyte: (`
`vbyte: Byte;` |  | Byte value
`);`
`varword: (`
`vword: Word;` |  | Word value
`);`
`varlongword: (`
`vlongword: DWord;` |  | Longword value
`);`
`varint64: (`
`vint64: Int64;` |  | Int64 value
`);`
`varqword: (`
`vqword: QWord;` |  | QWord value
`);`
`varword64: (`
`vword64: QWord;` |  | QWord value (?)
`);`
`varstring: (`
`vstring: pointer;` |  | Ansistring value
`);`
`varany: (`
`vany: pointer;` |  | Any value
`);`
`vararray: (`
`varray: pvararray;` |  | Variant array value
`);`
`varbyref: (`
`vpointer: pointer;` |  | Pointer value
`);`
`varrecord: (`
`vrecord: pointer;` |  | Pointer to record
`precinfo: pointer;` |  | Pointer to record type info data
`);`
`);`
`1: (`
`vlongs: array [0..2] of LongInt;` |  | Value as an array of longints
`);`
`);`
`1: (`
`vwords: array [0..6] of Word;` |  | Value as an array of words
`);`
`2: (`
`vbytes: array [0..13] of Byte;` |  | Value as an array of bytes
`);`
`end;`

## Description

TVarData is a record representation of a variant. It contains the internal structure of a variant and is handled by the various variant handling routines.