Les fichiers sources sont dans le répertoire ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/liba/.
Cet exemple nécessite d'avoir compilé libcde l'exemple du module chargé dynamiquement implémentant des interfaces.
upscmp Source=liba.upl
Source Module "Exemple de bibliothèque statique" Version 4.0.0
ModuleStatique;
Composant Dans "c:/up/exemples/liba1.upl";
Composant Dans "c:/up/exemples/liba2.upl";
Source Composant "Exemple de bibliothèque statique" Version
4.0.0 RattacherA "c:/up/exemples/liba.upl";
Constante
/*******/
ConA1A=1;
ConA1B=2.9;
Protege :
/*******/
ConA1C=2;
ConA1D=3.9;
Prive :
/*****/
ConA1E=3;
ConA1F=4.9;
Enumere
/*****/
EnuA1A Dans (EnuA1A_1, EnuA1A_2, EnuA1A_3);
Protege :
/*******/
EnuA1B Dans (EnuA1B_1, EnuA1B_2, EnuA1B_3);
Prive :
/*****/
EnuA1C Dans (EnuA1C_1, EnuA1C_2, EnuA1C_3);
Variable
/******/
VarA1A:Entier;
VarA1B:Reel;
Protege :
/*******/
VarA1C : Entier;
VarA1D : Reel;
Prive :
/*****/
VarA1E : Entier;
VarA1F : Reel;
Public :
/******/
VarA1G : EnuA1A;
Protege :
/*******/
VarA1H : EnuA1B;
Prive :
/*****/
VarA1I : EnuA1C;
Prive :
/*****/
Procedure ProA1C(A : Entier, B : Reel, C : EnuA1C)
/************************************************/
Debut
Ecran.Ecrire("Debut ProA1C");
Ecran.Ecrire(ConA1A);
Ecran.Ecrire(ConA1B);
VarA1A=A;
Ecran.Ecrire(VarA1A);
VarA1B=B;
Ecran.Ecrire(VarA1B);
VarA1I=C;
Ecran.Ecrire("Fin ProA1C");
Fin Procedure
Protege :
/*******/
Procedure ProA1B(A : Entier, B : Reel, C : EnuA1B)
/************************************************/
Debut
Ecran.Ecrire("Debut ProA1B");
Ecran.Ecrire(ConA1C);
Ecran.Ecrire(ConA1D);
VarA1C=A;
Ecran.Ecrire(VarA1C);
VarA1D=B;
Ecran.Ecrire(VarA1D);
VarA1H=C;
Ecran.Ecrire("Fin ProA1B");
Fin Procedure
Public :
/******/
Procedure ProA1A(A : Entier, B : Reel, C : EnuA1A)
/************************************************/
Debut
Ecran.Ecrire("Debut ProA1A");
Ecran.Ecrire(ConA1E);
Ecran.Ecrire(ConA1F);
VarA1E=A;
Ecran.Ecrire(VarA1E);
VarA1F=B;
Ecran.Ecrire(VarA1F);
ProA1C(A*2,B*2,EnuA1C_2);
VarA1G=C;
Ecran.Ecrire("Fin ProA1A");
Fin Procedure
Source Composant "Exemple de bibliothèque statique" Version
4.0.0 RattacherA "c:/up/exemples/liba.upl";
Constante
/*******/
ConA2A=1;
ConA2B=2.9;
Protege :
/*******/
ConA2C=2;
ConA2D=3.9;
Prive :
/*****/
ConA2E=3;
ConA2F=4.9;
Enumere
/*****/
EnuA2A Dans (EnuA2A_1, EnuA2A_2, EnuA2A_3);
Protege :
/*******/
EnuA2B Dans (EnuA2B_1, EnuA2B_2, EnuA2B_3);
Prive :
/*****/
EnuA2C Dans (EnuA2C_1, EnuA2C_2, EnuA2C_3);
Variable
/******/
VarA2A : Entier;
VarA2B : Reel;
Protege :
/*******/
VarA2C : Entier;
VarA2D : Reel;
Prive :
/*****/
VarA2E : Entier;
VarA2F : Reel;
Public :
/******/
VarA2G : EnuA2A;
Protege :
/*******/
VarA2H : EnuA2B;
Prive :
/*****/
VarA2I : EnuA2C;
Prive :
/*****/
Procedure ProA2C(A : Entier, B : Reel, C : EnuA2C)
/************************************************/
Debut
Ecran.Ecrire("Debut ProA2C");
Ecran.Ecrire(ConA2A);
Ecran.Ecrire(ConA2B);
VarA2A=A;
Ecran.Ecrire(VarA2A);
VarA2B=B;
Ecran.Ecrire(VarA2B);
VarA2I=C;
Ecran.Ecrire("Fin ProA2C");
Fin Procedure
Protege :
/*******/
Procedure ProA2B(A : Entier, B : Reel, C : EnuA2B)
/************************************************/
Debut
Ecran.Ecrire("Debut ProA2B");
Ecran.Ecrire(ConA2C);
Ecran.Ecrire(ConA2D);
VarA2C=A;
Ecran.Ecrire(VarA2C);
VarA2D=B;
Ecran.Ecrire(VarA2D);
VarA2H=C;
Ecran.Ecrire("Fin ProA2B");
Fin Procedure
Public :
/******/
Procedure ProA2A(A : Entier, B : Reel, C : EnuA2A)
/***********************************************/
Debut
Ecran.Ecrire("Debut ProA2A");
Ecran.Ecrire(ConA2E);
Ecran.Ecrire(ConA2F);
VarA2E=A;
Ecran.Ecrire(VarA2E);
VarA2F=B;
Ecran.Ecrire(VarA2F);
ProA2C(A*2,B*2,EnuA2C_2);
ProA2B(A*3,B*3,EnuA2B_2);
ProA1B(A*4,B*4,EnuA1B_2);
VarA2G=C;
Ecran.Ecrire("Fin ProA2A");
Fin Procedure