//********************************************************************* // // WINDEMO.PRG // // Demonstration Program for TSDWIN10.LIB // Clipper 5.0 Window Library // // Copyright (C) 1991 Trilateral Systems Development Ltd. // All Rights Reserved * Version 1.00 * Release Date: 02-28-91 // // 43B Metcalfe Crescent // Brantford, ON, Canada // N3R 2L7 // 519-758-1679 // //********************************************************************* //********************************************************************* // // FUNCTION MAIN() // // Compile with /n/w // //********************************************************************* FUNCTION Main() //********************************************************************* // Variable Declarations //********************************************************************* LOCAL getry:=space(5),getlist:={},t_scr LOCAL f,g,rpos,cpos,tarray:={"","","","","",""},temp,ttype LOCAL fill_chrs:="* °±²Û" LOCAL clr_strs:={"r/b*","gr+/r","g/w*","w+/rb*","g+/n*","n/gr*",; "w+/b","b/bg","r/bg*","b+/r*","br/g*","gr+/b","gr+/g","w+/n"} MEMVAR win1,win2,win3,win4,win5,win6,win7 //********************************************************************* // Set Up Environment //********************************************************************* SETBLINK(.F.) SET CURSOR OFF SET SCOREBOARD OFF EXTERNAL wSsaveAsc EXTERNAL wWsaveAsc SET KEY 287 TO wSsaveAsc SET KEY 273 TO wWsaveAsc //********************************************************************* // Opening Main Display Window //********************************************************************* wOpen(0,0,24,79,"w/b,gr+/r,,,n/w",5,10) wTitle("TSD Window Library Demonstration","b/w","T","C") InkeyWait(1) wCenter(2," * TSDWIN Organizes Your Clipper Screens *","gr+/b") InkeyWait(2) wCenter(4,"Windows are Stored in a Dynamically Allocated Stack!","bg+/b") InkeyWait(1) wCenter(5,"Memory is Released When the Windows are Popped.","bg+/b") InkeyWait(2) wCenter(7,"During the demo, ALT-W and ALT-S may","bg+/b") wCenter(8,"be pressed to save Windows and Screens.","bg+/b") InkeyWait(2) wClear(.f.," ",7,5,8,75) //********************************************************************* // Create and Pop 20 Windows //********************************************************************* wOpen(5,10,10,67,"r/b*",1,6);InkeyWait(.2) wOpen(8,45,22,55,"gr+/r",3,5,"±");InkeyWait(.2) wOpen(15,23,20,79,"g/w*",7,4,".");InkeyWait(.2) wOpen(2,2,12,44,"n/gr*",9,3,"°");InkeyWait(.2) wOpen(18,5,22,75,"bg+/r",5,2,"²");InkeyWait(.2) wOpen(11,60,17,77,"b/gr*",3,1,"Û");InkeyWait(.2) wOpen(9,34,18,57,"w+/b",7,7,"");InkeyWait(.2) wOpen(3,50,9,70,"n/g*",1,8,"");InkeyWait(.2) wOpen(12,3,17,57,"w+/rb*",9,9,"");InkeyWait(.2) wOpen(18,14,21,38,"gr+/br",7,10,"");InkeyWait(.2) wOpen(5,48,17,67,"g+/n*",1,11,"");InkeyWait(.2) wOpen(1,70,18,76,"w/gr",9,12,"");InkeyWait(.2) wOpen(2,34,17,42,"b+/r",3,13,"");InkeyWait(.2) wOpen(3,6,9,18,"r+/b*",1,14,"");InkeyWait(.2) wOpen(10,20,13,50,"w+/r*",1,6,"0") //********************************************************************* // There is sometimes a problem with ';' in Clipper 5.0 //********************************************************************* InkeyWait(.2) wOpen(8,12,20,39,"b+/gr*",3,5,"");InkeyWait(.2) wOpen(1,45,7,69,"b+/w*",9,8,"*");InkeyWait(.2) wOpen(14,71,22,77,"n/b*",7,7,"");InkeyWait(.2) wOpen(4,30,11,47,"br+/g*",3,10,"");InkeyWait(.2) wOpen(18,9,20,73,"b/bg*",1,4,"") wCenter(1,"Trilateral Systems Development Ltd.","r+/bg*");InkeyWait(.2) wOpen(7,51,15,68,"w+/b*",1,8);InkeyWait(1) wCenter(3,"Let's Pop 'Em") SETBLINK(.T.) InkeyWait(2) SETBLINK(.F.) FOR f = 1 TO 21 wPop() InkeyWait(.1) NEXT //********************************************************************* // Display Shadow Position FOR Windows //********************************************************************* wCenter(7,"The Library Lets You...","w+/b") InkeyWait(2) wSay(9,20," Select from Four Shadow Positions or None","gr+/b") InkeyWait(2) wOpen(1,1,23,78,"w+/b",5,9,"") wTitle("Window Shadows","b/w*","T","C") wTitle("Press a Key or Wait","b/w*","B","C") wOpen(4,5,10,34,"r+/bg*",1,2) wCenter(3,"Shadow Type 1") wOpen(4,45,10,74,"r+/bg*",7,2) wCenter(3,"Shadow Type 7") wOpen(14,5,20,34,"r+/bg*",9,2) wCenter(3,"Shadow Type 9") wOpen(14,45,20,74,"r+/bg*",3,2) wCenter(3,"Shadow Type 3") InkeyWait(6) FOR f = 1 TO 5 wPop() NEXT InkeyWait(1) //********************************************************************* // Show Border Types for Windows //********************************************************************* wSay(10,20," Choose A Border Type for Your Window","gr+/b") InkeyWait(2) wOpen(3,1,21,78,"b+/b",5,12,"±") wTitle("Window Borders","b/w*","T","C") wTitle("Press a Key or Wait","b/w*","B","C") cpos:=-4 FOR f = 1 TO 14 rpos:=IIF(f>7,14,5) cpos:=cpos+10 wOpen(rpos,cpos,rpos+5,cpos+7,"r/bg*",5,f) wCenter(2,"Type");wCenter(3,ltrim(str(f))) cpos:=IIF(f==7,-4,cpos) NEXT InkeyWait(6) FOR f = 1 TO 15 wPop() NEXT //********************************************************************* // Demonstrate Line Types //********************************************************************* InkeyWait(1) wSay(11,20," You Can Draw Horizontal and Vertical Lines","gr+/b") InkeyWait(2) wOpen(7,8,21,73,"gr+/bg",1,9) wTitle("Line Types","","T","C") wTitle("Key or Wait","","B","C") wTitle("Horizontal","r/bg","B","L") FOR f = 1 TO 11 ttype:=PADL(alltrim(str(f)),2) wLeft(f+1," Type "+ttype+":") wHline(f+1,15,09,f,"r/bg") NEXT wTitle("Vertical","b/bg","B","R") @wRow(2),wCol(44) say "Types" @wRow(3),wCol(26) say " 1 2 3 4 5 6 7 8 9 10 11 12" FOR f = 1 TO 12 wVline(5,28+3*(f-1),8,f,"b/bg") NEXT InkeyWait(6) wPop() InkeyWait(1) //********************************************************************* // Demonstrate Boxes //********************************************************************* wSay(12,20," And 14 Types of Boxes","gr+/b") FOR g = 1 TO 3 InkeyWait(2) wOpen(1,1,23,78,"r+/b",1,9) IF g==1 wTitle("Box Types","","T","C") ELSEIF g==2 wTitle("Box Types in Colours","","T","C") ELSEIF g==3 wTitle("Filled Box Types","","T","C") ENDIF wTitle("Press a Key or Wait","","B","C") cpos:=-5 FOR f = 1 TO 14 rpos:=IIF(f>7,13,4) cpos:=cpos+10 IF g==1 wBox(rpos,cpos,rpos+5,cpos+7,f,"gr+/b") ELSEIF g==2 wBox(rpos,cpos,rpos+5,cpos+7,f,clr_strs[f]) ELSEIF g==3 wBox(rpos,cpos,rpos+5,cpos+7,f,clr_strs[f],SUBSTR(fill_chrs,f,1)) ENDIF cpos:=IIF(f==7,-5,cpos) NEXT InkeyWait(6) wPop() IF g==1 wSay(13,26,"- In Different Colours","gr+/b") ELSEIF g==2 wSay(14,26,"- And Fill Them!","gr+/b") ENDIF NEXT //********************************************************************* // Shadow the Boxes //********************************************************************* wSay(15,26,"- And Make Shadows","gr+/b") InkeyWait(2) wOpen(2,7,23,73,"w+/b",5,9,"") wTitle("Boxes with Shadows","","T","C") wTitle("Press a Key or Wait","","B","C") wBox(3,7,9,27,1,"n/bg*"," ") wShadow(3,7,9,27,7) wSay(4,10,"ÛÛÛÛÛÛÛÛ","r+/bg*") wSay(5,10," ÛÛ ","r+/bg*") wSay(6,10," ÛÛ ","r+/bg*") wSay(7,10," ÛÛ ","r+/bg*") wSay(8,10," ÛÛ ","r+/bg*") wSay(8,16,"RILATERAL","b/bg*") wBox(3,39,9,59,1,"n/bg*"," ") wShadow(3,39,9,59,9) wSay(4,42,"ÛÛÛÛÛÛÛÛ","gr+/bg*") wSay(5,42,"ÛÛ ","gr+/bg*") wSay(6,42,"ÛÛÛÛÛÛÛÛ","gr+/bg*") wSay(7,42," ÛÛ","gr+/bg*") wSay(8,42,"ÛÛÛÛÛÛÛÛ","gr+/bg*") wSay(8,51,"YSTEMS","b/bg*") wBox(12,7,18,31,1,"n/bg*"," ") wShadow(12,7,18,31,1) wSay(13,10,"ÛÛÛÛÛÛÛÛ","w/bg*") wSay(14,10,"ÛÛ Þ","w/bg*") wSay(15,10,"ÛÛ Þ","w/bg*") wSay(16,10,"ÛÛ Þ","w/bg*") wSay(17,10,"ÛÛÛÛÛÛÛÛ","w/bg*") wSay(17,19,"EVELOPMENT","b/bg*") wBox(12,39,18,59,1,"n/bg*"," ") wShadow(12,39,18,59,3) wSay(15,46,"Limited","b/bg*") InkeyWait(2) TONE(200,0) //********************************************************************* // Demonstrate Box Clearing //********************************************************************* wTitle("You Can Clear a Box","gr+/b","B","C") InkeyWait(2) wClear(.f.," ",3,7,9,27) InkeyWait(2) TONE(200,0) wTitle("Or Include the Border","gr+/b","B","C") InkeyWait(2) wClear(.t.," ",3,39,9,59) InkeyWait(2) TONE(200,0) wTitle("And You Can Fill It While Clearing","gr+/b","B","C") InkeyWait(2) wClear(.t.,"±",12,7,18,31) InkeyWait(2) wClear(.f.,"±",12,39,18,59) InkeyWait(2) TONE(200,0) //********************************************************************* // Demonstrate Colour Attribute Changing //********************************************************************* wTitle("You Can Also Change the Colour Atribute of any Region.","gr+/b","B","C") InkeyWait(2) wSay(14,10,"See What") wAttrib(.t.,"gr+/r",12,7,18,31) InkeyWait(2) wSay(14,42,"I Mean") wAttrib(.f.,"w+/br*",12,39,18,59) INKEY(1) wAttrib(.f.,"b+/w") INKEY(1) wAttrib(.t.,"w+/g") InkeyWait(6) wPop() InkeyWait(1) //********************************************************************* // Display Headers and Footer for Windows // // Justification, Colour and Delimiters //********************************************************************* wSay(16,20," You Can Position Titles Effortlessly","gr+/b") InkeyWait(2) wOpen(7,10,17,70,"r+/bg*",1,2) wLeft(3," You can center headers.") InkeyWait(1) wTitle("Trilateral Systems","","T","C") InkeyWait(1) @wRow(3),wCol(27) say "Or right and left justify them!" InkeyWait(1) wTitle("LEFT","","T","L") InkeyWait(1) wTitle("RIGHT","","T","R") InkeyWait(1) wCenter(5," You can do the same with footers.") InkeyWait(1) wTitle("Window Library","","B","C") InkeyWait(1) wTitle("LEFT","","B","L") InkeyWait(1) wTitle("RIGHT","","B","R") InkeyWait(1) wCenter(7," You can even choose their colour!") InkeyWait(1) ACOPY(clr_strs,tarray,1,6) wTitle("Trilateral Systems",tarray[1],"T","C") InkeyWait(1) wTitle("LEFT",tarray[2],"T","L") InkeyWait(1) wTitle("RIGHT",tarray[3],"T","R") InkeyWait(1) wTitle("Window Library",tarray[4],"B","C") InkeyWait(1) wTitle("LEFT",tarray[5],"B","L") InkeyWait(1) wTitle("RIGHT",tarray[6],"B","R") InkeyWait(1) FOR f = 1 TO 5 wTitle("LEFT",tarray[1],"T","L") InkeyWait(.01) wTitle("Trilateral Systems",tarray[2],"T","C") InkeyWait(.01) wTitle("RIGHT",tarray[3],"T","R") InkeyWait(.01) wTitle("RIGHT",tarray[4],"B","R") InkeyWait(.01) wTitle("Window Library",tarray[5],"B","C") InkeyWait(.01) wTitle("LEFT",tarray[6],"B","L") // rotate the array temp:=tarray[1] ADEL(tarray,1) tarray[6]:=temp NEXT InkeyWait(2) wCenter(6,"Delimiters can be inserted.","r+/bg*") InkeyWait(2) ACOPY(clr_strs,tarray,7,6) FOR f = 1 TO 5 wTitle("LEFT",tarray[1],"T","L","[]") InkeyWait(.01) wTitle("Trilateral Systems",tarray[2],"T","C","") InkeyWait(.01) wTitle("RIGHT",tarray[3],"T","R","**") InkeyWait(.01) wTitle("RIGHT",tarray[4],"B","R","¹Ì") InkeyWait(.01) wTitle("Window Library",tarray[5],"B","C","³³") InkeyWait(.01) wTitle("LEFT",tarray[6],"B","L","µÆ") // swap first and last elements temp:=tarray[1] ADEL(tarray,1) tarray[6]:=temp NEXT InkeyWait(6) wPop() InkeyWait(1) //********************************************************************* // Demonstrate Text Positioning in a Window // // Justification // Replication // Positioning // Colours // Typing // Scrolling // //********************************************************************* wSay(17,20," Elegant Text Management is Easy","gr+/b") InkeyWait(2) wOpen(1,10,22,70,"w+/g",3,9) wTitle("Text Management","","T","C") InkeyWait(1) wLeft(2,"It's easy to left justify text.") InkeyWait(1) wCenter(4,"And center it too!") InkeyWait(1) wRight(6,"You can right justify, of Course.") InkeyWait(1) wLeft(8," You can replicate any character.") InkeyWait(1) wReplicate(8,35,"þ",24) InkeyWait(1) wCenter(10,"You can also:") InkeyWait(1) wSay(12,10+4,"PUT") InkeyWait(.1) wSay(13,12+4,"TEXT") InkeyWait(.1) wSay(14,14+4,"ANYWHERE") InkeyWait(.1) wSay(15,12+4,"YOU") InkeyWait(.1) wSay(16,10+4,"WANT") InkeyWait(1) wSay(12,46-5," In ",tarray[6]) InkeyWait(.1) wSay(13,44-5," Any ",tarray[2]) InkeyWait(.1) wSay(14,42-5," Colour ",tarray[3]) InkeyWait(.1) wSay(15,44-5," You ",tarray[4]) InkeyWait(.1) wSay(16,46-5," Want ",tarray[5]) InkeyWait(1) //********************************************************************* // Demonstrate Typing and Scrolling //********************************************************************* wType(18,10,"You can emulate a typewriter if you want.","gr+/g",.t.) wType(19,11," And you can turn off the sound, too! ","gr+/b",.f.) wScroll(2,.f.) wType(19,17,"Scrolling your screen can","",.f.) wScroll(1,.f.) wType(19,17,"make your application look","",.f.) wScroll(1,.f.) wType(19,17,"neat. With the TSD Window","",.f.) wScroll(1,.f.) wType(19,17,"Library you can scroll all","",.f.) wScroll(1,.f.) wType(19,17,"or part of a window, with","",.f.) wScroll(1,.f.) wType(19,17,"or without the border. ","",.f.) FOR f = 1 TO 12 wScroll(1,.f.) InkeyWait(.2) NEXT // t,l,b,r,btype,wColor,fill,wno wBox(9,4,19,27,1,"n/bg*") wShadow(9,4,19,27,1) wBox(9,33,19,56,1,"n/bg*") wShadow(9,33,19,56,3) FOR f = 1 TO 6 wSay(10,5," Use Your Imagination ","gr+/r*") wSay(18,34," Use Your Imagination ","gr+/r*") InkeyWait(.1) wScroll(-1,.f.,10,5,18,26) wScroll(1,.f.,10,34,18,55) InkeyWait(.1) wSay(10,5," ** Have a Ball ** ","n/g*") wSay(18,34," ** Have a Ball ** ","n/g*") InkeyWait(.1) wScroll(-1,.f.,10,5,18,26) wScroll(1,.f.,10,34,18,55) InkeyWait(.1) wSay(10,5," CLIPPERING is a joy, ","w+/b*") wSay(18,34," CLIPPERING is a joy, ","w+/b*") InkeyWait(.1) wScroll(-1,.f.,10,5,18,26) wScroll(1,.f.,10,34,18,55) InkeyWait(.1) wSay(10,5," with TSD's Windows ","r+/gr*") wSay(18,34," with TSD's Windows ","r+/gr*") InkeyWait(.1) wScroll(-1,.f.,10,5,18,26) wScroll(1,.f.,10,34,18,55) InkeyWait(.1) NEXT wSay(10,5," **Happy Clippering** ","w+/rb*") wSay(18,34," **Happy Clippering** ","w+/rb*") InkeyWait(2) wScroll(22,.t.) InkeyWait(.5) wPop() InkeyWait(1) //********************************************************************* // Demonstrate Redisplay Feature // // Pop up from the stack // //********************************************************************* wSay(18,20," Screens Can Be Redisplayed From the Stack.","gr+/b") InkeyWait(2) SET SCOREBOARD OFF wOpen(0,0,24,79,"w+/b",5,9,"") wTitle("Redisplay from the Stack","","T","C") win1:=wOpen(8,10,18,70,"r+/bg*",1,2) wTitle("Win 1","","T","C") wCenter(3,"Open First Window") InkeyWait(1) win2:=wOpen(5,5,20,45,"gr+/r",3,2) wTitle("Win 2","","T","C") wCenter(5,"Open Second Window") InkeyWait(1) win3:=wOpen(12,24,16,68,"w+/b",7,2) wTitle("Win 3","","T","C") wCenter(2,"Open Third Window") InkeyWait(1) win4:=wOpen(2,49,22,63,"gr+/g",9,2) wTitle("Win 4","","T","C") wCenter(5,"Open") wCenter(6,"Fourth") wCenter(7,"Window") InkeyWait(2) wDisplay(win1) InkeyWait(.2) wDisplay(win3) InkeyWait(.2) wDisplay(win2) InkeyWait(.2) wDisplay(win4) InkeyWait(.2) wDisplay(win1) InkeyWait(.2) wDisplay(win3) InkeyWait(.2) wDisplay(win4) InkeyWait(.2) @wRow(04),wCol(2) say " Shadows" @wRow(05),wCol(2) say "Information" @wRow(06),wCol(2) say " Is Also" @wRow(07),wCol(2) say " Updated" @wRow(08),wCol(2) say " ---------" @wRow(09),wCol(2) say " Try it" @wRow(10),wCol(2) say " Yourself!" @wRow(11),wCol(2) say " ---------" @wRow(12),wCol(2) say " With F1" @wRow(13),wCol(2) say " F2, F3" @wRow(14),wCol(2) say " and F4" @wRow(15),wCol(2) say " ---------" @wRow(16),wCol(2) say " ESC " @wRow(17),wCol(2) say " to go on " SET KEY 28 TO Dwin1 SET KEY -1 TO Dwin2 SET KEY -2 TO Dwin3 SET KEY -3 TO Dwin4 // From Clipper 5.0 Source Files InkeyWait(60) FOR f = 1 TO 5 wPop() NEXT SET KEY 28 to SET KEY -1 to SET KEY -2 to SET KEY -3 to InkeyWait(1) //********************************************************************* // Demonstrate Moving and Sliding a Window //********************************************************************* wSay(19,20," You Can MOVE or SLIDE a Window!","gr+/b") InkeyWait(2) wOpen(0,0,24,79,"w+/b",5,9,"") wTitle("Moving and Sliding Windows","","T","C") win1:=wOpen(8,10,18,70,"r+/bg*",1,2) wTitle("Win 1","","T","C") wCenter(3,"Open First Window") InkeyWait(1) win2:=wOpen(5,5,20,45,"gr+/r",3,2) wTitle("Win 2","","T","C") wCenter(5,"Open Second Window") InkeyWait(1) win3:=wOpen(12,24,16,68,"w+/b",7,2) wTitle("Win 3","","T","C") wCenter(2,"Open Third Window") InkeyWait(1) win4:=wOpen(2,49,22,63,"gr+/g",9,2) wTitle("Win 4","","T","C") wCenter(5,"Open") wCenter(6,"Fourth") wCenter(7,"Window") InkeyWait(1) win5:=wOpen(2,10,12,29,"r/gr*",9,2) wTitle("Win 5","","T","C") wSay(2,3,"Watch me move!") InkeyWait(2) wSay(2,3,"8 Left ") InkeyWait(.3) wMove(0,-8) InkeyWait(.3) wSay(3,3,"10 Down") InkeyWait(.3) wMove(10,0) InkeyWait(.3) wSay(5,3,"7 Up") wSay(6,3,"30 Right") InkeyWait(.3) wMove(-7,30) InkeyWait(1) wSay(2,3," Now, Try") wSay(3,3," Yourself") wSay(4,3," with ") wSay(5,3," The") wSay(6,3," Cursor ") wSay(7,3," Keys") SET KEY 5 TO Wup SET KEY 24 TO Wdn SET KEY 19 TO Wlt SET KEY 4 TO Wrt SET KEY 1 TO Uplt SET KEY 18 TO Uprt SET KEY 6 TO Dnlt SET KEY 3 TO Dnrt InkeyWait(0) SET KEY 5 to SET KEY 24 to SET KEY 19 to SET KEY 4 to SET KEY 1 to SET KEY 18 to SET KEY 6 to SET KEY 3 to win6:=wOpen(8,20,15,58,"b/bg*",1,3) wTitle("Win 6","","T","C") wSay(2,3,"Watch me slide!") InkeyWait(2) wSay(3,3,"Slide ") wSay(4,3,"10 Right") InkeyWait(.3) wSlide("R",10) InkeyWait(.3) wSay(4,3,"6 Up ") InkeyWait(.3) wSlide("U",6) InkeyWait(.3) wSay(4,3,"15 Left") InkeyWait(.3) wSlide("L",15) InkeyWait(.3) wSay(4,3,"10 Down ") InkeyWait(.3) wSlide("D",10) InkeyWait(3) FOR f = 1 TO 7 wPop() NEXT //********************************************************************* // End The Demonstration //********************************************************************* InkeyWait(1) SETBLINK(.T.) wSay(20,20," Save Screens or Windows to MEM or ASCII Files","g+/b") InkeyWait(1) wSay(21,20," More Features Yet to Come","gr+/b") InkeyWait(1) wCenter(22," Thank You for Watching ","w+/b*") InkeyWait(3) SETBLINK(.F.) wScroll(22) InkeyWait(2) //********************************************************************* // Thank You Screen //********************************************************************* wOpen(5,5,19,74,"bg+/r*",3,10,"±") //wTitle("Trilateral Systems Development Ltd.","","T","C","[]") //wTitle("P.O. Box 66 Kitchener Ontario Canada N2G 3W4 - (519)758-1679","","B","C","[]") wReplicate(1,1,"ß",68,"gr+/w*") wReplicate(13,1,"Ü",68,"gr+/w*") wOpen(9,27,14,50,"b/bg",3) wSay(1,4,"Trilateral") wSay(1,4,"T","R+/bg") wSay(2,4,"Systems") wSay(2,4,"S","GR+/bg") wSay(3,4,"Development Ltd.") wSay(3,4,"D","W+/bg") wSay(4,4,"(519)-758-1679") InkeyWait(2) wSay(00,0," says ","b/bg") wSay(00,9,"T","R+/bg") wSay(00,10,"S","GR+/bg") wSay(00,11,"D","w+/bg") InkeyWait(1) wSay(01,0," Thank You for Watching ","gr+/R*") InkeyWait(1) wSay(02,0," Source Code ","W+/b*") InkeyWait(1) wSay(03,0," Is Available ","n/gR*") InkeyWait(1) wSay(04,0," At Very Low Cost ","r+/g*") InkeyWait(2) wSay(05,0," ..Please Contact.. ","w+/rb*") InkeyWait(5) wPop() wPop() wClear(.f.,"°") //********************************************************************* // Copyright Screen //********************************************************************* wOpen(2,3,21,76,"b/bg",3,14) wSay(02,5,"ÜÜÜÜÜÜÜÜÜÜÜÜÜ ","r+/bg") wSay(03,5,"ß Û ß ","r+/bg") wSay(04,5," Û ","r+/bg") wSay(05,5," Û ","r+/bg") wSay(06,5,"ÜÜÜÜÜÜÛÜÜÜÜÜÜÜ","gr+/bg") wSay(07,5,"Û ÜÛÜ Û","gr+/bg") wSay(06,11,"Û","r+/bg") wSay(07,10,"ÜÛÜ","r+/bg") wSay(08,5,"Û ","gr+/bg") wSay(09,5,"ßßßßßßßßßßßßßÛ","gr+/bg") wSay(10,5," Û","gr+/bg") wSay(11,5,"Û ÜÜÜÜÜÜÜÜÜÜ Û","gr+/bg") wSay(12,5,"ÛÜÛÛÜÜÜÜÜÜÜÛÜÛ","gr+/bg") wSay(11,7,"ÜÜÜÜÜÜÜÜÜÜ","w+/bg") wSay(12,7,"ÛÛ","w+/bg") wSay(12,16,"Û","w+/bg") wSay(13,5," ÛÛ Û ","w+/bg") wSay(14,5," ÛÛ Û ","w+/bg") wSay(15,5," ÛÛ Û ","w+/bg") wSay(16,5," ÛÛ Û ","w+/bg") wSay(17,5," ßßßßßßßßßß ","w+/bg") wSay(07,20,"RILATERAL") wSay(12,20,"YSTEMS") wSay(16,20,"EVELOPMENT Ltd.") wSay(03,45,"P.O. Box 66") wSay(04,45,"Station 'C'") wSay(05,45,"Kitchener, ON, Canada") wSay(06,45,"N2G 3W4") wSay(07,45,"(519)758-1679") wHline(08,40,30,1,"b+/bg") wSay(09,43,"TSDWIN10.LIB is released","r/bg") wSay(10,43," into the Public Domain","r/bg") wHline(11,40,30,1,"b+/bg") wSay(12,40," You May Register and Receive","n/bg") wSay(13,40,"the latest version with source","n/bg") wSay(14,40,"code for $25.00 CDN plus $5.00","n/bg") wSay(15,40,"to cover shipping and handling.","n/bg") wSay(17,44,"Please specify format!","gr+/bg") wTitle("Press a Key to End Demo","","B","C") InkeyWait(0) wPop() SET COLOR TO SET CURSOR ON CLS QUIT //********************************************************************* // End of Windemo.prg //********************************************************************* //********************************************************************* // SET KEY Procedures for User Sliding //********************************************************************* PROCEDURE Wup wMove(-1,0) RETURN PROCEDURE Wdn wMove(1,0) RETURN PROCEDURE Wlt wMove(0,-1) RETURN PROCEDURE Wrt wMove(0,1) RETURN PROCEDURE Uplt wMove(-1,0) wMove(0,-2) RETURN PROCEDURE Uprt wMove(-1,0) wMove(0,2) RETURN PROCEDURE Dnlt wMove(1,0) wMove(0,-2) RETURN PROCEDURE Dnrt wMove(1,0) wMove(0,2) RETURN //********************************************************************* // Set Key Procedures for Redisplay from Stack //********************************************************************* PROCEDURE Dwin1() wDisplay(MEMVAR->win1) RETURN PROCEDURE Dwin2() wDisplay(MEMVAR->win2) RETURN PROCEDURE Dwin3() wDisplay(MEMVAR->win3) RETURN PROCEDURE Dwin4() wDisplay(MEMVAR->win4) RETURN //********************************************************************* // Nauntucket Source File Function //********************************************************************* /*** * InkeyWait( ) --> nINKEYCode * Similar to INKEY(), except services SET KEYs * */ FUNCTION InkeyWait( nSecs ) LOCAL nKey LOCAL bKeyBlock DO WHILE .T. nKey := INKEY( nSecs ) IF (bKeyBlock := SETKEY(nKey)) != NIL EVAL(bKeyBlock, PROCNAME(2), PROCLINE(2)) ELSE EXIT ENDIF ENDDO RETURN( nKey )