Macro Scheduler 15

SRT

SRT>Subroutine_Name

 

Identifies the start of a Subroutine block.  Use End to end the subroutine.

 

Subroutines can be nested.  Subroutines can be located anywhere within the script.

 

In almost all circumstances subroutines should be allowed to end properly and it is best practice to do so.  In other words execution should always continue on to the subroutine's End statement.  While it is possible to jump out of a subroutine using a Goto statement the scope of execution will remain inside the subroutine unless and until execution returns to the subroutine and the subroutine's End statement is reached.  This is most noticeable when using an OnEvent event handler.  If, for example, a KEY_DOWN event is set to fire a subroutine and code is allowed to jump out of the subroutine, OnEvent won't know that the subroutine has ended and therefore no subsequent KEY_DOWN events of the same type will fire.  If you do need to cause execution to jump to a label after the subroutine has terminated use the SkipLabel command.

 

By default variables have global scope.  Variables can be set to have local scope by setting LOCALVARS to 1.  See topic: Variable Scope.

 

See also Gosub, END, SkipLabel

 

Example

 

Gosub>EnterName

Gosub>CloseApp

 

//// Subroutines Below ////

 

SRT>FocusApp

   SetFocus>Data Entry Screen

End>FocusApp

 

SRT>EnterName

   Gosub>FocusApp

   Send>Firstname

   Press Tab

   Send>Surname

   Press Enter

End>EnterName

 

SRT>CloseApp

   Gosub>FocusApp

   Press ALT

   Press F4

   Release ALT

End>CloseApp