Allocation dynamique d'objets avec compile() Windev ( sans indirection )
Après quelques recherches, voici une procédure qui permet d'allouer des objets de la classe de votre choix de manière dynamique -c'est à dire à l'exécution-, étant donné que ces syntaxes ne fonctionnent pas :
sClasse est une chaine = "claMaClasse"
oObjet est un objet dynamique = allouer un sClasse
ou
oObjet est un objet dynamique = allouer un {sClasse,indvariable}
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
PROCEDURE PRIVÉE Get_Obj(_sClasse est une chaîne)
LOCAL
sChaine est une chaîne
sResultatCompile est une chaîne
sChaine += "oObjet est un objet dynamique "+RC
sChaine += "oObjet = allouer un "+_sClasse+RC
sChaine += "Renvoyer oObjet"
sResultatCompile = Compile("Get_Obj_OK",sChaine)
SELON sResultatCompile
CAS ""
CAS "ERR" :
ExceptionDéclenche(1,"Compilation impossible. "+RC+ErreurInfo())
RENVOYER Faux
AUTRE CAS
ExceptionDéclenche(1,"Compilation impossible. "+RC+sResultatCompile)
RENVOYER Faux
FIN
RENVOYER ExécuteTraitement("Get_Obj_OK",trtProcédure) |
Appel de la procédure :
Code:
1 2
|
oObjet est un objet dynamique = Get_Obj("ClaMaClasse") |
Et voilà !
:ccool: