home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
alphant.com
/
ftp.alphant.com.zip
/
ftp.alphant.com
/
Shells
/
WB96B32D.ZIP
/
BOXDEMO.WB_
< prev
next >
Wrap
Text File
|
1996-01-16
|
19KB
|
596 lines
;;;;;;;;;;;;;;;; Generic Initialization ;;;;;;;;;;;;;;;;;;;;
IntControl(12,5,0,0,0)
;;;;;;;; Assorted Colors ;;;;;;;;;
DKBLUE="0,0,128"
BLUE="0,0,255"
LTGRAY="192,192,192"
GRAY="128,128,128"
DKGRAY="64,64,64"
GREEN="0,255,0"
RED="255,0,0"
BLACK="0,0,0"
WHITE="255,255,255"
YELLOW="255,255,0"
;;;;; Generic code for drawing a box and adding text to it.
;Get title on screen
;wbid = 99
;BoxNew(wbid,rectTitle,1)
;BoxColor(wbid,BLACK,0)
;BoxDrawRect(wbid,"0,0,1000,1000",2)
;BoxTextFont(wbid,"Arial",TitleHeight,170,0) ; san-srif, ariel, size 20, bold, noitalic
;BoxTextColor(wbid,RED)
;BoxDrawText(wbid,rectTitleText,"Acme Aardvarks",0,32)
;;;;;;;;;;;; This Example ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; Drawing the Main Box ;;;;;;;;
;; Note the use of while 1. This use of while maintains
;; the boxes until a user clicks on a button and exits
;; the while construction
BoxesUp("100,100,900,900",@NORMAL)
while 1
BoxColor(1,"0,0,128",4)
BoxCaption(1,"Graphical WinBatch")
;; Note: Here we specify 8 buttons numbered 1 to 8.
;; You can change this. Edit the list of buttons here,
;; go to the "Select a button" routine and add or subtract
;; your button selection information. Then create a subroutine
;; at the end of this script to do what you need done when
;; the button is pushed. There is a sample for you to use.
bExit=1
bHelp=2
bTherm=3
bDots=4
bBoxes=5
bLines=6
bDraw=7
bText=8
bEmpty=9
BoxDrawRect(1,"0,0,1000,1000",2)
BoxTextFont(1,"Times",150,80,0|0)
BoxTextColor(1,"255,255,0")
BoxDrawText(1,"325,550,1000,1000","Pick a Demo",0,0);;;
;;;;; This section creates the fancy banner headline in a box
rectNote="100,30,900,270"
NoteHeight=400
rectNoteText="70,200,950,800"
rectnoteline1="0,0,1000,0"
rectNoteline2="1000,1000,1000,0"
rectNoteLine3="0,1000,1000,1000"
rectNoteLine4="0,0,0,1000"
notepenwidth=20
rectnoteline1b="40,150,960,150"
rectNoteline2b="960,840,960,150"
rectNoteLine3b="40,840,960,840"
rectNoteLine4b="40,150,40,840"
notepenwidthb=10
wbid=2
Thermid=3
Noteid=4
BoxNew(Noteid,rectNote,1)
BoxColor(Noteid,LTGRAY,0) ; Light Gray no gradient
BoxDrawRect(Noteid,"",2)
;;;;; --------- This line changes the headline font -----------------
BoxTextFont(Noteid,"Arial",NoteHeight,170,0)
BoxTextColor(Noteid,RED)
BoxPen(Noteid,WHITE,notepenwidth)
boxdrawline(Noteid,rectNoteLine1)
boxdrawline(Noteid,rectNoteLine4)
BoxPen(Noteid,GRAY,notepenwidth)
boxdrawline(Noteid,rectNoteLine2)
boxdrawline(Noteid,rectNoteLine3)
BoxPen(Noteid,WHITE,notepenwidthb)
boxdrawline(Noteid,rectNoteLine2b)
boxdrawline(Noteid,rectNoteLine3b)
BoxPen(Noteid,GRAY,notepenwidthb)
boxdrawline(Noteid,rectNoteLine1b)
boxdrawline(Noteid,rectNoteLine4b)
;BoxDataTag(Noteid,"NOTE")
; BoxDataClear(NoteId,"NOTE")
;;;;; ----------- The BoxDrawText line creates the headline text. Copy (don't move)
;;;;; this line anywhere in this script you need to change the headline text.
BoxDrawText(Noteid,rectNoteText,"WinBatch Graphics",1,4)
BoxButtonDraw(1,bTherm, "&Progress", "100,320,250,390")
BoxButtonDraw(1,bDots, "&Dots", "100,410,250,480")
BoxButtonDraw(1,bBoxes, "&Boxes", "100,500,250,570")
BoxButtonDraw(1,bLines, "&Lines", "100,590,250,660")
BoxButtonDraw(1,bDraw, "&Draw", "100,680,250,750")
BoxButtonDraw(1,bText, "&Text", "100,770,250,840")
BoxButtonDraw(1,bEmpty, "&Spare", "100,860,250,930")
BoxButtonDraw(1,bHelp, "&Help", "550,860,700,930")
BoxButtonDraw(1,bExit, "E&xit", "750,860,900,930")
iBox=0
BoxButtonWait()
while iBox==0
for x=1 to 9
if BoxButtonStat(1,x) then iBox=x
next
end while
;;; Select a button ;;;;
if iBox
BoxDataClear(1,"TOP")
switch iBox
case bDraw
gosub DoDraw
break
case bLines
gosub DoLines
break
case bBoxes
gosub DoBoxes
break
case bDots
gosub DoDots
break
case bExit
exit
break
case bText
gosub DoText
break
case bTherm
gosub DoTherm
break
case bHelp
gosub DoHelp
break
case bEmpty
gosub Empty
break
end switch
endif
end while
exit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
:DODRAW
BoxCaption(1,"Scribble")
BoxNew(2,"0,0,1000,1000",0)
BoxPen(2,RED,1)
BoxButtonDraw(1,bExit, "E&xit", "750,860,900,930")
BoxDataTag(2,"FRED")
Exclusive(@ON)
olda="500,500"
while 1
BoxDataClear(2,"FRED")
a=MouseInfo(6)
a=strreplace(a," ",",")
BoxDrawLine(2,"%olda%,%a%")
olda=a
if BoxButtonStat(1,bExit)==1 then break
endwhile
BoxDestroy(2)
Return
:DOLINES
BoxCaption(1,"That Old Line")
BoxNew(2,"0,0,1000,1000",0)
BoxColor(2,BLACK,0)
BoxDrawRect(2,"0,0,1000,1000",2)
BoxButtonDraw(1,bExit, "E&xit", "750,860,900,930")
BoxDataTag(2,"APPLE")
p1=200
p2=200
p3=400
p4=400
v1=10
v2=-20
v3=-5
v4=15
bb=1
ErrorMode(@OFF)
while 1
if BoxButtonStat(1,bExit)==1 then break
if LastError()==10108
BoxDataClear(2,"APPLE")
BoxPen(2,"%r%,%g%,%b%",1)
endif
if bb==1
BoxDataClear(2,"APPLE")
gosub randcolor
BoxPen(2,"%r%,%g%,%b%",1)
bb=0
endif
BoxDrawLine(2,"%p1%,%p2%,%p3%,%p4%")
bb=0
for q=1 to 4
p%q%=p%q%+v%q%
if p%q% <= 0
p%q%=0
v%q%=Int(Random(10))+1
bb=1
endif
if p%q% >= 1000
p%q%=1000
v%q%=-Int(Random(10))-1
bb=1
endif
next
endwhile
BoxDestroy(2)
Return
:DOBOXES
BoxCaption(1,"Random Rectangles")
BoxNew(2,"0,0,1000,1000",0)
BoxButtonDraw(1,bExit, "E&xit", "750,860,900,930")
BoxDataTag(2,"ACORN")
ErrorMode(@OFF)
while 1
if BoxButtonStat(1,bExit)==1 then break
x=Random(1000)
y=Random(1000)
s=Random(1000)
t=Random(1000)
r=Random(255)
g=Random(255)
b=Random(255)
BoxColor(2,"%r%,%g%,%b%",0)
BoxDrawRect(2,"%x%,%y%,%s%,%t%",2)
if LastError()==10108
BoxDataClear(2,"ACORN")
BoxUpdates(1,3)
endif
endwhile
ErrorMode(@CANCEL)
BoxDestroy(2)
Return
:DODOTS
BoxCaption(1,"Driving Me Dotty")
BoxNew(2,"0,0,1000,1000",0)
BoxButtonDraw(1,bExit, "E&xit", "750,860,900,930")
BoxColor(2,BLACK,0)
BoxDrawRect(2,"0,0,1000,1000",2)
brk=0
x=500
y=500
oldxx=0
oldyy=0
z=5
z2=10
BoxDataTag(2,"SAM")
while 1
BoxDataClear(2,"SAM")
gosub RandColor
BoxColor(2,"%r%,%g%,%b%",0)
for q=1 to 100
x1=x-z
x2=x+z
y1=y-z
y2=y+z
BoxDrawCircle(2,"%x1%,%y1%,%x2%,%y2%",2)
ww=Int(Random(100))
if ww>16
xx=oldxx
yy=oldyy
else
xx=ww&3
if xx==3 then xx=0
yy=(ww&12)>>2
if yy==3 then yy=0
endif
if x<=0 then xx=2
if x>=1000 then xx=1
if y<=0 then yy=2
if y>=1000 then yy=1
oldxx=xx
oldyy=yy
if xx==2 then x=x+z2
if xx==1 then x=x-z2
if yy==2 then y=y+z2
if yy==1 then y=y-z2
if BoxButtonStat(1,bExit)==1
brk=1
break
endif
next
if brk==1 then break
endwhile
BoxDestroy(2)
Return
:DOTEXT
BoxCaption(1,"Fontopia")
BoxNew(2,"0,0,1000,500",0)
BoxColor(2,LTGRAY,2)
BoxColor(1,LTGRAY,0)
BoxButtonDraw(1,bExit,"E&xit","750,860,900,930")
BoxDrawRect(2,"0,0,1000,1000",2)
BoxDrawRect(1,"0,500,1000,1000",2)
words="The quick brown fox went happy stroll dark woods looking for something tasty dinner soon found picnic basket full yummy goodies "
wc=ItemCount(words," ")
BoxTextColor(1,BLACK)
;;;;;;;;;
BoxTextFont(1,"",20,0,0)
BoxTextColor(1,RED)
BoxDrawText(1,"25,510,1000,545","Results shown will vary with installed fonts...",0,0)
BoxTextColor(1,BLACK)
fonttype=0
xxx=25
yyy=xxx+225
BoxTextFont(1,"",30,fonttype,0)
BoxDrawText(1,"%xxx%,550,%yyy%,600","Normal",0,0)
BoxTextFont(1,"Times New Roman",30,fonttype,4)
BoxDrawText(1,"%xxx%,625,%yyy%,675","Times New Roman",0,0)
BoxTextFont(1,"Arial",30,fonttype,8)
BoxDrawText(1,"%xxx%,700,%yyy%,750","Arial",0,0)
BoxTextFont(1,"Modern",30,fonttype,12)
BoxDrawText(1,"%xxx%,775,%yyy%,825","Modern",0,0)
BoxTextFont(1,"Script",30,fonttype,16)
BoxDrawText(1,"%xxx%,850,%yyy%,900","Script",0,0)
BoxTextFont(1,"Old English Text MT",30,fonttype,22)
BoxDrawText(1,"%xxx%,925,%yyy%,975","Old English",0,0)
fonttype=100
xxx=275
yyy=xxx+225
BoxTextFont(1,"",30,fonttype,0)
BoxDrawText(1,"%xxx%,550,%yyy%,600","Italic",0,0)
BoxTextFont(1,"Times New Roman",30,fonttype,4)
BoxDrawText(1,"%xxx%,625,%yyy%,675","Times New Roman",0,0)
BoxTextFont(1,"Arial",30,fonttype,8)
BoxDrawText(1,"%xxx%,700,%yyy%,750","Arial",0,0)
BoxTextFont(1,"Modern",30,fonttype,12)
BoxDrawText(1,"%xxx%,775,%yyy%,825","Modern",0,0)
BoxTextFont(1,"Script",30,fonttype,16)
BoxDrawText(1,"%xxx%,850,%yyy%,900","Script",0,0)
BoxTextFont(1,"Old English Text MT",30,fonttype,20)
BoxDrawText(1,"%xxx%,925,%yyy%,975","Old English",0,0)
fonttype=70
xxx=525
yyy=xxx+225
BoxTextFont(1,"",30,fonttype,0)
BoxDrawText(1,"%xxx%,550,%yyy%,600","Bold",0,0)
BoxTextFont(1,"Times New Roman",30,fonttype,4)
BoxDrawText(1,"%xxx%,625,%yyy%,675","Times New Roman",0,0)
BoxTextFont(1,"Arial",30,fonttype,8)
BoxDrawText(1,"%xxx%,700,%yyy%,750","Arial",0,0)
BoxTextFont(1,"Modern",30,fonttype,12)
BoxDrawText(1,"%xxx%,775,%yyy%,825","Modern",0,0)
BoxTextFont(1,"Script",30,fonttype,16)
BoxDrawText(1,"%xxx%,850,%yyy%,900","Script",0,0)
BoxTextFont(1,"Old English Text MT",30,fonttype,20)
BoxDrawText(1,"%xxx%,925,%yyy%,975","Old English",0,0)
fonttype=170
xxx=775
yyy=xxx+225
BoxTextFont(1,"",30,fonttype,0)
BoxDrawText(1,"%xxx%,550,%yyy%,600","Bold Italic",0,0)
BoxTextFont(1,"Times New Roman",30,fonttype,4)
BoxDrawText(1,"%xxx%,625,%yyy%,675","Times New Roman",0,0)
BoxTextFont(1,"Arial",30,fonttype,8)
BoxDrawText(1,"%xxx%,700,%yyy%,750","Arial",0,0)
BoxTextFont(1,"Modern",30,fonttype,12)
BoxDrawText(1,"%xxx%,775,%yyy%,825","Modern",0,0)
BoxTextFont(1,"Script",30,fonttype,16)
BoxDrawText(1,"%xxx%,850,%yyy%,900","Script",0,0)
BoxTextFont(1,"Old English Text MT",30,fonttype,20)
BoxDrawText(1,"%xxx%,925,%yyy%,975","Old English",0,0)
BoxDataTag(2,"PEACHY")
brk=0
cnt=0
wash=0
while 1
for i=1 to wc
cnt=cnt+1
gosub randcolor
BoxTextColor(2,"%r%,%g%,%b%")
x=Random(800)
y=Random(800)
s=x+Random(200)
t=y+Random(200)
fontsize=max(10,min(t-y,Random(200)))
BoxTextFont(2, "", fontsize, 10+Random(80)+ (100*Int(Random(1))), (Int(Random(4)+1)*4 ))
BoxDrawText(2,"%x%,%y%,%s%,%t%",ItemExtract(i,words," "),0,0)
if BoxButtonStat(1,bExit)
brk=1
break
endif
if cnt==200
cnt=0
wash=wash+1
if wash==8 then wash=0
BoxColor(2,"%r%,%g%,%b%",wash)
BoxDrawRect(2,"0,0,1000,1000",2)
endif
next i
BoxDataClear(2,"PEACHY")
if brk then break
endwhile
BoxDestroy(2)
Return
:DOTHERM
rectutext="100,100,1000,900"
rectTherm="200,350,800,650"
rectButton="0,0,100,100"
rectThermLine1="100,550,900,550"
rectThermLine2="900,550,900,800"
rectThermLine3="900,800,100,800"
rectThermLine4="100,800,100,550"
ThermPenWidth=20
rectThermText1="100,50,1000,199"
rectThermPercent="490,625,550,725"
rectTopHalf="0,0,1000,210"
rectBotHalf="0,210,1000,1000"
rectTitle="100,20,900,170"
rectTitleText="10,10,790,140"
TitleHeight=950
rectNote="100,30,900,270"
NoteHeight=400
rectNoteText="70,200,950,800"
rectnoteline1="0,0,1000,0"
rectNoteline2="1000,1000,1000,0"
rectNoteLine3="0,1000,1000,1000"
rectNoteLine4="0,0,0,1000"
notepenwidth=20
rectnoteline1b="40,150,960,150"
rectNoteline2b="960,840,960,150"
rectNoteLine3b="40,840,960,840"
rectNoteLine4b="40,150,40,840"
notepenwidthb=10
Thermid=3
Noteid=4
; Make main window look nice
BoxColor(1,"128,0,0",1)
BoxDrawRect(1,"0,0,1000,1000",2)
BoxCaption(1,"Are we making any progress here?")
;;;;Do note box
BoxNew(Noteid,rectNote,1)
BoxColor(Noteid,LTGRAY,0) ; Light Gray no gradient
BoxDrawRect(Noteid,"",2)
BoxTextFont(Noteid,"Arial",NoteHeight,170,0)
BoxTextColor(Noteid,RED)
BoxPen(Noteid,WHITE,notepenwidth)
boxdrawline(Noteid,rectNoteLine1)
boxdrawline(Noteid,rectNoteLine4)
BoxPen(Noteid,GRAY,notepenwidth)
boxdrawline(Noteid,rectNoteLine2)
boxdrawline(Noteid,rectNoteLine3)
BoxPen(Noteid,WHITE,notepenwidthb)
boxdrawline(Noteid,rectNoteLine2b)
boxdrawline(Noteid,rectNoteLine3b)
BoxPen(Noteid,GRAY,notepenwidthb)
boxdrawline(Noteid,rectNoteLine1b)
boxdrawline(Noteid,rectNoteLine4b)
BoxDataTag(Noteid,"NOTE")
BoxDrawText(Noteid,rectNoteText,"Initializing...",1,4)
;Draw thermoneter outline
BoxNew(Thermid,rectTherm,2)
BoxUpdates(Thermid,0)
BoxCaption(Thermid,"Name Goes Here")
BoxColor(Thermid,LTGRAY,0)
BoxDrawRect(Thermid,"",2)
; Draw updating thermometer here
; there are 3 virtual pixels per percent
; we have to draw 3 boxes and some text...
BoxDataTag(Thermid,"FRED")
BoxCaption(Thermid,"Please wait. Stepping through example...")
FilesToCopy=16
FilesCopied=0
for FilesCopied=1 to FilesToCopy
BoxDataClear(Thermid,"FRED")
BoxUpdates(Thermid,0)
BoxColor(Thermid,GREEN,0)
xxx= 100+((800*FilesCopied)/FilesToCopy)
per=(100.0*FilesCopied)/FilesToCopy
per=Int(per)
BoxDrawRect(Thermid,"104,554,%xxx%,796",2)
BoxColor(Thermid,GRAY,0)
BoxDrawRect(Thermid,"%xxx%,554,896,796",2)
BoxPen(Thermid,BLACK,ThermPenWidth)
boxdrawline(Thermid,rectThermLine1)
boxdrawline(Thermid,rectThermLine2)
boxdrawline(Thermid,rectThermLine3)
boxdrawline(Thermid,rectThermLine4)
if per<50 then BoxTextColor(Thermid,WHITE)
BoxDrawText(Thermid,rectThermPercent,"%per%%%",0,0)
BoxTextColor(Thermid,BLACK)
BoxColor(Thermid,LTGRAY,0)
BoxDrawText(Thermid,rectThermText1,"Steps completed: %FilesCopied%",1,0)
BoxDataClear(NoteId,"NOTE");;;
BoxDrawText(Noteid,rectNoteText,"Showing Progress",1,4);;;
BoxUpdates(Thermid,2)
TimeDelay(Random(1.0)) ;Fake passage of time
next
BoxTextColor(Noteid,GREEN)
BoxDrawText(Noteid,rectNoteText,"Example Complete",1,4)
Message("Company Name Goes Here","Example Complete!!")
BoxDestroy(Thermid)
BoxDestroy(Noteid)
Return
:RANDCOLOR
r=Int(Random(255))
g=Int(Random(255))
b=Int(Random(255))
q=min(r,g,b)
if q==r then r=0
if q==g then g=0
if q==b then b=0
q=max(r,g,b)
if q==r then r=255
if q==g then g=255
if q==b then b=255
Return
:DoHelp
text1="You can add help text to your script easily. "
text2="Just edit the DoHelp sub routine to add your instructions."
text3="Remember, you can always use the WinHelp() function to call Windows help files."
text=StrCat(text1, text2, text3)
Message("Help",text)
Return
:Empty
Message("Empty","This can be used for your own purposes.")
Return