> It is only a personal preference, not a serious problem. > > I would find code in the form of > ArrayLen := IncLength(ArrayName, 1); > > to be much more readable then > > SetLength(ArrayName, Length(ArrayName)+1); > ArrayLen:= High(ArrayName); > > I was just hoping somebody may know how its done.
Without support for generic function, currently you have to use generic class method: type generic TDynArrayUtil<T> = class public class function SetLength(var a: T; const n: Integer): Integer; end; class function TDynArrayUtil.SetLength(var a: T; const n: Integer): Integer; begin System.SetLength(a,Length(a) + n); Result := High(a); end; and use it like: var a: TIntegerDynArray; ... maxn := specialize TDynArrayUtil<TIntegerDynArray>.SetLength(a,1); note that you have to instantiate with the correct type. -- View this message in context: http://free-pascal-general.1045716.n5.nabble.com/SetLength-procedure-tp5719807p5719810.html Sent from the Free Pascal - General mailing list archive at Nabble.com. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal