Manuel §1.6.153    

Fonction SetMessageFonction

La fonction SetMessageFonction permet de changer le comportement par défaut de la fonction Message.

SetMessageFunction( MessageFunction)

SetMessageFunction( null)

La fonction attend en paramètre un pointeur de fonction message ou rien . Une fonction message attend un seul paramètre une chaîne de caractère ou équivalent.

Dans le cas d'un pointeur de fonction message, après cet appel l'ensemble des messages sont envoyés vers cette fonction message, il ne sont plus envoyés sur le journal du serveur ou la trace d'un synoptique ; cependant dans la fonction message on a le droit d'appeler la fonction message et là on conserve le traitement par défaut de la fonction message (pas de réentrance du déroutement!).

Si on appelle SetMessageFunction avec un paramètre qui n'est pas un pointeur de fonction, le comportement par défaut de la fonction Message est rétabli.

L'exemple suivant montre un cas d'utilisation intéressant où on enregistre tous les messages d'un synoptique dans une listbox pour montrer son contenu et sa datation en direct à l ’utilisateur.

...

lbLog Listbox,"" ,,,,,SB_VERTICAL;

...

Function MyMessageFunction( txt)
begin
Message( txt); // traitement normal
lbLog.AddString( Format( "%.18t", now()):"  ":txt);
end
...
On do begin
SetMessageFunction( myMessageFunction);
...