Un module dynamique à deux composants

Ce programme présente la déclaration d'un module dynamique à deux composants.

Les fichiers sources sont dans le répertoire ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/libb/.

Mode compilé

Commande de compilation

upscmp Source=libb.upl

Commande d'exécution

Voir l'exemple du programme utilisant un module statique et un module dynamique

Fichier source

Source du module

Source Module "Exemple de bibliothèque dynamique" Version 4.0.0 ModuleDynamique;

Composant Dans "c:/up/exemples/libb1.upl";
Composant Dans "c:/up/exemples/libb2.upl";

Source du premier composant

Source Composant "Exemple de bibliothèque dynamique" Version 4.0.0 RattacherA "c:/up/exemples/libb.upl";

Constante
/*******/ Protege :
/*******/ Prive :
/*****/
Enumere
/*****/ Protege :
/*******/ Prive :
/*****/
Variable
/******/ Protege :
/*******/ Prive :
/*****/ Public :
/******/ Protege :
/*******/ Prive :
/*****/
Prive :
/*****/
Procedure ProB1C(A : Entier, B : Reel, C : EnuB1C)
/************************************************/
Debut
Ecran.Ecrire("Debut ProB1C");
Ecran.Ecrire(ConB1A);
Ecran.Ecrire(ConB1B);
VarB1A=A;
Ecran.Ecrire(VarB1A);
VarB1B=B;
Ecran.Ecrire(VarB1B);
VarB1I=C;
Ecran.Ecrire("Fin ProB1C");
Fin Procedure

Protege :
/*******/
Procedure ProB1B(A : Entier, B : Reel, C : EnuB1B)
/************************************************/
Debut
Ecran.Ecrire("Debut ProB1B");
Ecran.Ecrire(ConB1C);
Ecran.Ecrire(ConB1D);
VarB1C=A;
Ecran.Ecrire(VarB1C);
VarB1D=B;
Ecran.Ecrire(VarB1D);
VarB1H=C;
Ecran.Ecrire("Fin ProB1B");
Fin Procedure

Public :
/******/
Procedure ProB1A(A : Entier, B : Reel, C : EnuB1A)
/************************************************/
Debut
Ecran.Ecrire("Debut ProB1A");
Ecran.Ecrire(ConB1E);
Ecran.Ecrire(ConB1F);
VarB1E=A;
Ecran.Ecrire(VarB1E);
VarB1F=B;
Ecran.Ecrire(VarB1F);
ProB1C(A*2, B*2, EnuB1C_2);
VarB1G=C;
Ecran.Ecrire("Fin ProB1A");
Fin Procedure

Source du second composant

Source Composant "Exemple de bibliothèque dynamique" Version 4.0.0 RattacherA "c:/up/exemples/libb.upl";

Constante
/*******/ Protege :
/*******/ Prive :
/*****/
Enumere
/*****/ Protege :
/*******/ Prive :
/*****/
Variable
/******/ Protege :
/*******/ Prive :
/*****/ Public :
/******/ Protege :
/*******/ Prive :
/*****/ Prive :
/*****/
Procedure ProB2C(A : Entier, B : Reel, C : EnuB2C)
/************************************************/
Debut
Ecran.Ecrire("Debut ProB2C");
Ecran.Ecrire(ConB2A);
Ecran.Ecrire(ConB2B);
VarB2A=A;
Ecran.Ecrire(VarB2A);
VarB2B=B;
Ecran.Ecrire(VarB2B);
VarB2I=C;
Ecran.Ecrire("Fin ProB2C");
Fin Procedure

Protege :
/*******/
Procedure ProB2B(A : Entier, B : Reel, C : EnuB2B)
/************************************************/
Debut
Ecran.Ecrire("Debut ProB2B");
Ecran.Ecrire(ConB2C);
Ecran.Ecrire(ConB2D);
VarB2C=A;
Ecran.Ecrire(VarB2C);
VarB2D=B;
Ecran.Ecrire(VarB2D);
VarB2H=C;
Ecran.Ecrire("Fin ProB2B");
Fin Procedure

Public :
/******/
Procedure ProB2A(A : Entier, B : Reel, C : EnuB2A)
/************************************************/
Debut
Ecran.Ecrire("Debut ProB1A");
Ecran.Ecrire(ConB2E);
Ecran.Ecrire(ConB2F);
VarB2E=A;
Ecran.Ecrire(VarB2E);
VarB2F=B;
Ecran.Ecrire(VarB2F);
ProB2C(A*2, B*2, EnuB2C_2);
ProB2B(A*3, B*3, EnuB2B_2);
ProB1B(A*4, B*4, EnuB1B_2);
VarB2G=C;
Ecran.Ecrire("Fin ProB2A");
Fin Procedure