[fpc-pascal] same routine with different parameters?

Mark Morgan Lloyd markMLl.fpc-pascal at telemetry.co.uk
Tue Oct 29 19:35:09 CET 2013

waldo kitty wrote:
> question: in simple language, how can i have a routine with differing 
> parameters like some routines in FPC and Lazarus do? i've never 
> attempted this before and it is completely alien to my experience but i 
> do use the functionality quite a lot with existing routines...
> description: i have a class object with an internal routine that i want 
> to be able to pass no or different parameters to.
> example:  procedure MyObject.MyRoutine;
>           procedure MyObject.MyRoutine(VarA : SomeType);
>           procedure MyObject.MyRoutine(VarA : string; VarB: integer);
> at one point, the first instance would be used... at another point one 
> of the other instances would be used with the only difference being the 
> parameters that are passed or not... i know that i would have individual 
> instances with the necessary header and code for each... i just don't 
> know if there is anything else special that needs to be done or if it 
> can be done with an internal class object routine..

Just give it a whirl as you've shown, I think you've got it right. 
Another useful variant is giving *the* *last* parameter an optional 
value, which will allow you to omit the parameter:

procedure MyObject.MyRoutine(const VarA : string; VarB: integer= -1);

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the fpc-pascal mailing list