Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
11 févr. 2008 à 13:05
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
18 févr. 2008 à 18:04
Bonjour ,
Je travail actuellement sur des classes à ajoutées à un 'gros' projet. A fin d'être carré avec ma charte de codage (et non le projet que je modifie n'en avais pas ) j'ai modifier le nom de certaine constante (déclarées privées dans ma classe, ce qui me permet en prime de crée plus simplement de petit projet test). Mon problème est : je veut que si jamais la valeur de ces constantes change (celle du gros projet) ma classe reste à jours sans pour autant avoir de modification à faire (je ne sait pas si je suis vraiment claire avec du code ce sera peut être plus claire).
Un 'truc' du genre :
8<----------------------------------------------------------
#If "la constante NomConstante est déclarée" Then
Private Const C_NomConstante = NomConstante
#Else
Private Const C_NomConstante = ValeurParDéfaut
#End if
---------------------------------------------------------->8
Je cherche la sintaxe de "la constante NomConstante est déclarée" et je ne trouve pas .
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 févr. 2008 à 14:19
J'ai une solution TEMPORAIRE (donc je ne valide pas ma question comme résolut) :
Mes constantes sont toutes de type numérique et ne sont jamais égale à 0 (dans le cas contraire ça ne fonctionnera pas, donc si vous avez une autre solution ça m'arrangerais bien).
#If CBool(NomConstante) Then
C_NomConstante = NomConstante
#Else
C_NomConstante = ValeurParDéfaut
#End if
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 févr. 2008 à 15:35
Oui mais il semble (au vue de mes tests) que si la constante n'est pas déclarer CBool retourne false (sauf si elle est égale à 0)
Je commence à pensé que le mieux ce serais ta (NHenry) premières idée qui serais la bonne (je m'aperçoit que j'ai le même problème avec la déclaration de certaine structure)
Mais l'équivalent de "#ifdefine" en C/C++ n'existe pas en VB6 (il me semble que ça fonctionne avec des constantes des types voir des structures ou pour le C++ des classes, à moins que je ne raconte de grosse connerie, ce qui est possible ça fait LONGTEMPS que je n'es pas fait de C/C++) ? (Et en VB.Net ???)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 févr. 2008 à 15:42
Pardon un oubli :
Ce que je cherche c'est un truc du genre de (en C/C++)
#ifdefine NomConstante
#define C_NomConstante NomConstante
#else
#define C_NomConstante ValeurParDefaut
#endif
Il me semble même que ça fonctionne si NomConstante n'est pas une constante mais un type une structure ou encore une classe (mais à vrais dire je n'en suis pas certain du tout ).
Amicalement
Pensez "Réponse acceptée"
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 11 févr. 2008 à 15:43
Bonjour
#ifdefine du C/C++ permet de savoir si une définition (déclarée par #define) a été déclarée ou non.
d'ailleur, il me semble que c'est :
#ifdef
et
#ifndef
En VB6, je doute que ça existe (mais je n'ai jamais testé).
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 févr. 2008 à 15:54
En tout cas si l'équivalent de "#ifdef" (effectivement ça dois être ça la syntaxe) existe en VB la syntaxes n'est pas la même...
Quand c'est facile c'est pas drôle...
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 11 févr. 2008 à 16:00
J'attend qq jours et si personne ne sait répondre à mon problème j'utiliserais (et accepterais) la solution que tu (NHenry) à posté en premier (Compilation conditionnelle) j'ai beau faire de recherche dans tout les sens je ne trouve rien qui me convienne mieux que ça (vue que avec cette solution je sait si je dois déclarer, entre autre, mes structures ou non)
Merci bien HNenry
Amicalement
Pensez "Réponse acceptée"