Navigation:  ThinBASIC Language > thinBasic Functions > UDT Functions >

UDT_ElementOffset

Previous pageReturn to chapter overviewNext page

 

Description

 

Return the offset of an element inside an UDT (User Defined Type) variable.

 

Syntax

 

lPos = UDT_ElementOffset(UdtElement)

 

Returns

 

Number

Negative values means error, usually UDT element does not exists

 

Parameters

 

Name

Type

Optional

Meaning

UdtElement

UDT structure

No

An UDT element name

 

Remarks

 

First element in an UDT is at Offset 0 (zero)

 

Restrictions

 

See also

 

UDT_ElementByte,

 

Examples

 

Uses "Console"

 

Type tUDT

  a As Byte

  b As Integer 

  c As Long 

End Type                   

 

Dim v As tUDT

 

v.a = 1

v.b = 2

v.c = 3

     

PrintL UDT_ElementOffset(v.a), "(expected 0, as it is in the root)"

PrintL UDT_ElementOffset(v.b), "(expected 1, because 0 + SizeOf(Byte) = 1)"

PrintL UDT_ElementOffset(v.c), "(expected 3, because 0 + SizeOf(Byte) + SizeOf(Integer) = 3)"

PrintL

 

PrintL "The following should print 1, 2, 3"

PrintL Peek(Byte   , VarPtr(v) + UDT_ElementOffset(v.a))

PrintL Peek(IntegerVarPtr(v) + UDT_ElementOffset(v.b))

PrintL Peek(Long   , VarPtr(v) + UDT_ElementOffset(v.c))

PrintL

 

WaitKey