With : EndWith


Syntax
With <Ausdruck>
  ...
EndWith
Beschreibung
Ein With : EndWith Block ermöglicht die Reduzierung einzugebenden Codes und vereinfacht seine Lesbarkeit, wenn strukturierte Felder intensiv genutzt werden.

Er beinhaltet regulären PureBasic Code und fügt automatisch den angegebenen 'Ausdruck' vor dem Backslash '\' Zeichen, welches ein Leerzeichen oder einen Operator davor hat, ein. Dies ist eine Compiler-Direktive und funktioniert wie ein Makro: die Zeile wird zum Zeitpunkt des Kompilierens erweitert.

With : EndWith Blöcke können nicht verschachtelt werden, da dies zu nur schwer zu findenden Bugs führen kann, wenn es mehrere - mit verschiedenen Werten ersetzte - Anweisungen gibt.

Beispiel:

  Structure Person
    Name$
    Age.l
    Size.l
  EndStructure

  Friend.Person
  
  With Friend
    \Name$ = "Yann"
    \Age   = 30
    \Size  = 196
    
    Debug \Size+\Size
  EndWith
    

Beispiel: Komplexes Beispiel

  Structure Body
    Weight.l
    Color.l
    Texture.l
  EndStructure

  Structure Person
    Name$
    Age.l
    Body.Body[10]
  EndStructure

  Friend.Person
  
  For k = 0 To 9
    With Friend\Body[k]
      \Weight = 50
      \Color  = 30
      \Texture = \Color*k
      
      Debug \Texture
    EndWith
  Next