Bonjour,
'CompileIF Defined(Nom,Type)' manque de détails.
Ce serait bien de pouvoir pousser l'analyse jusqu'au type de variable que l'on souhaite autoriser ou non. (un paramètre facultatif)
En plus de #PB_Constant et #PB_Variable, avoir un #PB_Numérique et un #PB_Chaine même en Anglais serait bienvenue pour le futur.
Merci.
A +
'CompileIf Defined(Nom,Type)' plus poussé
Une autre demande, lorsque l'on veut compiler plusieurs constantes ou variables ou autre, il faut mettre un compilerif avec un defined pour chaque élément, on pourrait avoir une seule commande qui prend en compte chaque élément d'un bloc d'énumération et complile chaque élément s'il n'est pas défini par exemple (je dit bien que chaque élément est traité individuellement)
à remplacer par quelque chose comme ça
Code : Tout sélectionner
CompilerIf Defined(Constante1, #PB_Constant) = #False
#Constante1 = 10
CompilerEndIf
CompilerIf Defined(Constante2, #PB_Constant) = #False
#Constante2 = 20
CompilerEndIf
CompilerIf Defined(Constante3, #PB_Constant) = #False
#Constante3 = 30
CompilerEndIf
CompilerIf Defined(Constante4, #PB_Constant) = #False
#Constante4 = 40
CompilerEndIf
CompilerIf Defined(Constante5, #PB_Constant) = #False
#Constante5 = 50
CompilerEndIf
CompilerIf Defined(Constante6, #PB_Constant) = #False
#Constante6 = 60
CompilerEndIf
à remplacer par quelque chose comme ça
Code : Tout sélectionner
CompilerIf Defined(EnumerationBlock, #PB_Constant) = #False
#Constante1 = 10
#Constante2 = 20
#Constante3 = 30
#Constante4 = 40
#Constante5 = 50
#Constante6 = 60
CompilerEndIf
purebasic autorise déjà définir plus fois les constantes.
sinon avec les macros on peut faire des choses intéressantes.
mais pour ta demande, lna, il n'y a pas de solution autre que Fred...
ex :
sinon avec les macros on peut faire des choses intéressantes.
mais pour ta demande, lna, il n'y a pas de solution autre que Fred...
ex :
Code : Tout sélectionner
Macro DefineConstant(x, y)
CompilerIf Defined(x, #PB_Constant) = #False
#x = y
CompilerEndIf
EndMacro
DefineConstant(Constante1, 10)
DefineConstant(Constante1, 10)
DefineConstant(Constante1, 10)
DefineConstant(Constante1, 10)
DefineConstant(Constante2, 20)
DefineConstant(Constante3, 30)
DefineConstant(Constante4, 40)
DefineConstant(Constante5, 50)
DefineConstant(Constante6, 60)
Enumeration 1
#PB_Gadget_FrontColor
#PB_Gadget_BackColor
#PB_Gadget_LineColor
#PB_Gadget_TitleFrontColor
#PB_Gadget_TitleBackColor
#PB_Gadget_GrayTextColor
EndEnumeration
Enumeration 1
#PB_Gadget_FrontColor
#PB_Gadget_BackColor
#PB_Gadget_LineColor
#PB_Gadget_TitleFrontColor
#PB_Gadget_TitleBackColor
#PB_Gadget_GrayTextColor
EndEnumeration
Debug #PB_Gadget_LineColor
Debug #Constante4