Erstmal fehlte da ein VAR, denn das Array soll ja verändert werden.
function allocatenextfreefield(var a: Tintarray): Integer; overload;
Braucht man nicht
unbedingt, da Arrays genau wie Objekte Referenztypen sind. Copy-On-Write wie bei Strings gibt es bei Arrays auch nicht. Somit wird immer das Original-Array modifiziert. Zumindest bin ich mir da zu 95% sicher.
Besser verständlich ist es aber mit
var
, da gebe ich dir recht.
@DelTurbo: Zeig mal deinen kompletten Code, also die Typendeklaration und deine Funktion. Eigentlich muss das funktionieren.