On Wed, 31 Aug 2005, Pianoman wrote:
> Hi, I have not well understood the docs concerning tvarrecs. How can I > create procedure which will accept arbitrary number of parameters? > To demonstrate what I want: > procedure addnums(a,b,c,xxxx of any types var result:sometype); > or writetoscreen(any number of parameters of given type. something like > write or readln procedures. Something like this: Procedure AddNums(Var Result : Double; Args : Array of const); Var I : Integer; begin Result:=0; For I:=0 to High(Args) do // High(args) is the last valid index. Case Args[i].Vtype of // args[i] is of type TVarRec VtInteger : Result:=Result+Args[ArgPos].VInteger; // ... etc end; end; Call like AddNums(MyDouble,[a,b,c,d]); And you're all done. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal