HTBasic Help
×
Menu
Index

Example: Pushbutton Events

 
10     ! *********************************************************************
20     ! Example: PUSHBUTTON Events
30     !
40     ! This program generates a bank of four PUSHBUTTON
50     ! widgets. When you click any pushbutton, the entire
60     ! bank moves in the direction specified on the pushbutton.
70     !
80     ! ****************************************************
90     !
100   ASSIGN @Main TO WIDGET "PANEL"
110   CONTROL @Main;SET ("TITLE":" Example: PUSHBUTTON Events")
120   CONTROL @Main;SET ("HEIGHT":130,"WIDTH":275,"X":120,"Y":60)
130   CONTROL @Main;SET ("SYSTEM MENU":"Quit")
140   !
150   ! Create a bank of PUSHBUTTON widgets
160   !
170   ASSIGN @Pb1 TO WIDGET "PUSHBUTTON";PARENT @Main,SET ("X":40,"Y":10,"TAB STOP":1)
180   ASSIGN @Pb2 TO WIDGET "PUSHBUTTON";PARENT @Main,SET ("X":140,"Y":10,"TAB STOP":1)
190   ASSIGN @Pb3 TO WIDGET "PUSHBUTTON";PARENT @Main,SET ("X":40,"Y":60,"TAB STOP":1)
200   ASSIGN @Pb4 TO WIDGET "PUSHBUTTON";PARENT @Main,SET ("X":140,"Y":60,"TAB STOP":1)
210   !
220   ! Label the buttons
230   !
240   CONTROL @Pb1;SET ("LABEL":"MOVE LEFT")
250   CONTROL @Pb2;SET ("LABEL":"MOVE RIGHT")
260   CONTROL @Pb3;SET ("LABEL":"MOVE UP")
270   CONTROL @Pb4;SET ("LABEL":"MOVE DOWN")
280   !
290   ! Set up the button event handlers
300   !
310   ON EVENT @Main,"SYSTEM MENU" GOTO Finis
320   ON EVENT @Pb1,"ACTIVATED" GOSUB Moveleft
330   ON EVENT @Pb2,"ACTIVATED" GOSUB Moveright
340   ON EVENT @Pb3,"ACTIVATED" GOSUB Moveup
350   ON EVENT @Pb4,"ACTIVATED" GOSUB Movedown
360   !
370   LOOP
380     WAIT FOR EVENT
390   END LOOP
400   !
410   ! Service the button events
420   !
430 Moveleft:   !
440   CONTROL @Main;SET ("X":50)
450   BEEP
460   RETURN
470   !
480 Moveright:  !
490   CONTROL @Main;SET ("X":150)
500   BEEP
510   RETURN
520   !
530 Moveup:  !
540   CONTROL @Main;SET ("Y":30)
550   BEEP
560   RETURN
570   !
580 Movedown:  !
590   CONTROL @Main;SET ("Y":100)
600   BEEP
610   RETURN
620 Finis:   !
630   ASSIGN @Main TO *                                ! Delete PANEL widget
640   END