Offiziell würde man für sowas wohl eine Parameter-Klasse erstellen
oder gleich die Funktion in eine eigene Klasse verfrachten und dann die Parameter extra behandeln (also Funktion ohne direkte Parameter).
Delphi-Quellcode:
var params: TParams;
result := foo(params.clear.paramA(1).paramF(120));
// oder
result := foo(TParams.Create.paramA(1).paramF(120));
Ansonsten vergiß nicht, daß du eventuell die ungenutzen Parameter auch so initialisieren mußt, so daß sie als ungenutzt erkennbar sind oder daß sie wenigstens mit einen Standardwert belegt sind.
In Clear oder Create würden dann erstmal alle Parameter initialisiert.
(Bei Strings wäre das ja kein Problem, da sie automatisch von Delphi mit '' initialisiert werden,
aber deine Beispielinteger hätten so, mit großer Wahrscheinlichkeit, undefinierte Zustände.