Moin Piberg,
name : string[16] ; // oder : array [0..15] of char ???
ich plädiere hier für das Oder
Ein ShortString enthält auf Index 0 noch die Länge, er würde also die Struktur stören.
Ob Du nun packed nehmen solltest, oder sogar eine spezielle $ALIGN-Einstellung benötigst, hängt davon ab, mit welchem Alignment die Strukur compiliert werden soll.
Um die Daten zu übertragen könntest Du einfach einen varianten Record nehmen, der alle möglichen Strukturen enthält.
U.A. auch eines vom Typ TBytes, dass Du dann der Funktion zum Füllen übergeben kannst.