Name

Overload Directive

Syntax

Subroutine declaration; overload; other directives...

Description

The overload directive tells Delphi that you will declare another subroutine with the same name but with different parameters.

Tips and Tricks

  • If you use the overload directive in a method declaration, it must appear before the virtual, dynamic, or abstract directives.

  • You can declare any function, procedure, or method with the overload directive.

  • You can overload a method in a derived class even if the method with the same name is in a base class and does not use the overload directive.

  • An alternative to using overloaded methods is to use default parameters. For parameters with simple types, default parameters usually result in less code to write and maintain. For complex parameters, such as objects, you might find it easier to write overloaded subroutines that call each other.

  • The compiler uses the type and number of the actual arguments to determine which overloaded routine to call. To distinguish between different integer types, it uses the narrowest type possible. If the compiler cannot decide which overloaded routine to call, it issues an error.

Example

// If the Time parameter is zero, record the current date and time
// as a time stamp.
// Write a message to a debug log file.
procedure Log(const Message: string; Time: TDateTime = 0); overload;
// Write a formatted message to a debug log file.
procedure Log(const Fmt: string; const Args: array of const;
 Time: TDateTime = 0); overload; ...

Get Delphi in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.