Re: Warum kein With in Macros?
Verfasst: 11.12.2021 23:24
Bis auf das EndWhile --> Wend gibt es keinen Fehler, warum auch.
Während der Kompilierung wird "If Random(2)" gar nicht ausgewertet und da es ein With mit einem EndWith geschlossen wird, wird der Code ohne Fehler kompiliert.
Danach (zur Laufzeit) existiert kein With mehr, und im Debugger fehlen ein paar zweien von \y weil es im "If Random(2)".
Was einen Fehler verursacht ist, wenn du CompilerIf verwendest und das EndWith nicht erreicht wird.
Während der Kompilierung wird "If Random(2)" gar nicht ausgewertet und da es ein With mit einem EndWith geschlossen wird, wird der Code ohne Fehler kompiliert.
Danach (zur Laufzeit) existiert kein With mehr, und im Debugger fehlen ein paar zweien von \y weil es im "If Random(2)".
Code: Alles auswählen
Global MyVar.POINT
MyVar\x = 1
MyVar\y = 2
Procedure MyProc()
With MyVar
Debug \x
If Random(2)
Debug \y
EndWith
EndIf
EndProcedure
MyProc()
MyProc()
MyProc()
MyProc()