ChainerMessage

Instruction

Rôle :

Chaînage vers une autre méthode en interrompant la méthode en cours.

Syntaxe :

ChainerMessage [[[dll.] domaine.]objet.][[ instance]] message[[priorité]] [ ( paramètre1 [, paramètre2, ...] ) ]

Notes :

message est la méthode vers laquelle on veut chaîner. C'est une expression alphanumérique qui peut être une variable, ou directement le nom de la méthode.

Le message peut être indiqué sous l'une de ces formes :

message

La méthode correspondante est dans le même objet.

objet.message

La méthode est dans un objet du même domaine.

domaine.objet.message

La méthode est dans un objet d'un autre domaine. On doit alors préciser ce domaine.

dll.domaine.objet[2].message

La méthode est dans l'instance 2 d'un objet d'une autre DLL. On doit préciser DLL, domaine et objet.

 

objet peut être suivi d'une indication [instance] pour spécifier l'instance de l'objet auquel on fait référence si on en a créé plusieurs. numéro vaudra 0 pour la première, 1 pour la seconde et ainsi de suite.

 

Voir également la variable système Instance qui rend le numéro d'instance de l'objet courant ainsi que la variable système InstanceCreee qui rend le numéro d'instance du dernier objet créé.

 

message peut être suivi d'une indication [priorité] pour indiquer la priorité de l'envoi du message. Les priorités vont de -32000 (moins prioritaire) à +32000 (plus prioritaire). Valeur par défaut :0.

 

Exemple :

Chaine Meth1("Méthode") = "M1"         
Chaine Obj1("Objet") = "O1"  
Chaine Dom1("Domaine") = "D1"        
Chaine Dll1("Librairie") = "L1"  

 

 

ChainerMessage M1         
ChainerMessage Meth1   

Chaînage vers la méthode M1.

ChainerMessage O1.M1  
ChainerMessage Obj1.Meth1      

Chaînage vers la méthode M1 qui se trouve dans l'objet O1..

ChainerMessage D1.O1.M1
ChainerMessage Dom1.Obj1.Meth1

Chaînage vers la méthode M1 de l'objet O1 du domaine D1.

ChainerMessage.L1.D1.O1.M1
ChainerMessage Dll1.Dom1.Obj1.Meth1

Chaînage vers la méthode M1 de l'objet O1 du domaine D1 qui se trouve dans la DLL L1.

ChainerMessage.L1.D1.O1[1].M1
ChainerMessage Dll1.Dom1.Obj1[1].Meth1

Chaînage vers la méthode M1de la première instance de l'objet O1 du domaine D1 qui se trouve dans la DLL L1.

ChainerMessage.L1.D1.O1[1].M1[10]
ChainerMessage Dll1.Dom1.Obj1[1].Meth1[10]

Chaînage vers la méthode M1 de la première instance de l'objet O1 du domaine D1 qui se trouve dans la  DLL L1, avec une priorité de 10.

 

Les paramètres sont facultatifs. S'ils sont indiqués, la méthode chaînée doit définir les variables formelles associées avec des déclarations PARAMETRES.

Les paramètres sont passés par valeur.

 

La méthode en cours est arrêtée définitivement.

L'instruction ChainerMessage est équivalente à l'instruction EnvoyerMessage suivie de QuitterMethode. Elle est donc ASYNCHRONE.

Chaîner sur une méthode ne peut se faire que si l'objet contenant cette méthode a été lancée au préalable.

 

 

AppliquerMethode, EnvoyerMessage, Instance, InstanceCreee

Exemple :

Domaine : ESSAI "Chaînage d'une méthode"
Objet SAISIE : GC2
          Declaration
                   ECRAN : RP
          FinDeclaration

          Methode CP
                   Si Lg(CP)<>5 Alors
                     BoiteMessage "Code postal sur 5 caractères"
                     Saisir CP
                   FinSi
                   BoiteMessage "Je passe par là."
          FinMethode

          MethodeVALIDATION
                   ChainerMessage CP
                   BoiteMessage "Je passe par içi."
          FinMethode
FinObjet

Après l'appel à la méthode VALIDATION :

Le message "Je passe par ici" n'apparaîtra pas.