Zitat:
groesse := PInteger(@buffer[0])^;
buffer[0] - Erstes Element des Array
@buffer[0] - Adresse dieses ersten Elementes
PInteger(@buffer[0]) - Es handelt sich um einen Zeiger auf Integer
PInteger(@buffer[0])^ - Wir sind nicht an dem Zeiger interessiert, sondern an den dahinterliegenden Daten (Dereferenzierung)
Ich hoffe, das bringt etwas mehr Klarheit.