Seite 1 von 1

[!] Wozu braucht man Macro?

Verfasst: 08.02.2006 02:05
von Jake
Wenn ich das richtig sehe, kann man doch jedes Macro mit einer Prozedur ersetzten oder?
Also was ist an dem neuen Macro Befehl besser oder anders?

Verfasst: 08.02.2006 02:35
von ts-soft
Ein Macro ersetzt die entsprechenden Codezeilen, so das in der Exe keine zusätzlichen Proceduren entstehen, und keine Geschwindigkeitsverluste

Verfasst: 08.02.2006 02:36
von Konne
Ist peek usw jetzt so n macro?

Verfasst: 08.02.2006 02:37
von ts-soft
peek ist ein Funktion

Verfasst: 08.02.2006 02:59
von Jake
Schneller ist immer gut.

Jetzt habe ich versucht das Beispiel aus der ReadMe.html zu verstehen.

Code: Alles auswählen

Macro Assert(Expression)
   If (Expression)
      Debug "#True : " + "Expression"
   Else
      Debug "#False : " + "Expression"
   EndIf
EndMacro
Der Aufruf fehlt in der Readme.
Also was auch immer ich dort eingebe, bekomme ich die Fehlermeldung Syntax Error.
Also was muß da rein?

Code: Alles auswählen

Assert(?)

Verfasst: 08.02.2006 03:07
von ts-soft
Bei mir fehlt da nichts :freak:

Code: Alles auswählen

Macro Assert(Expression)
   If (Expression)
      Debug "#True : " + "Expression"
   Else
      Debug "#False : " + "Expression"
   EndIf
EndMacro

x = 5

Assert(x = 5)
Assert(x < 2)
Assert(x = 10)
Assert(x > 2) 

Verfasst: 08.02.2006 03:41
von Jake
Oh, da hab ich wohl die Hälfte übersehen.

Verfasst: 08.02.2006 18:17
von remi_meier
Obwohl erst diese Erweiterung die Nützlichkeit von Makros zeigt:

Code: Alles auswählen

Macro DQ
"
EndMacro

Macro ToString(e)
  DQ e DQ
EndMacro

Macro Assert(Expression)
   If (Expression)
      Debug "#True : " + ToString(Expression) + " in line " + Str(#PB_Compiler_Line)
   Else
      Debug "#False : " + ToString(Expression) + " in line " + Str(#PB_Compiler_Line)
   EndIf
EndMacro

x = 5


Assert(x = 5)
Assert(x < 2)
Assert(x = 10)
Assert(x > 2) 
greetz
Remi

Verfasst: 08.02.2006 23:40
von ts-soft
@remi_meier
schönes Beispiel :allright: