Jupp, "dynamische", bzw. noch nicht definierte Typen mit den Generics,
oder eben als überladene Methoden,
aber sonst wird das eher eine Bastelstunde.
function AllocateNextFreeField(const TheArray): Integer;
und dann intern über die
RTTI rummurksen.
Dann wäre das über die Generics einfacher, da dieses sich dann um die
RTTI kümmert.
function TMyClass.Foo<T>(const A: TArray<T>): Integer;
oder
function TMyClass<T>.Foo(const A: TArray<T>): Integer;