Un module chargé dynamiquement implémentant des interfaces

Ce programme présente la déclaration d'un module dynamique implémentant les interfaces générique d'un autre module.

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

Mode compilé

Commande de compilation

upscmp Source=libc.upl

Commande d'exécution

Voir l'exemple du programme stocké dans un module dynamique et non dans un exécutable

Mode interprété

Voir l'exemple du programme stocké dans un module dynamique et non dans un exécutable

Fichier source

Source du module

Source Module "Exemple d'interface dans une bibliothèque dynamique" Version 4.0.0 ModuleDynamique;

Composant Dans "c:/up/exemples/libc1.upl";

Source du composant

Source Composant "Exemple d'interface dans une bibliothèque dynamique" Version 4.0.0 RattacherA "c:/up/exemples/libc.upl";

ImporterModule
/************/
Type TD Implemente ExeD.IA
/************************/
Public :
/******/ Fin Type

Type TE Implemente ExeD.IB
/************************/
Public :
/******/ Fin Type

Public :
/******/
Procedure TD.Afficher()
/*********************/
Debut
Ecran.Ecrire("TD : A1=");
Ecran.Ecrire(A1);
Ecran.Ecrire("TD : B1=");
Ecran.Ecrire(B1);
Ecran.Ecrire("TD : C1=");
Ecran.Ecrire(C1);
Ecran.Ecrire("TD : D1=");
Ecran.Ecrire(D1);
Ecran.Ecrire("\n");
Fin Procedure

Fonction TD.F1(P : Booleen) Retourner Booleen
/*******************************************/
Debut
Ecran.Ecrire("TD : F1");
Retourner P;
Fin Fonction

Fonction TD.F2(P : Entier) Retourner Entier
/*****************************************/
Debut
Ecran.Ecrire("TD : F2");
Retourner P;
Fin Fonction

Fonction TD.F3(P : Reel) Retourner Reel
/*************************************/
Debut
Ecran.Ecrire("TD : F3");
Retourner P;
Fin Fonction

Fonction TD.F4(P : Caractere) Retourner Caractere
/***********************************************/
Debut
Ecran.Ecrire("TD : F4");
Retourner P;
Fin Fonction

Constructeur TD()
/***************/
Debut
A1=Vrai;
B1=10;
C1=2.71;
D1="coucou";
Fin Constructeur

Public :
Procedure TE.Afficher()
/*********************/
Debut
Ecran.Ecrire("TE : A1=");
Ecran.Ecrire(A1);
Ecran.Ecrire("TE : B1=");
Ecran.Ecrire(B1);
Ecran.Ecrire("TE : C1=");
Ecran.Ecrire(C1);
Ecran.Ecrire("TE : D1=");
Ecran.Ecrire(D1);
Ecran.Ecrire("TE : D1=");
Ecran.Ecrire(Caractere(E1, "%jj-%mm-%A"));
Ecran.Ecrire("\n");
Fin Procedure

Fonction TE.F1(P : Booleen) Retourner Booleen
/*******************************************/
Debut
Ecran.Ecrire("TE : F1");
Retourner P;
Fin Fonction

Fonction TE.F2(P : Entier) Retourner Entier
/*****************************************/
Debut
Ecran.Ecrire("TE : F2");
Retourner P;
Fin Fonction

Fonction TE.F3(P : Reel) Retourner Reel
/*************************************/
Debut
Ecran.Ecrire("TE : F3");
Retourner P;
Fin Fonction

Fonction TE.F4(P : Caractere) Retourner Caractere
/***********************************************/
Debut
Ecran.Ecrire("TE : F4");
Retourner P;
Fin Fonction

Procedure TE.P1(P : Booleen)
/**************************/
Debut
Ecran.Ecrire("TE : P1");
Ecran.Ecrire(P);
Fin Procedure

Procedure TE.P2(P : Entier)
/*************************/
Debut
Ecran.Ecrire("TE : P2");
Ecran.Ecrire(P);
Fin Procedure

Procedure TE.P3(P : Reel)
/***********************/
Debut
Ecran.Ecrire("TE : P3");
Ecran.Ecrire(P);
Fin Procedure

Procedure TE.P4(P : Caractere)
/****************************/
Debut
Ecran.Ecrire("TE : P4");
Ecran.Ecrire(P);
Fin Procedure

Constructeur TE()
/***************/
Debut
A1=Vrai;
B1=40;
C1=1.414;
D1="guten tag";
E1=Date(10, 10, 1968);
Fin Constructeur