EnvoyerMessage

Instruction

Rôle :

Lancement d'une autre méthode en asynchrone sans interrompre l'action en cours.

Syntaxe :

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

Notes :

message est la méthode que l'on veut lancer. 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 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.message

La méthode est dans 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. instance vaudra 0 pour la première, 1 pour la seconde et ainsi de suite.

 

- 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.

 

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éé.

Exemple :

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

EnvoyerMessage M1        
EnvoyerMessage Meth1  

Lancement de la méthode M1.

EnvoyerMessage O1.M1 
EnvoyerMessage Obj1.Meth1     

Lancement de la méthode M1 qui se trouve dans l'objet O1..

EnvoyerMessage D1.O1.M1       
EnvoyerMessage Dom1.Obj1.Meth1

Lancement de la méthode M1 de l'objet O1 du domaine D1.

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

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

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

Lancement de la méthode M1 de la première instance de l'objet O1 du domaine D1 qui se trouve dans la  DLL L1.

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

Lancement de 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 doit débuter par une liste de déclarations PARAMETRES. . Les paramètres sont passés par valeur. La méthode en cours n'est pas arrêtée. La méthode lancée le sera en parallèle lorsque la main sera rendue au système (ce qui ne se produira pas avant la fin du déroulement de la méthode en cours).

Le lancement d'une méthode correspond à l'envoi d'un message d'un objet vers un autre. Il n'y a pas d'obligation à ce que l'objet destinataire soit effectivement créé puisqu'il n'y a pas d'accusé de réception du message.

 

 

AppliquerMethode, ChainerMessage, NettoyerMessage, Instance, InstanceCreee

Exemple :

DOMAINE : ESSAI "Mise à jour d'un graphique"


Objet TRAITEMENT : "GRAPH"

          Declaration
                   ECRAN : "REPGR"  //Ecran contenant le graphique
          FinDeclaration

          Methode "MAJ"
                   Afficher   //Méthode de réaffichage
          FinMethode

FinObjet


Objet SAISIE : "GR"

          Declaration
                   ECRAN : "REPR"
          FinDeclaration

          //En cas de validation d'une modification ou création, réaffichage du graphique
          Methode "VALIDATION"
                   EnvoyerMessage GRAPH. MAJ
          FinMethode


FinObjet