You are here: Symbol Reference > MtxVecBase Namespace > Classes > TMtxVecBase Class > public > SetSubRangeLevel Method > TMtxVecBase.SetSubRangeLevel Method (TMtxVecBase, integer, integer)
MtxVec VCL
ContentsIndex
PreviousUpNext
TMtxVecBase.SetSubRangeLevel Method (TMtxVecBase, integer, integer)

Defines a sub vector/matrix of Src and pushes any previous subranges on to a stack.

Pascal
procedure SetSubRangeLevel(const Src: TMtxVecBase; Index: integer; Len: integer = MtxVecEOA); overload;

The method will define a subarray starting at Index and ending at Index+Len-1 of Src. No copying will occur, only pointers will be shifted or indices adjusted. The routine allows for stack based pushing and poping of sub-ranges with the additional constraint that each deepening of the sub-range is strictly within the bounds of the previous one. The pairs of SetSubRangeLevel/SetFullRangeLevel need to match. 

All values of the original TMtxVecBase will be preserved. An exception will be raised, if an attempt is made to change the size of calling object. No exception will be raised, if Src is resized while subranged. (possibly leading to memory overwrites) 

It is possible to call SetSubRange/SetFullRange on the object, which has been subranged with SetSubRangeLevel. 

To again obtain a view of the previous subrange level on the vector/matrix, call SetFullRangeLevel 

The Index parameter of the SetSubRange is always relative to the previous, if any, stack level. The Index parameter for the SetSubRangeLevel is relative to the current stack level.

Copyright (c) 1999-2025 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!