SETCTL |
GOSUB on CTL Event |
SETCTL ctl_id:stmtref
Where:
ctl_id |
CTL value to intercept. Numeric expression. |
stmtref |
Program line number or statement label to which to transfer control. |
When PxPlus executes the SETCTL directive, it intercepts CTL values on INPUT statements and transfers control via a GOSUB to the specified line or statement label. On completion of the subroutine (e.g. on a RETURN), control will pass back to the INPUT statement where the event was intercepted.
To reset a SETCTL, set stmtref to 0000. If stmtref = 0000, the logic to intercept the CTL value is deleted.
GOSUB.. Execute Subroutine
CTL Control Code: Key to End Input
0010 setctl 3:2000
0020 setctl 4:9000
0100 input (0,err=0100)@(x,y),"Enter Name:",A$
0110 stop
2000 ! Refresh screen
2010 print 'RS',; return
9000 ! Exit routine
9010 exitto 9900
9900 end
In the above example, whenever the CTL=3 on the INPUT statement (i.e. the user hits the F3 key), control is passed to the subroutine at line 2000. When the RETURN statement is executed, control passes back to the line that contained the INPUT statement.