HTBasic Help
×
Menu
Index

Example: Pushbutton Widget

 
10     ! *********************************************************************
20     ! Example: PUSHBUTTON Widget
30     !
40     ! This program generates a PUSHBUTTON widget with
50     ! three states. Each time the button is pressed, the
60     ! display cycles through Label ONE, Label TWO, and
70     ! Label THREE, and the associated state (0, 1, or 2).
80     ! is displayed.
90     !
100   ! ************************************************
110   !
120   DIM L$(1:3)[50]
130   INTEGER D(1:4),Dw,Dh,Bh,Bw,Bx,By,N
140   DATA "Label ONE","Label TWO","Label THREE"
150   READ L$(*)
160   !
170   GESCAPE CRT,3;D(*)
180   Dw=D(3)-D(1)
190   Dh=(D(4)-D(2))
200   Bw=128
210   Bh=Bw/2
220   Bx=(Dw-Bw)/2
230   By=(Dh-Bh)/2
240   !
250   ASSIGN @Btn TO WIDGET "PUSHBUTTON"
260   CONTROL @Btn;SET ("TITLE":" Example: PUSHBUTTON Widget")
270   CONTROL @Btn;SET ("SYSTEM MENU":"Quit")
280   CONTROL @Btn;SET ("X":Bx/2,"Y":By/2,"WIDTH":2.25*Bw,"HEIGHT":Bh)
290   CONTROL @Btn;SET ("LABELS":L$(*),"STATES":3)
300   !
310   ON EVENT @Btn,"ACTIVATED" GOSUB Handler
320   ON EVENT @Btn,"SYSTEM MENU" GOTO Finis
330   !
340   LOOP
350     WAIT FOR EVENT
360   END LOOP
370   STOP
380   !
390 Handler:  !
400   STATUS @Btn;RETURN ("STATE":N)
410   DISP "State = "&VAL$(N)
420   RETURN
430   !
440 Finis:  !
450   ASSIGN @Btn TO *                                ! Delete PUSHBUTTON widget
460   END