Short(pXY)
kann nicht gehn, denn Short = 2 Byte und Pointer sind 4 oder 8 Byte.
Bei so einem Cast muß der Compiler meckern.
Was ist in dem pXY gespeichert?
Wenn das keine Zeiger auf ein "dynamisches" Array ist, dann kannst/darfst du niemals das in ein dyn. Array casten.
In ein statisches Array ginge es (einen Zeiger auf ein statisches Array), denn da gibt es keine zusätzlichen Verwaltungsstrukturen für die Speicherverwaltung.
meta := TArray<short>(pXY);
,
ABER nur wenn pXY ein Zeiger auf den ersten Wert eines anderen dynamisches Arrays ist