Seite 2 von 2

Verfasst: 04.01.2009 21:54
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

Verfasst: 04.01.2009 21:59
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 

Verfasst: 04.01.2009 22:05
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.