Your answer contains no information about a pointer to a dynamic array variable being different from a pointer to the first element.
What I meant to explain is that whatever the array type, when you need a pointer to its content, take the pointer to the first element. @a[Low(a)].
The low() is only necessary for fixed arrays that do not start from zero. Dynamic arrays always start at a[0];
But you can use Low() for both types.
Again, your answer didn't explain
why the pointer to dynamic array wasn't assignable to the
PByte variable in
PeterHu's original example, only how to retrieve a pointer to the first element.