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()