Ce programme présente la déclaration dans un module d'un type comportant des méthodes de rappel et la surcharge de ses méthodes dans un autre module.
Les fichiers sources sont dans le répertoire ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/rappel/.
upscmp Source=modrap.upl
upscmp Source=rappel.upl
rappel
upssng Source=rappel.upl
Source Module "Exemple d'emploi des rappels" Version 4.0.0 ModuleDynamique;
Composant Dans "modrap1.upl";
Source Composant "Exemple d'emploi des rappels" Version 4.0.0 RattacherA "modrap.upl";
Type TypeA Defaut
/***************/
A : Entier;
Constructeur();
Procedure Ecrire(P:Entier);
Rappel Ecrire(Appelant : Caractere, P : Entier);
Procedure Ecrire(P:Caractere);
Rappel Ecrire(Appelant : Caractere, P : Caractere);
Procedure Ecrire(P:Date);
Rappel Ecrire(Appelant : Caractere, P : Date);
Fin Type
Procedure TypeA.Ecrire(P:Entier)
/******************************/
Debut
Ecran.Ecrire("TypeA.P("+Caractere(P)+");");
Fin Procedure
Rappel TypeA.Ecrire(Appelant : Caractere, P:Entier)
/*************************************************/
Debut
Ecran.Ecrire("TypeA.P("+Appelant+","+Caractere(P)+");");
Fin Rappel
Procedure TypeA.Ecrire(P : Caractere)
/***********************************/
Debut
Ecran.Ecrire("TypeA.P("+P+");");
Fin Procedure
Rappel TypeA.Ecrire(Appelant : Caractere, P:Caractere)
/****************************************************/
Debut
Ecran.Ecrire("TypeA.P("+Appelant+","+P+");");
Fin Rappel
Procedure TypeA.Ecrire(P:Date)
/****************************/
Debut
Ecran.Ecrire("TypeA.P("+Caractere(P)+");");
Fin Procedure
Rappel TypeA.Ecrire(Appelant : Caractere, P:Date)
/***********************************************/
Debut
Ecran.Ecrire("TypeA.P("+Appelant+","+Caractere(P)+");");
Fin Rappel
Source Composant "Exemple d'emploi des rappels" Version 4.0.0;
ImporterModule
/************/
ModRap(<modrap.upi>, ImporterDefinitions);
Variable
/******/
Prive :
VA : TypeA;
Rappel TypeA.Ecrire(Appelant : Caractere, P:Entier)
/*************************************************/
Debut
Si Appelant Comme "B*" Alors
Ecran.Ecrire("Rappel.TypeA.P("+Appelant+","+Caractere(P)+");");
Retourner RappelSucces;
Fin Si
Retourner RappelIgnore;
Fin Rappel
Rappel TypeA.Ecrire(Appelant : Caractere, P:Caractere)
/****************************************************/
Debut
Si Appelant Comme "B*" Alors
Ecran.Ecrire("Rappel.TypeA.P("+Appelant+","+P+");");
Retourner RappelSucces;
Fin Si
Retourner RappelIgnore;
Fin Rappel
Principal
/*******/
Debut
?=VA.Ecrire("Bonjour", 10);
?=VA.Ecrire("Bonjour", "Bonjour");
?=VA.Ecrire("Guten tag", 10);
?=VA.Ecrire("Guten tag", "Guten tag");
?=VA.Ecrire("Hello", DateSysteme());
Fin Principal