0010 LET a=[1,2,5,4,3,1,2,3,4,5] 0020 LET getroot().|qf_qchart:donv|.ddxdata=a 0021 LET getroot().|qf_qchart:donv|.rows=5 0022 LET getroot().|qf_qchart:donv|.cols=2 0030 LET getroot().|qf_qchart:donv|.ddxfrom='|basic:nsbasic| 0040 LET x:=getroot().|qf_Qchart:donv|:open()
2. Open other applications from NS BASIC
0010 a:=getroot().|qfig:donv|:open()
3. How to access elements of a frame
0010 REM demonstrate variable referencing 0020 LET X={A: 1, B: 2, C: 3} 0030 LET Y=intern("B") 0040 PRINT X.(Y) 0050 LET GG:=getglobals() 0060 Y=ELEMENTS(GG) 0070 FOR I=0 TO length(GG)-1 0080 PRINT Y[I], GG.(intern(y[i])) 0090 NEXT I Output: 2 ... trace U userConfiguration
4. Write to the calendar application
0010 rem write to Calendar 0020 open ch,"calendar",mtgstartdate 0030 LET n={} 0040 LET n.viewstationery='meeting 0055 LET x=stringtodate("9:00 6/3/94") 0060 LET n.mtgstartdate=x 0070 LET n.mtgtext="Meet with Bob" 0080 LET n.mtgduration=30 0110 put ch,n 0120 if fstat>0 then stop
5. Write to the To do application
0010 rem write to To Do 0020 open ch,"To Do",mtgstartdate 0030 LET n={data:[{}]} 0040 LET n.viewstationery='todoitem 0050 LET n.height=100 0060 LET n.mtgstartdate=time() 0065 LET n.mtgpriority=0 0070 LET n.data[0].viewstationery='para 0080 LET n.data[0].viewbounds={left:0, right:200, top:0, bottom:100} 0090 LET n.data[0].text="Hello World" 0091 LET n.data[0].mtgdone=nil 0095 LET n.data[0].viewfont=getglobals().userconfiguration.userfont 0100 LET n.timestamp=time() 0110 put ch,n 0120 if fstat>0 then stop
0010 rem write to notepad 0020 open ch,"notes",timestamp 0030 LET n={data:[{}]} 0040 LET n.viewstationery='paperroll 0050 LET n.height=100 0070 LET n.data[0].viewstationery='para 0080 LET n.data[0].viewbounds={left:0, right:200, top:0, bottom:100} 0090 LET n.data[0].text="Hello World" 0095 LET n.data[0].viewfont=getglobals().userconfiguration.userfont 0100 LET n.timestamp=time() 0110 put ch,n 0120 if fstat>0 then stop
7. List a program to the Notepad
0010 rem list a program to notepad 0020 open pch,"notes.Bas:NSBASIC",lineno 0030 LET x="" 0040 get pch,stmt 0050 if Stmt.text=nil Then goto 100 0060 LET x=x & Stmt.lineno & " " & Stmt.text & chr(13) 0070 GOTO 0040 0100 rem end of stmts 0110 GOSUB 1000 0120 stop 1000 rem write to notepad 1020 open ch,"notes",timestamp 1030 if fstat>0 then stop 1040 LET n={data:[{}]} 1050 LET n.viewstationery='paperroll 1060 LET n.height=1000 1070 LET n.data[0].viewstationery='para 1080 LET n.data[0].viewbounds={left:0, right:200, top:0, bottom:100} 1090 LET n.data[0].text=x 1100 LET n.data[0].viewfont=getglobals().userconfiguration.userfont 1110 LET n.timestamp=time() 1120 put ch,n 1130 if fstat>0 then stop 1140 return8. List the contents of Quickfigure spreadsheet to the screen
0010 rem List contents of spreadsheet 0015 open ch,"qfig:donv" 0020 get ch,f1 0030 get ch,f2 0050 LET x=elements(f1.values) 0060 for i=0 to length(x)-1 0070 LET y=intern(x[i]) 0080 PRINT x[i],f1.values.(y),f2.data.(y).formula 0100 next i
9. Dump all notes to the serial port
0010 rem dump all notes to serial port 0020 open ch,"notes",timestamp 0025 environ io="s0" 0030 get ch,n 0040 if fstat=1 then goto 9000 0043 print datentime(n.timestamp) 0045 for i=0 to length(n.data)-1 0050 print n.data[i].text 0055 next i 0057 print " " 0060 GOTO 0030 9000 rem fin 9010 environ io="screen"
10. Do a checkbox: this is simply a clickable window. (Note: using a checkbox window object is far more efficient)
0010 LET f={goto:1000} 0011 LET f.viewbounds={left:100, right:110, top: 100, bottom: 110} 0015 cls 0020 window w1,f 0030 show w1 0040 for i=1 to 3 0045 PRINT i 0050 wait 0070 next i 0080 stop 1000 rem toggle checkbox 1010 LET cbox=not cbox 1020 if cbox then wprint w1,chr(8730) else wprint w1,""
11. Demonstrate recognition modes
0010 rem demonstrate recognition modes 0020 cls 0030 LET recogs=[0, vNumbersAllowed, vPhoneField, vDateField, vTimeField, vMathAllowed] 0031 LET recogs[0]=vCharsAllowed+vPunctuationAllowed+vNumbersAllowed 0100 rem get popup for recog type 0110 LET w2s.viewBounds={left: 1, right: 200, top:20, bottom: 36} 0120 LET w2s.text="Recognition Type" 0130 LET w2s.labelcommands=["Anything","Number","Phone","Date","Time","Math"] 0131 LET w2s.index=0 0140 window w2,w2s,"LabelPicker" 0150 show w2 0200 rem set up input field 0210 LET w3s.viewBounds={left: 10, right: 230, top: 100, bottom: 200} 0220 LET w3s.viewFlags=vVisible+vClickable+vGesturesAllowed+recogs[w2s.index] 0230 LET w3s.text="" 0280 window w3,w3s,"Text" 0290 show w3