Makros: Falsche Anwendung oder Bug?

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Hm, stimmt, aber da hast du was übersehen...

Das Problem ist, wenn ich gleich Error_Arg nutze, dann wird
kein "ProcedureReturn" angehängt.
Jetzt nicht damit kommen, dass ich "ProcedureReturn Error_Arg(...)"
schreiben könnte, da ich eigentlich noch mehr Dinge im Makro
haben möchte.

Und wenn ich gleich aus "Error_Arg" ein Makro mache, dann habe ich
nach vielen Anwendungen irgendwann ein riesiges Executable.

Hier ein größeres Makro:

Code: Alles auswählen

Macro Error_(FunctionAndArguments,Action1=,Action2=,Action3=)
  Error_#FunctionAndArguments
  Action1
  Action2
  Action3
  ProcedureReturn
EndMacro
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ahja... wenn du meinst, dann füg doch einfach einen zusätzlichen Buchstaben im Macronamen hinzu.
außerdem solltest du vor einer Klammer keinen Underscore haben, sonst verwechselt man das mit einem API-Call.

Code: Alles auswählen

Macro ErrorM(FunctionAndArguments)
  Error_#FunctionAndArguments
  ProcedureReturn
EndMacro 
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Achso, ok. Ich mache das generell bei Makros. Ich kann ja dann einfach
den Unterstrich als Präfix setzen ("_Error(...)")

Woran ich jetzt aber auch gedacht habe, dass ich mir die Schreibarbeit
nehme, aber dafür den Fehler professionell beseitige:

Code: Alles auswählen

Macro _StdError(Message,Action1=,Action2=,Action3=)
  StdError(Message)
  Action1
  Action2
  Action3
  ProcedureReturn
EndMacro
Macro _ArgError(Type,Action1=,Action2=,Action3=)
  ArgError(Type)
  Action1
  Action2
  Action3
  ProcedureReturn
EndMacro

Procedure.i StdError(Message.s)
  ...
EndProcedure
Procedure.i ArgError(Type.s)
  ...
EndProcedure
Somit kommt es dann zu keinen Verwechslungen oder Ähnliches mehr.

Damit wäre dann wohl dieses Theme geklärt.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Antworten