Bug Macro appelée dans un With sur une structure

Archive.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Bug Macro appelée dans un With sur une structure

Message par lionel_om »

Bonjour,

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
Et lorsque je compile j'obtiens l'erreur suivante (ligne générée) :
*t*t\c = *t*t\a + *t*t\b
Donc en fait, il rajoute ce qui est dans le With/EndWith à la variable de ma macro.

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
Mais la macro n'est plus fonctionnelle si elle a été appelée sans le With ! :?

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
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !