j'ai mis à peu près le code suivant dans un programme (mais en très simplifié:
Code : Tout sélectionner
Structure Test
a.l
b.l
c.l
EndStructure
Macro Addition_(obj_test)
obj_test\c = obj_test\a + obj_test\b
EndMacro
Procedure Addition(*t.Test, val1, val2)
If *t
With *t
\a = val1
\b = val2
Addition_(*t)
EndWith
EndIf
EndProcedure
Donc en fait, il rajoute ce qui est dans le With/EndWith à la variable de ma macro.*t*t\c = *t*t\a + *t*t\b
Une solution pourrait être ainsi :
Code : Tout sélectionner
Structure Test
a.l
b.l
c.l
EndStructure
Macro Addition_()
\c = \a + \b
EndMacro
Procedure Addition(*t.Test, val1, val2)
If *t
With *t
\a = val1
\b = val2
Addition_()
EndWith
EndIf
EndProcedure
t.Test
Addition(t, 2, 6)
Debug t\c
Est-ce vraiment un bug, ou cet enchaînement à été voulu comme ça ?! Car il y a bien une "variable" devant les anti-slashes de la macro !
Merci.
Lionel