# MESSAGE

Route a method call to another Method

Syntax

  MESSAGE <MessageName> METHOD <MethodName>( [<params,...>] )
  MESSAGE <MessageName>() METHOD <MethodName>( [<params,...>] )

Arguments

  <MessageName> The pseudo-method name to define
  <MethodName> The method to create and call when <MessageName> is invoked.
  <params,...> Optional parameter list for the method

Description

  The MESSAGE command is a seldom-used feature that lets you re-route a call to a method with a different name. This can be necessary if a method name conflicts with a public function that needs to be called from within the class methods.
  For example, your app may have a public function called BeginPaint() that is used in painting windows. It would also be natural to have a Window class method called :BeginPaint() that the application can call. But within the class method you would not be able to call the public function because internally methods are based on static functions (which hide public functions of the same name).
  The MESSAGE command lets you create the true method with a different name (::xBeginPaint()), yet still allow the ::BeginPaint() syntax to call ::xBeginPaint(). This is then free to call the public function BeginPaint().

Examples

          CLASS TWindow
             DATA   hWnd, nOldProc
             METHOD New( ) CONSTRUCTOR
             MESSAGE BeginPaint METHOD xBeginPaint()
          ENDCLASS

Status

  Ready

Compliance

  MESSAGE is a Harbour extension.

Platforms

  All

See Also

- METHOD
- DATA
- CLASS
- Object Oriented Programming