CreerObjet

Instruction

Rôle :

Création d'un autre objet en parallèle et en asynchrone sans interrompre l'action en cours.

Syntaxe :

CreerObjet [[ dll.] domaine.] objet [ (paramètre1 [, paramètre2, ... ] ) ]

Notes :

objet est l'objet que l'on veut créer. 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 la même source.

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.

 

Exemple :

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

 

 

CreerObjet O1      
CreerObjet
Obj1  

Création de l'objet O1.

CreerObjet D1.O1   
CreerObjet
Dom1.Obj1      

Création de l'objet O1 dans le domaine D1.

CreerObjet L1.D1.O1          
CreerObjet
Dll1.Dom1.Obj1                                

Création de l'objet O1 dans le domaine D1 et la DLL L1.

 

Les paramètres sont facultatifs. S'ils sont indiqués, un objet créé doit avoir une déclaration PARAMETRES définissant les variables formelles associées. Les paramètres sont passés par valeur.

L'objet en cours n'est pas arrêté. L'objet créé fonctionnera en parallèle dès que 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).

 

La fenêtre de l'objet initial n'est pas supprimée. Si l'objet créé possède un écran, cet écran viendra en premier plan au moment de la création de l'objet, ce qui n'empêchera pas l'utilisateur de revenir sur l'écran initial en « cliquant » dessus pour le réactiver. Cette caractéristique permet à l'utilisateur de pouvoir disposer de plusieurs écrans fonctionnant en parallèle et de basculer suivant son libre choix d'un écran à l'autre, à condition bien entendu que le concepteur du logiciel l'est prévu.

L'objet créé 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.

 

 

ActiverObjet, AppelerObjet, CreerUnique

Exemple :

Domaine : ESSAI
Objet SAISIE : "Création d'objets"
          
Declaration
                   
ECRAN : ECR1
          
FinDeclaration

          
Methode DEBUT
                   
Commande 1,"Lancement gestion représentants"
          
FinMethode

          
Methode COMMANDE 1
                   
CreerObjet GR
          
FinMethode
FinObjet
Objet SAISIE : GR
          
Declaration
                   
ECRAN : REPR
          
FinDeclaration
FinObjet

 

 

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, des comportements inattendus peuvent survenir.

 

L'instruction CreerObjet va réellement créer l'objet et exécuter (uniquement) sa méthode INIT. Ainsi le code situé juste après l'instruction CreerObjet va s'exécuter avant les méthodes de l'objet appelé.

 

La méthode INIT est critique : il faut éviter d'appeler des objets dans cette méthode car cela peut casser le schéma de gestion des objets (création/sortie).

 

Pour la même raison, ne pas tenter de récupérer des paramètres en Reference via un appel par CreerObjet.