ChainerObjet

Instruction

Rôle :

Chaînage vers un autre objet en arrêtant l'objet en cours.

Syntaxe :

ChainerObjet [[dll.]domaine.] objet [ (paramètre 1 [, paramètre 2 .. ] ) ]

Notes :

objet est l'objet vers lequel on veut chaîner. C'est une expression alphanumérique qui peut être une variable qui sera interprétée ou directement le nom de l'objet.

L'objet peut être indiqué sous l'une de ces formes :

objet

L'objet est dans le même domaine.

domaine.objet

L'objet n'est pas dans le même domaine. On doit alors préciser ce domaine..

dll.domaine.objet

L'objet n'est pas dans la même DLL. On doit préciser DLL et domaine.

 

Attention, il ne faut pas appeler un objet de façon asynchrone (CreerObjet, CreerUnique ou ChainerObjet) depuis un objet lancé en synchrone (AppelerObjet). Bien que cela soit possible, c’est une règle d’architecture à respecter.

Exemple :

Chaine Obj1("Objet") = "O1"   
Chaine Dom1("Domaine") = "D1"         
Chaine Dll1("Librairie") = "L1"   

 

 

ChainerObjet O1  
ChainerObjet
Obj1 

Appel de l'objet O1.

ChainerObjet D1.O1                                
ChainerObjet
Dom1.Obj1                               

Appel de l'objet O1 qui se trouve dans le domaine D1..

ChainerObjet L1.D1.O1                                 
ChainerObjet
Dll1.Dom1.Obj1    

Appel de l'objet O1du domaine D1 et de la DLL L1.

 

Les paramètres sont facultatifs. S'ils sont indiqués, l'objet chaîné doit avoir une déclaration PARAMETRES définissant les variables formelles associées.<<!--[if supportFields]> Les paramètres sont passés par valeur.

 

L'objet en cours est arrêté définitivement. La fenêtre de l'objet initial est effacée.

 

L'instruction ChainerObjet est équivalente à l'instruction CreerObjet suivie de QuitterMethode. Elle est donc ASYNCHRONE.

Les instructions qui suivent l'instruction ChainerObjet ne sont pas exécutées.

 

 

L'objet appelé hérite d'une partie du contexte de l'objet lanceur.

• Les fichiers globaux utilisés sont hérités si les deux objets sont dans le même domaine.

• Les variables globales sont communes si les deux objets sont dans le même DOMAINE.

• Si l'objet appelant a rempli une table mémoire partagée, les données de cette table créées par l'appelant seront disponibles pour l'objet appelé même s'il n'y a pas d'autres utilisateurs pour cette table.

 

 

CreerObjet, AppelerObjet

Exemple :

Domaine : ESSAI  "Chaînage d' objets"
Objet SAISIE : GESTION_CLIENT
          
Declaration
                   
ECRAN : CLIECR
          
FinDeclaration

          
Methode DEBUT
                   
Commande 1,"Chaînage Gestion des représentants"
          
FinMethode

          
Methode COMMANDE 1
                   
ChainerObjet GESTION_REPRESENTANT
                   
BoiteMessage "Je passe par içi."
          
FinMethode
FinObjet
Objet SAISIE : GESTION_REPRESENTANT
          
Declaration
                   
ECRAN : REPR
          
FinDeclaration

          
Methode DEBUT
                   
BoiteMessage "Je passe par là."
          
FinMethode
FinObjet

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

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