Warum kein With in Macros?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
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: 348
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Warum kein With in Macros?

Beitrag von jacdelad »

Ah ok. Naja, da ist das geklärt. Danke an alle.
PureBasic 6.11/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/150TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Antworten