This documentation was styled with a demo skin from the Premium Pack 4 add-on for Help & Manual. The contents of the skin are encrypted and not configurable. You can only publish HM projects with this skin. You cannot edit it or change it.
This version is copyright and may only be used for local testing purposes. It may not be distributed.
Please purchase the full version of the Premium Pack to get the configurable skins and remove this notice. The package will also include the Toolbox configuration utility for Premium Pack skins.
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
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(Integer, VarPtr(v) + UDT_ElementOffset(v.b))
PrintL Peek(Long , VarPtr(v) + UDT_ElementOffset(v.c))
PrintL
WaitKey