Warum kein With in Macros?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Warum kein With in Macros?

Beitrag von STARGÅTE »

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)".

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()
Was einen Fehler verursacht ist, wenn du CompilerIf verwendest und das EndWith nicht erreicht wird.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Demivec
Beiträge: 49
Registriert: 22.02.2008 20:49
Wohnort: Utah, USA

Re: Warum kein With in Macros?

Beitrag von Demivec »

jacdelad hat geschrieben: 10.12.2021 06:07 Warum ist With nicht in Macros erlaubt? Die Hilfe sagt nichts dazu.
Im ENGLISCHEN Forum sagte Fred:
https://www.purebasic.fr/english/viewtopic.php?p=309266
Zuletzt geändert von Demivec am 13.12.2021 08:52, insgesamt 1-mal geändert.
Bild
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Warum kein With in Macros?

Beitrag von jacdelad »

Ah ok. Naja, da ist das geklärt. Danke an alle.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Antworten