home *** CD-ROM | disk | FTP | other *** search
/ com!online 2001 December / COMCD1201.iso / tonline / software / data1.cab / Software / MAKRO / BEISPIEL / CALL.MKR < prev    next >
Encoding:
Text File  |  2001-08-13  |  1.3 KB  |  48 lines

  1. #   --------------------------------------
  2. #   - Beispielmakro fuer den Befehl call -
  3. #   - Ruft sich mehrfach selbst auf.     -
  4. #   --------------------------------------
  5.  
  6. #   Protokollfensterausgaben ermoeglichen
  7. set PROTWIN = "on"
  8.  
  9. #   Makroname holen
  10. set Makroname = argv_0
  11.  
  12. #   CALL-Ebene holen, bei Aufruf ohne Parameter mit "0" vorbelegen
  13. set Ebene = "1"
  14.  
  15. #   wenn argc kleiner als "2", dann wurde das Makro nicht von
  16. #   sich selbst aufgerufen
  17. ifless argc than "2" goto NoPara
  18.  
  19. #   Makro wurde von sich selbst aufgerufen => Ebene holen und hochzaehlen
  20. set Ebene = argv_1
  21. inc Ebene
  22. goto Start
  23.  
  24. #   Diesen Teil nur beim ersten Aufruf ausfuehren
  25. NoPara:
  26. debug "Makroname: ", argv_0, "\n"
  27.  
  28. #   Start-Hinweis ausgeben
  29. Start:
  30. debug "[", Ebene, "] Makro gestartet\n"
  31.  
  32. #   Irgendwann auch mal aufhoeren mit sich selbst aufrufen ...
  33. ifgreater Ebene than "9" goto Fertig
  34.  
  35. #   Makro ruft sich selbst auf
  36. call Makroname, Ebene
  37.  
  38. #   call-Befehl kehrt erst zurueck, wenn das aufgerufene Makro beendet ist
  39. #   dann geht es hier weiter
  40. debug "[", Ebene, "] Erhaltener Rueckgabewert: ", CALLVAL, "\n"
  41.  
  42. #   Makro beenden
  43. Fertig:
  44. set RETVAL = "0", Ebene, "0"
  45. debug "[", Ebene, "] Setze Rueckgabewert: ", RETVAL, "\n"
  46. debug "[", Ebene, "] Makro beendet\n"
  47.  
  48.