adjust

adjust(offset: Integer64): MemoryAddress;

The adjust method of the MemoryAddress primitive type adjusts the value of the receiver using the offset parameter and returns a new MemoryAddress value. If the MemoryAddress is not valid on the current node when this method is called, a 1443 (MemoryAddress is not valid for current Node) exception is raised.

The following code steps through a block of memory identified by iPtr in 1024 Byte blocks.

vars
    iBytesLeft: Integer;
    iBytesCopy: Integer;
    iPtr: MemoryAddress;
begin
    ...
    while iBytesLeft > 0 do
        iBytesToCopy := iBytesLeft.min(1024);
        iPtr := iPtr.adjust(iBytesToCopy);
        iBytesLeft := iBytesLeft - iBytesToCopy;
    endwhile;
    ...
end;

7.1.05 (Service Pack 4) and higher