Dec 232017
 
Additional uncompiled "coaches" which can be installed in WordPerfect 6.0 for DOS. Just retrive the text files in WordPerfect, rename them using ".wpm" extension and give them a descriptive name. They show up in coach men
File WPCH60.ZIP from The Programmer’s Corner in
Category Word Perfect
Additional uncompiled “coaches” which can be installed in WordPerfect 6.0 for DOS. Just retrive the text files in WordPerfect, rename them using “.wpm” extension and give them a descriptive name. They show up in coach men
File Name File Size Zip Size Zip Type
COACH.DOC 293320 57423 deflated
WPCHGN01.TXT 35214 6447 deflated
WPCHLB01.TXT 11978 3711 deflated
WPCHLBTB.TXT 71490 12742 deflated
WPCHLIBR.TXT 320659 42340 deflated
WPCHMG01.TXT 96170 14322 deflated
WPCHMG02.TXT 150895 19841 deflated
WPCHMG03.TXT 72260 9209 deflated
WPCHMGTB.TXT 35110 7409 deflated
WPCHPS01.TXT 67635 10271 deflated
WPCHTB01.TXT 54477 10029 deflated
WPCHTB02.TXT 23905 4790 deflated
WPCHTB03.TXT 16251 4399 deflated
WPCHTB04.TXT 18655 4761 deflated
WPCHTB05.TXT 25875 5472 deflated
WPCHTB06.TXT 31524 5940 deflated
WPCHTC01.TXT 45891 7978 deflated
WPCHTC02.TXT 36785 6404 deflated
WPCH_AT1.TXT 76304 11486 deflated
WPCH_BK0.TXT 194288 30178 deflated
WPCH_BM0.TXT 115208 16204 deflated
WPCH_BR0.TXT 113504 16430 deflated
WPCH_BTB.TXT 36357 8089 deflated
WPCH_BU0.TXT 35567 8692 deflated
WPCH_CA0.TXT 48472 8846 deflated
WPCH_CC2.TXT 40041 8328 deflated
WPCH_DI0.TXT 35730 7983 deflated
WPCH_FTN.TXT 66392 13132 deflated
WPCH_GL0.TXT 70338 11771 deflated
WPCH_HF0.TXT 43608 9346 deflated
WPCH_HT0.TXT 89366 14104 deflated
WPCH_HY0.TXT 80606 11488 deflated
WPCH_IF2.TXT 56524 10717 deflated
WPCH_IN1.TXT 24302 5267 deflated
WPCH_MG0.TXT 11387 3136 deflated
WPCH_MGL.TXT 9182 2946 deflated
WPCH_MGT.TXT 9110 2909 deflated
WPCH_MR0.TXT 53573 10283 deflated
WPCH_OT1.TXT 98106 16526 deflated
WPCH_PNB.TXT 57666 9303 deflated
WPCH_PXY.TXT 73764 12476 deflated
WPCH_QL0.TXT 78319 12343 deflated
WPCH_SR1.TXT 33385 8256 deflated
WPCH_TBL.TXT 32219 6480 deflated
WPCH_TC0.TXT 10191 2966 deflated

Download File WPCH60.ZIP Here

Contents of the COACH.DOC file


WPCN
#g0Vrv0`7"%1m0(0T
0c
C"2S"(|
0U
0T
[email protected]?Z0M\0L0U.
01
0:Pao>&5 Q q1CYo 7O k 7&W"} U($(,!$00`(#(#(;$2,e0

.3

0Coach Macro Tools(p5$ 0(,!$00`(#(#(3/K$
!Wd2d 0Command>'
6xd6>
Y6:n74ProcedureType:`Procedure Syntax:`230PurposePurpose:08I6ParametersParameters:0`4Dh]2FunctionType:`Function Syntax:0`0`.ReturnReturnValues:0ReferenceStandard Coach Header SampleGlobal VariablesTutorialBlockEditCancelCoachCancelMenusCancelDialogsCheckColorSetColorSchemeCommentsBoxEditMenuExitDlgProcExitDocProcExitWPProcFakeItFileMenuFontMenuGraphicsMenuHelpMenuLayoutMenuMenuBarMenuPopNoSubMenuNotFoundCoachPleaseWaitQuitCoachReplaceProcRestoreStatesSavingDocScreenSetupSetBoxSizeShowMenuToolsMenuViewMenuWindowMenuExitTableEditTableEditControlTableEditCtrl2EditTableTblColEditButtonControlDlgFilter.b4p`$Roman-WPType 1<
9p`(DlgFilterDoEditFilterFilterHintHintHotSpotHotSpotInvalidControlInvalidControlKeyFilterKeyFilterLstBxControlLstBxControlHbI?xxxXXx,STB:aCa/XalTXv1Q8Q/Ql5{qw0S8S`Sg/~)Z8ZZ3g]T8XT%T8TTr5dddXVdr5dddXd,-n2```X`,~)P8PPKI=xSxxK1`C`X`K?/iCiXi6'X8XX6TIySy/yl+9dCd`Xdg/WG}S}`}g/#88Ae*8*eSSSSSSSSSS**eeeJ}fvf]88yfeoXfxooo8e8eS8S\JfP8]a1']1a[d]BG6e^V]S8e8e8*888888*?8488]SSMenuBarControlMenuControlMessageBoxMessageBoxNoBlockNoBlockNoSelectNoSelectOpenDocumentOpenDocumentOverviewOverviewPostItPostItWelcomeWinEdControlWinEdControlXYFilterXYFilterTableBlockEditTableBlockEditPostANotePostANotePostANotePostANote<6X9`+Courier1p
p`Palatino24n
p PalatinoBoldR62
p`SymbolwU''p`*ITC Zapf Dingbats3p`4New Century Schoolbook<6X`#"WP BoxDrawing02Ap`Helvetica52Ap"HelveticaBold
q
#|=9
4LIBRARY.STY
"BDO??=K'"u^2,Qdd/@@[email protected]@}[email protected]>@ddHQdPfO:Yg33`[email protected]@dH2HHHHHHHHHHHHi}Q}Q}Q}Q}QuPuOuOuOuOD3D3D3D3iaaaaffffsX}QfaasXapd}Q}Q}QPPPPfuOuOuOuOYYYYYYggD3D3D3D3E`o1o1o1o1p4iiiiaaBBBbAbAbAbA===ffffffsXKKKfo1iBbA=sXsXfafuOD33aNN2de,@LLdddBMdHdH//QQd//``hh+MH'ddddFdf"u^*%CSS'55BS*5*7SSSSSSSSSS**SSS6hetaZ}8:q\\lRn|qk`k545SS@wb}doTl{ko`f969WS?JYEZF4P[0/Y.\V[X><6[LrLNE9)9W?+????????????`hJhJhJhJhJisEcFcFcFcF>0>0>0>0}\VVVV{[{[{[{[`NhJZVV`NVcYhJhJhJsEsEsEsEZcFcFcFcFzPzPzPzPzPzP[[>0>0>0>[email protected]}\}\}\}\VV{o>o>o>TT00VNB+RX*7HHWWW>CWCWC**OOS++RR^^*OC'WWWW>WY"h;].8S88S\*\*.SSSSSSSSSS..\\\J88SP!P8MSn~~~~\\\w.\77\\\wwwweeC\.wR)EreewwwwIeenR\\\wwwrrr\[email protected]@@@@@@@@@@@xio\eEfRfIfRxe|W87y\r\`xWlRx\\]\ceIfIs`Wx\rrxifIxe877x\s``rigewiiiiiiiiiiiiiiiiiiiiiiIIIIIIIeeeeeeeeeeeeeeeeeeeeee777777777777\\\\\\\````````````rrrrrrrrrrrrrrrrrrrrrr"$$.xs\~_q~R\Z`s|y}tvvruvstswI.EAAooz[[octhL}}Mttxs\~_q~R\Z`s|y}tvvruvstswI.EAAooz[[octhL}}Mtt"u^.1A]]"88Se.8..]]]]]]]]]]..eeeJ{xxxxoD]ooxioxuuf8e8eS8]]J`S8Zf51c5fS`]JMAfZZZP8e8e8.888888888888`x]x]x]x]x]xJxSxSxSxSD5D5D5D5fSSSSffffuZx]`SSuZSo`x]x]x]xJxJxJxJ`xSxSxSxSZZZZZZffD5D5D5D5]co5o5o5o5o5ffffSSxJxJxJiMiMiMiMoAoAoAffffffuZfPfPfP`o5fxJiMoAuZuZ`SfxSD55SNe.eS1JGG]]]82]8{{]8""AA]++SSff"A8'eeeeCef"BDO??=K'"h^?7e}};PPc}?P?R}}}}}}}}}}??}}}PUVzPMP}}Ze}[email protected]?y>z|SQMlln^P>>>AzzSSSzQzQzQzQMMMn^^^>[email protected]@zNa?}7P__}}}Sa}Z}Z;;ee}::xx6`Z'}}}}W}"u^43^hh3DDQh4B4Dhhhhhhhhhh44hhhB}wnJMuxes{[email protected]>`m98j8ngmjJHAm[\^SD2DhL4LLLLLLLLLLLLs}Y}Y}Y}Y}Y}SwTwTwTwTJ9J9J9J9nggggmmmms^}Ykggs^gwk}Y}Y}YSSSSkwTwTwTwT``````mmJ9J9J9J9Mju8u8u8u8v9nnnnggJJJeHeHeHeHAAAmmmmmms^{S{S{Sku8nJeHAs^s^kgmwTJ99gNO4bi3BVVhhhKQhPhP33^^d33bbqq3^P'hhhhKhk"h^[email protected]?UUeARAUAAS]`UPU}_ohiNxHFF]ZQrsuhU>U_A____________ooooohiiii]H]H]H]Huouooohhhhiiiixxxxxx]H]H]H]H`FFFFH]]]ZZZZQQQuhhhF]ZQuui]HHNcA{@Sll^edd??vv}@@{{?v)d'^"BDO??=K'"BDO??=K'"h;]8CdCCdn2n28dddddddddd88nnnYCCd`(`8\dnnn8!nBBnnnyyPn7c1RyyXyycnnnndccccccccyMMMMMMMMMMMM~nyRzczXzcyhCBnnshcnnonvyXzXshn~zXyCBBnss~|y~~~~~~~~~~~~~~~~~~~~~~XXXXXXXyyyyyyyyyyyyyyyyyyyyyyBBBBBBBBBBBBnnnnnnnssssssssssss"$$8nrcnksX7SNNmmw}\]nrcnksX7SNNmmw}\]"u^8;Noo)CCdy8C88oooooooooo88yyyYQo~zCyCydCooYsdCkz?;w?zdsoY]Nzkkk`CyCyC8CC!CCCCCCCCCCsoooooYddddQ?Q?Q?Q?zddddzzzzkosddkdsoooYYYYsddddkkkkkkzzQ?Q?Q?Q?ow?????zzzzddYYY~]~]~]~]NNNzzzzzzkz`z`z`s?zY~]NkksdzdQ??dNy8yd;YUUoooC_}.PPPPxRRRPRRRxxxxxkkkkk]C]C]C]Cxxxxxxxxxxxxxkkkkkkkkxxxxxx]D]D]C]DxCCCCCxxkkk]]]]PPPxkkkCk]Pxxxk]DDxNgPxXXxuSS<<<KK'd"u^88Goo&CCNu8C88oooooooooo88uuuoz8dozz888^oCoodoo8oo,,d,ooooCd8oddddC4Cu>CCCCoCCCCCCCzooooodoooo88888888ooooooooodoozodppoooddddooooooooooooo88888,88ddo,o,o,o,o,ooooooCCCddddz8z8z8oooooodzdzdzdoo,oCdz8ddoooo888oNd/dIIkkkEEkHddH//IId//dd+IH'xxxxCxx"u^7B]nn/BBMs7B77nnnnnnnnnnBBsssxx7nxxxB7B\nsnxnxnBxx77n7xxxxMnBxnnncM3MsBGBBBnCCCBCCCxnnnnnnnnnn77777777xxxxxxxxxnnxxxnyxnnnnnnnxnnnnxxxxxxxx78787778nnx7x7x7x7x7xxxxxxMMMnnnnxBxBxBxxxxxxnxcxcxcxx7xMnxBnnxxxn788xNcBxHHiiiDDiGccG++PPc..cc+TG'vvvvBsv"h^SSk9dduSdSSSS1SSSSdSCCCdSdNd]ddddddddddd,SSSSSSSSSSSSSCSSCCCCC,dddSSSCdSSSSNFnnhhllFFnnFFAnnl'd"h^CCU.PP]CPCCCCCxCCCqPxC55x5PxCxxxxP>PJPPPPPPPPPPPxCCCCCCCCxxxxxxCCCCC5CCxx55555PPPxxxxCCCxxxx5PxCxxCCCNx8xXXSSVxxV88XXx88xx4X%V'P"u^BOp8OO\BOBBOOBOBOoOBBB\Ov\=\OUOOOPPPOPPPBBBBBBBBBCBCBBBCBBBBB\\\OOOvvvB\OBCCNvOWW~~~RR~UvvU33``v77vv3eU'O"h^RbFbbsRbRRbb RbRbbRRRsbsMsbjbbbdddbddd(RRRRRRRRRSRSRRRSRRRRR([email protected]@xxEE
@~E^2AEd2MMd2A25dddddddddd66axMb|t~V5VddfkWnY?aq;>k;qdnlUUCo[_YWdddd2ddddddd !dddddddn>fffffWYYYYM;M;M;M;qddddooooYfoddYe|nfffWWWWnYYYYaaaaaaqqM;M;M;M;wb>k;;]mp`2Adobe GaramondRegular-
p,Adobe GaramondBoldM62
p`SymbolU''p`*ITC Zapf Dingbatsw3p`4New Century Schoolbook<6X`#"WP BoxDrawing< 9+CourierBold.b4p`$Roman-WPType 11p,Roman-WPBoldType 1A(
Ap`$WP MathAType 1M0nAp`$Helve-WPType 14Ap,Helve-WPBoldType 1*4\Lp`0Dutch 801RomanSpeedo+*p.Dutch 801BoldSpeedo:p`BWP MultinationalA RomanType 1\p`0WP OverflowSetType 1<9p`+2Courier 10RomanSpeedo?xxxXXx,!?~)Z8ZZag]8X(%T8T/TTr5dddX|d#r5dddXdKiSi/iI:1lClXla5+oCXX(z-eCe/XeTS?xxxX|Xx#~^X
uKXTTKXoT^Xo7[C[X[~
LBTr5bCb+Xbf';CpX rSdt
BmPmmTC?vPv+vfTOd+f1`C`X``j0gCgXgIdV-:sPss:|P||Hd`7UCU,,/XUE5UCU,,xXUtT
8sCsXsu
(=C=X=x>xxx,,cXxQMS PS 815Writer IINTX5&6(&*1$t'QMSPS815.PRShhhhhhhhPUBD/DOC3H
S0664MacroCode
hX
hXb(8
c$00`(#(#
!WGXXXHX,WritingInteractiveCoachesforWordPerfect6.0forDOS :Thisdocumentdescribeshowtowritecoaches(interactivecomputertrainingmodules)forWordPerfect6.0forDOS.Thedocumentisdividedintofourparts:o0`Part1:TutorialExplainswhatacoachis,andhowtowriteone.=`(#`(# o0`Part2:ReferenceDetailstheuserdefinedfunctionsandprocedures_ containedintheWPCHLIBR.WPMandWPCHLBTB.WPMlibraryfilesforusewithcoaches.
`(#`(# o0`Part3:CoachMacroToolsSeveralcoachbuildingmacrotoolsaccompany
thisdocument.Thispartbrieflyintroducesthetools,andexplainshowtousethem.
`(#`(# o0`Part4:AppendixUsefulreference(suchaskeyvalues,etc.)forusewhenW
writingcoaches.
`(#`(# b Part1

Tutorial WhatIsaCoach Acoachisaninteractivecomputeraidedinstructor.AsusedinWordPerfect,coachesteachWordPerfectfeatures,suchashowtoinsertabulletcharacter,howtocreateanoutline,andhowtosearchforandreplacewordsandphrases.Unlikemostotherformsofcomputeraidedinstruction,coachesareintimatelylinkedwithWordPerfectitself.Whenyouuseacoach,you'rereallyusingWordPerfect.Inthisway,coachesguideusersthroughatask,whileatthesametimeperformingthetask.Forexample,whilelearninghowtoinsertabulletcharacter,thebulletisaddedtotheuser'sdocument.Whenfollowingtheoutlinecoach,usersactuallybuildanoutlinewhiletheyarelearningthisfeature.AprimaryuseofcoachesistoexplainaWordPerfectfeature,butthisisnottheironlyuse.Coachescanalsobeusedtowalkusersthroughtheprocessoffillingoutacustommadetemplate,toexplainstandardoperatingproceduretoanewemployee,orevenasageneralteachingtoolforlearningaboutcomputersandtheMSDOSoperatingsystem.CoachesareReallyMacros WordPerfectcoachesaremacros.Thisallowsanyonewhoknowsthemacrolanguagetowriteacoach.NospecialknowledgeoftheinnerworkingsofWordPerfectisrequired.It'simportanttonotethatwhileanyonecanwriteacoachforWordPerfect,itdoesrequireasignificantknowledgeoftheWordPerfectmacrolanguage.Inadditiontoageneralfamiliarityofthemacroslanguage,youshouldhavespecificknowledgeofthefollowingadvancedmacrotechniques:o`Customdialogboxes 7 o`Userdefinedfunctions! o`Userdefinedprocedures"! o`Arrays#" o`Passingvariablesbyaddress$# o0`Systemvariables(particularly?Dialogand?DialogControl)t% $`(#`(# Ifyouareunfamiliarwiththeseadvancedtopics,youmaywishtofirststudytheWordPerfectmacrolanguage,andhowitisused.WordPerfectcomeswithanonlinehelpreferenceforthemacrolanguage(chooseHelpMacros);thereferenceisalsoavailableindiskandprintedformdirectlyfromWordPerfectCorp.Inaddition,agoodsourceoflearningabouttheWordPerfectmacrolanguageistostudythemacrosthatcomewiththeprogram.TheseincludeALLFONTS.WPM,BULLET.WPM,EDITCODE.WPM,andGLOSSARY.WPM.-(- CoachesAreBuiltUsingaPremadeLibraryofFunctions AllofthecoachesthatcomewithWordPerfectrelyonasetofuserdefinedfunctionsandprocedures.Thesearestoredina"library"file,WPCHLIBR.WPM.TheWPCHLIBR.WPMfunctionsandproceduresareselfcontainedroutinesthatprovidecoacheswithcorefunctionality.Inthisway,youdon'thavetowriteyourcoachesfromscratch.Justaccessoneoftheover50functionsandprocedureswheneveryouneedit,justasyouwouldabuiltinmacrocommand.Part2ofthisdocumentdetailstheWPCHLIBR.WPMfunctionsandprocedures,andhowtousethem.AsitcomeswithWordPerfect,theWPCHLIBR.WPMfilehasbeen"stripped";thetextportionofthemacrohasbeenremoved,andonlythecompiledportionremains.However,anunstrippedversionoftheWPCHLIBR.WPMfileisavailablefromWordPerfect.Printthisfileforacloserlookatthefunctionsandprocedurescontainedwithinit.AccessingCoachesThroughHelpK IfyouarewritingcoachestoexplainafeatureorfunctionofWordPerfect,youcanhavethemappearintheCoachdialogboxwhentheuserselectsHelp,Coaches.Thelistofcoachesthatappearsisderivedfromthecoachfilesintheuser'sMACROSdirectory(theMACROSdirectoryisspecifiedintheLocationofFilesdialogbox).Todisplaythelistofcoaches,WordPerfectscansthedirectoryforfilesusingthepatternWPCH_xxx.WPM,wherexxxisanythreevalidDOScharacters.ForexampleWPCH_ABC.WPM,orWPCH_123.WPM.ForthosefilesthatmatchtheWPCH_xxx.WPMnamingconvention,WordPerfectpeeksintothefileandretrievestheDescriptiveNamedocumentsummaryfieldcontainedwithinit.ThisDescriptiveNameisshownintheCoachdialogbox.TodisplayyourowncoachesintheCoachdialogbox,besuretheyaregivennamesusingtheWPCH_xxx.WPMpattern,andbesuretoaddaDescriptiveNametothefilewhenyousaveit.Pleasenote:WordPerfectsortsthedescriptionsoftheavailablecoachesintheCoachdialogboxusingaspecificfilenameorder(thedescriptionsarenotalphabetizedwithintheCoachdialogbox.WordPerfectsortsthecoachesusingthelastthreecharactersofthefilenamethe"ABC"inthefileWPCH_ABC.WPM.WordPerfectsortsthefilesbasedonthelastthreecharactersinthefollowingsequence:o`Firstcharacter,(, -(- o`Thirdcharacter o`Secondcharacter NoticethatWordPerfectsortsthesecondcharacterofthethreecharactergroupinglast.Therefore,acoachnamedWPCH_AB1.WPMissortedbeforeWPCH_AA2.WPM.BuildingaCoachH Coachesdon'thavetobelargeorsophisticatedtobeuseful.Thesizeandcomplexityofacoachstemsmostlyfromthetaskthecoachisdesignedtoteach.AcoachthatdetailshowtoswitchthemodeofWordPerfect(Text,Graphics,Page)isboundtobemuchsimplerthanacoachthatcoversthemergefeature.Forthisdocument,we'llconcentrateoncreatingcoachesofmodestsize.Suchcoachesareeasiertoexplain,andtheyserveasexcellentspringboardsforwritingyourowncoaches.CoachesthatinteractwithdocumenttextareinherentlymoredifficulttowritethancoachesthatsimplyshowhowtoaccesssomefeatureofWordPerfect.WewillfirstshowyouhowtowriteacoachthatshowshowtoaccessaWordPerfectfeature,thenhowtowriteacoachthatmanipulatesdocumenttext.WritingtheBasicFeatureCoachq WordPerfectusesmultiplelevelsofmenus,commands,anddialogboxestoallowsuserstoaccessitsfeatures.Newusersmayhavedifficultyusingthesefeaturesiftheydon'tknowhowtogettothem.AbasiccoachisonethatshowswheretofindthecommandsandoptionsthatcontrolWordPerfect'sfeatures.Thecoachstartswiththeheader,shownbelow.Theheaderincludesablockthatprovidesthenameofthecoach,adescription,andtheauthorofthecoach.Arevisionhistory,ifany,follows.Nextisaseriesofvariableassignmentsandcallstouserdefinedfunctionsandprocedures(containedintheWPCHLIBR.WPMlibraryfile)thatsetupthecoachandprepareitforexecution.Thefollowingistheheaderforacoachthatallowsuserstoopenanewdocument(thissamplecoachaccompaniesthisdocument,andisnamedWPCH_XX1.WPM).Pleasenote:ThepurposeoftheWPCHLIBR.WPMfunctionsandproceduresisnotdetailedhere.EachfunctionandprocedurecontainedwithintheWPCHLIBR.WPMlibraryfileisdescribedinPart2ofthisdocument.//Header6
hX69"//*********************************************69"r"-(-
Xh////NAME:WPCH_XX1h//NameofCoach //PURPOSE:Opennewdocument//PurposeofCoach //AUTHOR:G.McCombh//AuthorofCoachk ////*********************************************//RevisionHistory////Error(Off!)`h//Turnofferrorchecking
//Makethefollowingvariablesglobalsotheycanbeused//intheWPCHLIBR.WPMlibraryfileGlobal(ScrnMode;MsgAdj;DefTitle;CancelMsg)Global(FakeBtns;HotElement;SaveScrn)DefTitle="MainTitleofCoach"h//Maintitlename)y Title="Coach"h//Supplementarytitleb ScrnMode=?ScreenHigh24h//HeightofscreenK CancelMsg=0`h//??4 Use("WPCHLIBR.WPM")h//Sharedlibraryfile ColorScheme()h//SetcolorschemeforCoaches ScreenSetup()h//SetupscreenforCoach MsgAdj=DlgMessage()h//Adjustmessageplacementq //*************************************************************Followingtheheaderisthemaincoachprogram.Themainprogramcallsroutinesinthebodyofthecoachmacro.Unliketheheader,abovewhichisfairlystandardacrossmostcoachesthemainprogramcandiffergreatlyfromonecoachtothenext.6
hX6h*//*********************************************6h**
Xh////MAINPROGRAM:Opennewdocument]&!% ////*********************************************Cancel(Off!)`//Inhibitcancelkeyfromstoppingmacro)h$( Call(WelcomeDlg)//CallWelcomeDlgroutine*:&* Call(OpenNewDoc)//CallOpenNewDocroutine+#'+ ERROR(On!)`//Turnonerrorchecking,(, ONERROR(NoMoreDocs)//Callthisiferroroccurs-(- FileNew`h//Attempttoopennewdocument Message(&tbox;1000)h//Ifattemptsuccessful,display `h//message#1000Result=MessageBox("Coach";&tbox;6)QuitCoach()`//QuitcoachT //*********************************************Theremainderofthecoachcontainstheroutinesspecifiedinthemainprogram.Thiscoachusestworoutinesandoneuserdefinedprocedure:o0`WelcomeDlgThiscalledroutinedisplaysa"Welcometothiscoach"dialog
box.Thisdialogboxbrieflyexplainsthepurposeofthecoach.
`(#`(# o0`OpenNewDocThiscalledroutineshowsusershowtoopenanewdocumentn usingtheNewcommandintheFilepulldownmenu.
`(#`(# o0`MessageThisuserdefinedprocedurereturnsspecifiedmessagetext.)y`(#`(# TheWelcomeDlgroutinedisplaysadialogboxthatintroducesthecoachtotheuser.TheWelcomeDlgroutinefirstcallsauserdefinedcoachprocedurecalledMessagethatisincludedlaterinthecoach.TheMessageprocedurecontainsthetextofnearlyallthemessagesdisplayedbythecoach.Themessagetextisgroupedinoneplacetomakeiteasiertomodifythecoachatalaterdate.TheWelcomeDlgroutinethencallsaWPCHLIBR.WPMlibraryfunction,Welcome.ThisfunctiondisplaysadialogboxwiththemessagepreviouslyretrievedbytheMessageprocedure.Tobeasuserfriendlyaspossible,acoachshouldallowuserstoquitandreturntotheWordPerfectdocument.TheWelcomedialogboxofferstwocontrolbuttons:ContinueandQuit.Iftheuserchoosestoquit,theWelcomefunctionreturnsavalueof1,andtheQuitCoachprocedure(containedinWPCHLIBR.WPM)iscalled.Otherwise,thecoachreturnstothemainprogram,whereitcontinueswiththenextstep.Note:thefollowingWelcomeDlgroutineisratherstandard.Youcanuseitasaspringboardforyourowncoaches.6
hX6a6//********************************6a66
Xh//Subroutine:Welcome//********************************Label(WelcomeDlg)Message(&tbox;10)h//Getmessage#10,(, Result=Welcome("Coach";&tbox)h//DisplayWelcomedialogbox-(- If(Result=1)`h//IfWelcomeboxcancelled QuitCoach()h//Quitcoach EndifReturn`h//Elsereturntomainprogramk //********************************FollowingistheOpenNewDocroutine,whichisthe"working"portionofthecoach.ItstepsusersthroughtheprocessofopeninganewdocumentusingtheNewcommandfromtheFilepulldownmenu.Followingisastepbystepexplanationofwhattheroutinedoes.6
hX6:1Label(OpenNewDoc)6:;

Xh6
hX6;2//*********************************************6;;

Xh6
hX6<3//6<Xh6
hX6N=4//SUBROUTINE:OpenNewDoc6N==W

Xh6
hX6->5//6->f>@
Xh6
hX6>6//PURPOSE:WalkuserthroughFileNewmenu6>#?)y
Xh6
hX6?7//[email protected]
Xh6
[email protected]//*********************************************[email protected]@K
Xh6
hX6A9Message(&tbox;100)6AA4
Xh6
hX6\B10hbox1={"Choose>r[BoldOn]?

File";6\BB
Xh6
hX6dC11P
}6dCC
Xh6
hX6ED12hbox2={"Choose>r[BoldOn]?

New";6ED~D
Xh6
hX6LE13P
}6LEE
Xh6
hX6-F14hbox3={1;6-FfFq
Xh6
hX6G15P
}6G9GZ
Xh6
hX6G16FileMenu(&valid)6GHC
Xh6
hX6H17allow={
310;X//newmenuoption6HH,|
Xh6
hX6I18P
}6IJe
Xh6
hX6J19exallow={0;
//Allowexecute6JJN
Xh6
hX6K20P
}6KL 7
Xh6
hX6L21accel={P
110;//(N)ew6LL!
Xh6
hX6M22P
}6MM"!
Xh6
hX6N23exaccel={0;
//Allowexecute6NN#"
Xh6
hX6O24P
}6OO$#
Xh6
hX6P25NoSubMenu(&subval;&subacl;&exsubacl;&subs)6PPt% $
Xh6
hX6Q26funkey={1;
//Nofunctionkey6QQ]&!%
Xh6
hX6R27P
}6RRF'"&
Xh6
hX6iS286iSS/(#'
Xh6
hX6%T29Repeat6%T^T)h$(
Xh6
hX6T30Result=PostIt(DefTitle;&tbox;38;10;0;2;0)6T,U*Q%)
Xh6
hX6U31MenuActive=06U)V*:&*
Xh6
hX6V32Show=HotSpot(0;0;62;0;543;&funkey;1)6VW+#'+
Xh6
hX6W33Switch(show)6WX,(,
Xh6
hX6X34CaseOf1:
//Showmenu6XX-(-
Xh6
hX6Y35P
sbox={"Choose>r[BoldOn]?

New";}6YY
Xh6
hX6Z36P
Result=PostIt(DefTitle;&tbox;38;10;0;3;0)6ZZ
Xh6
hX6[37P
ShowMenu("Coach";&sbox;34;1ScrnMode;0;0;0;0)6[[
Xh6
hX6\386\]k
Xh6
hX6]39CaseOf309://FilemenuId6]]T
Xh6
hX6^406^^=
Xh6
hX6E_41CaseOf543://Accelmenualtf6E_~_&
v
Xh6
hX6E`42P
PullDownDlg6E`~`_
Xh6
hX60a43P
Type("f")60aiaH
Xh6
hX6b446bRb1
Xh6
hX6b45CaseOf8085://Alt+=6bc


Xh6
hX6c46P
sbox={1;}6cd

Xh6
hX6d47P
Result=PostIt(DefTitle;&tbox;38;10;0;3;0)6dd

Xh6
hX6e48P
6ee

Xh6
hX6f49P
MenuActive=MenuBarControl("Coach";&hbox1;&sbox;34;6ffn
Xh6
hX6g50P
1ScrnMode;102;&funkey)6ggW

Xh6
[email protected]
Xh6
hX6ni52DEFAULT:
//Default6nii)y
Xh6
hX6`j53P
sbox={1;}6`jjb
Xh6
hX6Jk546Jkk
Xh6
hX6k55P
MenuActive=MenuBarControl("Coach";&hbox1;&sbox;34;6kl4
Xh6
hX6l56P
1ScrnMode;102;&funkey)6l1m
Xh6
hX6m57EndSwitch
6m4n
Xh6
hX6n586no
Xh6
hX6o59If(MenuActive<>1)6oo
Xh6
hX6p60Result=MenuControl(&hbox1;&hbox2;&hbox3;&valid;6ppq
Xh6
hX6q61P
&allow;&exallow;&accel;&exaccel;&subval;6qqZ
Xh6
hX6r62P
&subacl;&exsubacl;&subs;&funkey)6rrC
Xh6
hX6s63P
MenuActive=Result6ss,|
Xh6
hX6t64P
If(Result=310orResult=110)6tte
Xh6
hX6u65P
CancelMenus()6uuN
Xh6
hX6}v66P
DisplayRewrite6}vv 7
Xh6
hX6ww67P
Endif6www!
Xh6
hX6hx68Endif6hxx"!
Xh6
hX6Ay69Until(MenuActive<>1)6Ayzy#"
Xh6
hX6 z70DlgInput(Off!)6 zYz$#
Xh6
hX6z71Return6z/{t% $
Xh6
hX6{72//*********************************************6{{]&!%
XhLine1marksthebeginningoftheOpenNewDocroutinewithaLabelcommand.Lines2through8describethefunctionoftheOpenNewDocroutine.Line9specifiesthemessagenumbertouseforthetboxvariable.Thisvariablecontainsthe,(, messageshowninthePostItmessagebox,describedinLine30.-(- Lines10through14definesthemessagetextforthehbox1,hbox2,andhbox3variables, usedinvarioustemporarymessagepopupsthatappearastheusernavigatesthroughmenus.o0`hbox1isusedtostorethemessageforpointingtothemenutouse.m`(#`(# o0`hbox2isusedtostorethemessageforpointingtoatoplevelcommandintheX menu.
`(#`(# o0`hbox3isusedtostorethemessageforpointingtoasubmenu(or"cascade",
| menu),ifany.Inthisexample,thereisnosubmenufortheNewcommand,sohbox3isdefinedas1.P`(#`(# Line16callsaWPCHLIBR.WPMcoachlibraryroutine,FileMenu,whichfillsthevalid
$
variablewithalltheIDnumbersofthecommandsintheFilemenu(validisanarray;each
elementofthevariablecontainsanIDnumberforonecommandintheFilemenu).Laterintheroutinethevalidvariableisusedtomakesuretheuserisbrowsingthroughtheproper
menu,lookingfortheNewcommand.(Aswithmanyroutinesusedincoaches,FileMenuusesthe?DialogControlsystemvariabletodeterminethecurrentlyactivecommandoroptioninamenuordialogbox.)Lines17and18specifythe?DialogControlIDfortheNewcommandintheFilemenu(inthiscase,310).ThisIDnumberisassignedtotheallowvariable,whichisusedinthe[ MenuControlcoachfunction,detailedinLines6062,below.Notethatallowisanarray.IfF necessary,youcanpermityourcoachtorecognizemorethanonemenucommandasanallowablechoice.Lines19and20specifythevalue(s)oftheexallowvariable.Thisvariablecorrespondstothe allowvariable(seelines1718,above)anddeterminesifthemenucommandisexecuted whentheuserchoosesit.Avalueof0meansthatyouwantto"block"theactualexecutionofthecommandwhentheuserchoosesthemenuitemindicatedintheallowvariable.Inthe[ caseofthesamplecoach,whentheuserchoosestheNewcommand,thecommandisnotcarriedout,becausethevalueofexallowis0(thetaskofopeninganewdocumentisleftfor/ alaterpartofthecoach).Notethatexallowisanarray.Besurethereisanequalnumberof j elementsintheallowandexallowvariables.!U Lines21and22specifythemnemonickeykeystrokeusedtoselectthecommandinthemenu,inthiscase108(NforNew).Asamatterofconvention,specifytheASCIIvalueforthelowercaseletter.Thisvalueisassignedtotheaccelvariable.Accelisanarray,soyou$# canspecifymultiplemnemonickeyvalues,ifdesired.Lines23and24specifythevalue(s)oftheexaccelvariable.Thisvariablecorrespondstotheh'"& accelvariable(seelines2122,above).Exaccelworksinthesamewasasexallow,describedS(#' inLines1920.Useavalueof0ifyoudon'twantWordPerfecttoexecutethecommandwhentheuserchoosesit;useavalueof1ifyoudowantWordPerfecttoexecutethecommand.Besurethereisanequalnumberofelementsintheallowandexallowvariables.+`&* Line25usestheNoSubMenuroutinefromtheWPCHLIBR.WPMlibraryfile.Itisusedwhenthecoachdoesnotneedtoallowaccesstosubmenus(cascademenus),andisaquick-)- waytosetallthesubmenurelatedvariablesto1(thesevariableincludesubvalandsubacl). Line26specifiesthefunctionkey(F#)equivalentforaccessingthemenucommand.TheNewcommanddoesnothaveadefaultfunctionkeyequivalent,sothevalueofthefunkeym variableisleftat1.Whenafunctionkeyequivalentisprovidedformenucommand,youinsertthenumericvalueofthekey.ThesevaluesareprovidedintheAppendix,andcanalsobedeterminedusingthe[###]macrothataccompaniesthisdocument.Notethatfunkeyisan*
z array;enteradditionalfunctionkeyvaluesifyouwanttoallowmultiplefunctionkeyaccessinyourcoach.Lines29startsaRepeatloopthatcontainstoline69.ThisloopisrepeateduntiltheuserselecttheNewcommand,orcancelsthecoach.Line30displaysa"PostIt"message,whichinstructstheuserwhattodonext:namely,choosetheNewcommandfromtheFilemenu.ThemessageiscreatedusingthePostItcoachroutine,whichdisplaysagenericmessagebox.ThePostItroutineisquiteflexible,inthatthemessageboxcaneitherbecompletelyinactive(itdisplaysthemessageonly),oritcancontainoneormorebuttonsforcontrollingtheactionofthecoach.Asusedintheexample,thePostItboxdisplaystwobuttons:ShowMeandQuit.TheQuitbuttonendsthecoach(theuserispromptedbeforethecoachends);theShowMenubuttonstepstheuserthroughthemenustolocatetheproperone(seelines34through37formoreinformation).AdditionalparametersofthePostItroutineallowyoutoplacethemessageataparticularspotonthescreen.Line31setstheMenuActivevariableto0.Thevalueofthisvariableischeckedlaterinthe Repeatloop.Line32specifiesone"hotspot"regiononthescreen,forthepurposeofopeningthemenusinthemenubar.Thisallowstheusertochoosethehotspottopickanitem,orpressanAlt+letterkeytodisplayamenu.Mostoften,thehotspotregionisdefinedastheentiremenubar(atleastuptothe"Help"menu).Forthesamplecoach,theAlt+letterkeytoopentheFilemenuisAlt+F,or543.Thehotspotroutinereturnsanyofanumberofdifferentvalues;thereturnvalueisplacedintheShowvariable.Showcontainsthevalueof1ifthe!( ShowMebutton(displayedbythePostItboxdefinedinLine30)ispressed.Showcontains"! avalueoflessthan0orgreaterthan1dependingonwhethertheuseropenedamenu,pressedanAlt+letterkey,orperformedsomeotheraction.Line33beginsaSwitchstatement(thestatementendsofLine57).TheSwitchstatementcheckstheShowvariableagainstanumberofpossiblevalues:R'"& o`1TheuserpressedtheShowMebutton.&)v$( o`309TheuseropenedtheFilemenu*H&* o`543TheuserpressedAlt+F.,(, -)- o8086TheuserpressAlt+=,toactivatethemenubar Lines35through37areexecutedwhenShowequals1(theShowMebuttonwaspressed). Thecoachassignsexplanatorytexttothesboxvariable,redisplaysthePostItbox,andcallsm theShowMenucoachroutine.TheShowMenuroutineanimatesthesequenceofchoosingthepropermenucommandinthiscaseopeningtheFilemenu,andhighlightingtheNewcommand.Lines42and43areexecutedwhentheuserpressesAlt+F.ThecoachrespondsbyopeningtheFilepulldownmenu.Lines46through50areexecutedwhentheuserpressestheAlt+=keys,toactivatethepulldownmenu.ThecoachredisplaysthePostItbox,andcallstheMenuBarControlcoachroutine.Thisroutineessentiallytakesovertheoperationofthemenubar,assuringtheuserselectsthepropermenu.Lines52through56definesthedefaultactioniftheSwitchstatementfallsthroughwithoutamatch.ThecoachcallstheMenuBarControlcoachroutinetoprovidecontrolovertheoperationofthemenubar.TheMenuBarControlcoachroutinereturnsavalueindicatingtheresultoftheuser'sactionswhileworkingwiththemenubar.ThisvalueisassignedtotheMenuActivevariable.Lines! 59through68areexecutediftheMenuActivevariabledoesnotequal1(MenuActive equals1whenevertheuserdoesnotchooseanappropriateactionwhenusingthemenubar).Lines60through62callstheMenuControlcoachroutine,whichallowstheusertointeractwiththepulldownmenus.TheMenuControlroutinestheworkhorseofmostanycoach,whereithelpstheuserlocateandproperlyselectthedesiredmenucommand.NotethattheMenuControlroutinereturnsavalue,storedinResult.4 Lines64through67areexecutedifchosetheNewcommandfromtheFilemenu.Line70turnsoffdialoginputcontrol(usingWordPerfect'sDlgInputcommand).Line71returnsfromtheOpenNewDocroutine.TheNoMoreDocsroutine,shownbelow,iscalledifWordPerfectcouldnotopenanewdocument.ThisroutineiscallediftheFileNewmacrocommandfails(usuallybecauseninedocumentsarealreadyopened).//********************************//Subroutine:NoMoreDocs//********************************//Thisroutinecalledifnewdocumentcan'tbeopenedLabel(NoMoreDocs)-(- ERROR(Off!)h//Turnerrorcontroloff Beep`h//Soundtone Message(&tbox;1010)h//Getanddisplaymessage#1010 Result=MessageBox("Coach";&tbox;6)QuitCoach()`//QuitcoachT ThelastroutineofthesamplecoachisauserdefinedprocedurecalledMessage.ThisprocedurecontainsasingleSwitchstatement.WithinthisSwitchstatementisoneormoremessagesfordisplayindialogboxesconstructedwiththeMessageBox,Welcome,andPostItcoachroutines.EachmessagefollowsaCaseOfcommand,andauniquemessagenumber,suchas10,100,1000,andsoforth.Themessageisassignedtoanarrayvariabletbox.Ifthemessage
islong,itcanbebrokenintoseparatelinesbyassigningeachlinetoaseparateelementofthearray.Blanklinesareinsertedusingemptyquotes.6
hX6N//*********************************************6N
Xh////PROCEDURE:Message6 ////*********************************************PROCEDUREMessage(&tbox;Msg)Switch(Msg)CaseOf10:`//MessageID#10E tbox={`"";.~ `">r[BoldOn]?

OpeningaNewDocument>[BoldOff]?

";0`"";
`(#`(# `"Thiscoachwillhelpyouopenanew,blank";`"document.";`"";}CaseOf100:`//MessageID#100v% $ tbox={`"Toopenanewdocument,";_&!% `"";`"Choose>r[BoldOn]?

File>[BoldOff]?

,";1(#' `"then>r[BoldOn]?

New>[BoldOff]?

.";`"";}CaseOf1000:`//MessageID#1000;newdocopenedsuccessfully,(, tbox={`"Anew,blankdocumentwasopened.";-(- `"";`"Thisconcludesthecoachonopeninganewdocument.";`"";}CaseOf1010:`//MessageID#1010;newdocnotopened= tbox={`"Anerroroccurredopeninganewdocument.";&
v `"";`"Possiblecausesforthiserrorinclude:";`"Nomoredocumentsavailable(9openalready)";1 `"Outofmemory";

`"";}DEFAULT:`//"Failsafe"messagen tbox={`"";W
`"Messagenotfound!";`"";}EndSwitchENDPROCWritingtheDocumentEditingCoach ManyfeaturesofWordPerfectinteractcloselywithtextinthedocument.Thesecoachesaremoredifficulttowrite,becausethecoachmacromustmonitorand/orcontrolwhattheusertypes,andwhere.Inaddition,it'snotunusualfordocumenteditingcoachestorelyheavilyononeormoreWordPerfectdialogboxes,wheretheusermakesaselectionandtypestextwithinadialogbox.ThefollowingdescribesoneofthecoachesthatcomeswithWordPerfect,WPCH_SR1.WPM.ThecoachguidesusersthroughusingthesearchandreplacefeatureofWordPerfect.Itisagoodexampleofacoachthatinteractswithdocumenttext,andguidesusersthroughaWordPerfectdialogbox.Asyouwillsee,thesearch/replacecoachusesmanyofthesametechniquesofthepreviouscoachsample.Thesearch/replacecoachusesaheader,amainprogram,a"WelcomeDlg"routine,aMessageprocedure,andmore.Becauseofthesimilaritybetweenthecoaches,we'llconcentrateonlyontheadditionalelementsfoundinthesearch/replaceexample.Thesearch/replacecoachcontainsthefollowinguniqueroutines:o`PosCursorallowstextediting-(- o`ReplaceSub1OpenandclearReplacedialogbox o0`SpecialHintDisplay"Hint"boxwhenuserasksforhelp`(#`(# o0`NotFoundErrorControlcoachifreplacefunctionendsinnotfoundT condition.
`(#`(# Youmayfindithelpfultousethecoachafewtimestogetusedtohowitworksandwhatitdoes.YoumayalsowishtomakeaprintoutoftheentireWPCH_SR1.WPMcoachfile,andrefertoitwhilereadingthisdocument.ThePosCursorRoutineCoachesthatrequireuserinteractionwiththedocumentusetheFakeItcoachprocedure,containedintheWPCHLIBR.WPMlibraryfile.FakeItdoesmanyimportantjobs,yetit'sveryeasytouse:o`Itdisplaysa"here'swhattodonext"dialogboxatthebottomofthescreen,b withexplanatorytextandoneormorecontrolbuttons.o`Itshrinksthedocumentscreentoawindow,sothattheuserisassuredthe cursorisnotblockedbytheFakeItdialogbox.TheFakeItprocedureisusedinthesearch/replacecoachwithinthePosCursorroutine,shownbelow.FakeItisusedwiththeDoEditcoachfunction,whichallowstheusertowriteandedittextinthedocumentscreen,butundercontrolledconditions.6
hX6//***********************************************6
Xh6
hX6//6
Xh6
hX6//Label:PosCursor6T
Xh6
hX6//6
Xh6
hX6f//*****************************************************6f
Xh6
hX67Label(PosCursor)67p
Xh6
hX6Message(&tbox;50)
X//GetMessage#506$#
Xh6
hX6FakeIt(DefTitle;&tbox;3;1;0)//DisplaysFakeItbox6(t% $
Xh6
hX6PosCharNextP

X6]&!%
Xh6
hX6PosCharPrevP

X//Movecursortodisplayitproperly6!F'"&
Xh6
hX6keypress={8154;}
//WatchforF7key6G/(#'
Xh6
hX6chkcode={1;}P

//Don'tworryaboutdeletingcodes6I)h$(
Xh6
hX6*Result=DoEdit(1;&chkcode;&keypress)//Allowtextediting6*c*Q%)
Xh6
hX6Return6U
Xh6
hX66
XhNotethatthetwoimportantroutinesinPosCursorareFakeItandDoEdit.TheFakeIt-(- procedurealtersthescreenanddisplaysthedialogbox;DoEditdoestheactualtexteditprocessing.Inalmostallcases,youwillusetheFakeItandDoEditroutinesintandem,asshownhere.NotethethreeparametersfortheDoEditfunction(aswithothercoachroutines,theseparametersaremorefullydescribedinPart2ofthisdocument).o`Thefirstparameterdeterminesifthecoachallowsmouseclicks.The_ parameterissetto1,sotheusercanclickthemousewithinthedocumentscreen.o`Thesecondparameterindicatesanycodesyoudon'twanttheusertodelete.

Thesearch/replacedialogboxisn'tconcernedwithdeleting,butthisisnotalwaysthecasewithcertaintypesofcoaches(forexample,onethatdescribesthemergefeature).o`Thethirdparameterindicatesthefunctionkeystheuserisallowstopressn whilewritingandeditingtext.Mostoften,thiskeyisthekeyusedtoterminatethePosCursorroutine,suchasF7(8154).TheReplaceSub1RoutineManycoachesopenanddisplayoneormoreWordPerfectdialogboxes.Quiteoften,itisnecessarytocontroltheusersactionwithinthedialogbox.TheReplaceSub1routineperformsthisjob.6
hX6//***********************************************6P
Xh6
hX6//LABEL:ReplaceSub16
Xh6
hX6//6
Xh6
hX6///PURPOSE:OpenandclearReplacedialog6/h
Xh6
hX6//6,
Xh6
hX6//****************************************************6
Xh6
hX6_Label(ReplaceSub1)6_
Xh6
hX6Message(&tbox;105)
//Getmessage#1056D"!
Xh6
hX6Result=PostIt("Coach";&tbox;10;1+(MsgAdjScrnMode);0;4;0)6G
Xh6
hX6//PostmessageexplaininghowtouseReplacedlg6&
Xh6
hX6PosCharNext6t% $
Xh6
hX6PosCharPrevious
//Thesecommandsdisplaycursor6]&!%
Xh6
hX66
Xh6
hX6Xh6
hX6While(?Dialog<>1)6L
Xh6
hX6Char(Key)6
Xh6
hX6If(?Mousey=(yposS1+ScrnMode))6
Xh6
hX6[P
//IfHintbuttonpressed6[
Xh6
hX6>If((?Mousex>=xposH1)and(?Mousex<=xposH2))6>w
Xh6
hX6+P
ShowCode(SaveScreen!)//Saveexistingdisplay6+d-(-
Xh6
hX6BP
SpecialHint()X(//CallSpecialHintroutine6B{
Xh6
hX6xP
ShowCode(RestoreScreen!)(//Restoreolddisplay6x
Xh6
hX6PosCharNext
//Displaycursor6
Xh6
hX6~Else6~
Xh6
[email protected]
//[email protected]
Xh6
hX6"If((?Mousex>=xposQ1)and(?Mousex<=xposQ2))6"[
Xh6
hX6P
CancelCoach()6H
Xh6
hX6P
Else6+
Xh6
hX6P

//IfuserpressesSearchbuttonorF2key6
Xh6
hX6P
If(?DialogControl=3543orKey=8159)6
Xh6
hX6P

Display(Off!)6
Xh6
hX6P

NotFound(On!)(//Handlenotfoundcondition6

Xh6
hX6P

OnNotFound(NotFoundError)6*
Xh6
hX6P
Endif6%
Xh6
hX6P
Type(ntoc(Key))6
Xh6
hX6P
Endif6
Xh6
hX6{Endif6{
Xh6
hX6>Else6>w
Xh6
hX6P
//IfuserpressesEsc6-
Xh6
hX6If(Key=8160)6

Xh6
hX6P
CancelCoach()6
Xh6
hX6xElse6x
Xh6
hX6:P
If(?DialogControl=3543orKey=8159)6:s
Xh6
hX6,P
Display(Off!)6,e
Xh6
hX6P
NotFound(On!)6H
Xh6
hX6P
OnNotFound(NotFoundError)6+
Xh6
hX6P
Endif6
Xh6
hX6P
Type(ntoc(Key))6
Xh6
hX6Endif6
Xh6
hX6LEndif6L
Xh6
hX6//IfuserpressesF1forhelp6<
Xh6
hX6If(key=8158)6
Xh6
hX6ShowCode(SaveScreen!)X//Saveolddisplay6!
Xh6
hX6SpecialHint()X(//CallSpecialHintroutine6"!
Xh6
hX6ShowCode(RestoreScreen!)//Restoreolddisplay6"#"
Xh6
hX6PosCharNext
//Displaycursor6.$#
Xh6
hX6Endif6(
Xh6
hX6EndWhile6
Xh6
hX6TDisplay(On!)6T
Xh6
hX6DisplayRewrite6?
Xh6
hX6Return6
Xh6
hX6Z6Z
Xh6
hX66-
XhThemainportionofthisroutineisaWhileloop,whichrepeatsuntiltheuserleavestheReplacedialogboxandreturnstothedocumentscreen.ByuseofaCharcommand,theloopwatchesforeverykeypressormouseclick.Ifthemouseisclickedinoneofthe"hot-(- spot"regions(theHintandQuitbuttons),thecoachrespondsbyeitherdisplayinga"Hint"box,orbyterminatingthecoach.WithintheWhileloopthecoachallowsuserstotypetextintothetwoentryboxes,aswellasactivateanyofthesixsearch/replaceoptionsintheReplacedialogbox.Duringthistime,thecoachchecksfortheuserpressingtheF2key,orchoosestheSearchbuttonintheReplacedialogbox.WhentheuserchoosestheSearchbuttonorpressesF2,thecoachspecifieswhatshouldhappenifanotfoundconditionoccurs(usingtheNotFoundandOnNotFoundmacrocommands).ItallowsWordPerfecttoprocessthesearch/replacefunctionnormally.Ifthesearch/replaceprocessendswithanotfoundcondition,thecoachcallstheNotFoundErrorroutine,describedbelow.Otherwise,thecoachdisplaysanendingmessage,thenterminates.TheSpecialHintRoutineTheWPCHLIBR.WPMcoachlibrarycontainsseveralbuiltinandeasytouseroutinesfordisplaying"hints,"extrapopupmessagesthatprovidehelpwhentheuserrequestsit.Thesearch/replacecoachusesitsownroutinefordisplayinga"dynamic"hintmessagebox.ThisroutineisprovidedinSpecialHint(seetheWPCH_SR1.WPMfileforthetexttothisroutine).YoucanusethisSpecialHintroutineinyourowncoachesifyouwanttoprovidehelpforanumberofdifferentoptions.TheSpecialHintdialogboxconsistsofsixCtrlOption!controls,andtwochangeableCtrlLabel!textcontrols.ClickononeoftheCtrlOption!controls,anditsmatchinghelptextisshown(thetextspansoneortwolines).NotethattheSpecialHintdialogboxiscontainedwithinaRepeat/Untilloop,andusestheDlgNoClear!dialogboxstyle.Inthisway,thedialogboxremainsonthescreenshowingthedesiredhelptextafteryoupressoneoftheCtrlOption!controls.TheRepeat/UntilloopcontinuesuntilyouchooseOKtoclosetheSpecialHintdialogbox.TheNotFoundErrorRoutineTheNotFoundErrorroutineshandlesthoseinstanceswhentheuserspecifiestextintheSearchForboxthatcannotbefoundinthedocument.Whenthisoccurs,WordPerfectgeneratesanotfoundcondition,andthecoachbranchestothisroutine.NotFoundErrorcontainsnumerousroutinesforresettingthestateofWordPerfect.Italsodisplaysexplanatorytextthatsaysthesearch/replacefunctionfailed,andsuggestsreasonswhyitdid.6
hX6
//*********************************************6

-(-
Xh6
hX6q//6q
Xh6
hX6
//LABELNotFoundError6
F
Xh6
hX6//6
Xh6
hX6x//*********************************************6x
Xh6
hX6ALABEL(NotFoundError)6Az
Xh6
hX6Display(On!)6(
Xh6
hX6CancelDialogs()P
//Closeanyopendialogboxes6&
v
Xh6
hX6DisplayRewriteP

//Clearscreen6_
Xh6
hX6xNotFoundCoach()
//CallNotFoundCoachlibraryroutine6xH
Xh6
hX6rMessage(&tbox;1007)
//Getmessage#10076r1
Xh6
hX6SResult=MessageBox("Coach";&tbox;6)//Displaymessage6S


Xh6
hX6AQuitCoach()P

//Quitcoach6Az

Xh6
hX67Return67p
Xhn Part2Reference WordPerfectcoachesarebasedheavilyonlibraryroutinesuserdefinedfunctionsandprocedurescontainedintheWPCHLIBR.WPMfile.ThissectiondetailsthecoachfunctionsandproceduresprovidedintheWPCHLIBR.WPMfile,includingtheirpurposeandtheparametersused,ifany.Forfunctions,thereferenceprovidesthevaluereturned(proceduresdonotreturnavalue).Theroutinesarelistedalphabeticallybytype(proceduresfirst,thenfunctions).Usethefollowingindextohelpyoufindtheroutineyouwant.Importantnote:Toassurethepagenumbersofthefunctionsandprocedureslistedintheindexareaccurate,generatethisdocumentbychoosingTools,Generate.IndextoProceduresandFunctionsn 8
p5p5S0ProceduresWPCHLIBR.WPM`".*(#(#21

p5So)y !!400`(#(#BlockEdit`".4
&`(#`(#21

!4Ob !!00`(#(#CancelCoach`".3(`(#`(#21

!5K !!00`(#(#CancelMenus`".U(`(#`(#22

!4 !!00`(#(#CancelDialogs`".*`(#`(#22

! !! 00`(#(#CheckColorSet`".*`(#`(#22

! !!!00`(#(#ColorScheme`".J(`(#`(#23

!!! !!"00`(#(#CommentsBox`".(`(#`(#23

!"" !!#00`(#(#EditMenu`".)
%`(#`(#23

!##q !!s$00`(#(#ExitDlgProc`".
(`(#`(#24

!s$$Z !![%00`(#(#ExitDocProc`".(`(#`(#
24

![%v%C !!C&00`(#(#ExitWPProc`".
'`(#`(#24

!C&^&,| !!*'00`(#(#FakeIt`".#`(#`(#24

!*'E'e !!
(00`(#(#FileMenu`".
%`(#`(#
25

!
(((N !!(00`(#(#FileSaveDlgProc`".`,`(#`(#26

!(
) 7 !!)00`(#(#FontMenu`".J
%`(#`(#26

!))! !!*00`(#(#GraphicsMenu`".)`(#`(#26

!**"! !!+00`(#(#HelpMenu`".`
%`(#`(#26

!++#" !!,00`(#(#LayoutMenu`".'`(#`(#27

!,,$# !!x-00`(#(#MenuBar`".$`(#`(#27

!x--t% $ !!\.00`(#(#MenuPop`".
$`(#`(#27

!\.w.]&!% [email protected]/00`(#(#NoSubMenu`".&`(#`(#28

[email protected]/[/F'"& !!&000`(#(#NotFoundCoach`".2*`(#`(#28

!&0A0/(#' !!100`(#(#PleaseWait`".
'`(#`(#28

!1+1)h$( !!100`(#(#QuitCoach`".k
&`(#`(#29

!12*Q%) !!200`(#(#ReplaceProc`".
(`(#`(#29

!22*:&* !!300`(#(#RestoreStates`".K*`(#`(#29

!33+#'+ !!400`(#(#SavingDoc`".
&`(#`(#29

!44,(, !!500`(#(#ScreenSetup`".
(`(#`(#30

!55-(- !!}600`(#(#SetBoxSize`".
'`(#`(#30

!}66 !!d700`(#(#ShowMenu`".
%`(#`(#30

!d77 !!I800`(#(#ToolsMenu`".
&`(#`(#31

!I8d8 !!/900`(#(#ViewMenu`".
%`(#`(# 32

!/9J9k !!:00`(#(#WindowMenu`".'`(#`(#!32

!:/:T p5p5:0ProceduresWPCHLBTB.WPM`".*(#(#" 33

p5:;&
v !!;00`(#(#ExitTableEdit`".l*`(#`(## 33

!;;_ !!<00`(#(#TableEditControl`".-`(#`(#$ 33

!<
!==1 !!>00`(#(#EditTable`".
&`(#`(#&!34

!>>

!!?00`(#(#TblColEdit`".
'`(#`(#'!34

!??
[email protected]`".!)(#(#("35

[email protected]@
!!KA00`(#(#ButtonControl`".+`(#`(#)"35

!KAfAn !!6B00`(#(#CodeFilter`".a
'`(#`(#*#36

!6BQBW
!!C00`(#(#DlgFilter`".&`(#`(#+$37

[email protected] !!D00`(#(#DlgMessage`".
'`(#`(#,$37

!DD)y !!D00`(#(#DoEdit`".J#`(#`(#-%38

!DEb !!E00`(#(#Filter`".#`(#`(#.%38

!EEK !!F00`(#(#Hint`".l!`(#`(#/&39

!FF4 !!G00`(#(#HotSpot`".$`(#`(#0&39

!GG !!uH00`(#(#InvalidControl`".,`(#`(#1'40

!uHH !!aI00`(#(#KeyFilter`".
&`(#`(#2)42

!aI|I !!GJ00`(#(#LstBxControl`".*`(#`(#3)42

!GJbJ !!1K00`(#(#MenuBarControl`".`+`(#`(#4+44

!1KLKq !!L00`(#(#MenuControl`".)`(#`(#5,45

!L7LZ !!M00`(#(#MessageBox`".'`(#`(#6-46

!M MC !!M00`(#(#NoBlock`".$`(#`(#7.47

!MN,| !!N00`(#(#NoSelect`".%`(#`(#8.47

!NNe !!O00`(#(#OpenDocument`".)`(#`(#9/48

!OON !!P00`(#(#Overview`".
%`(#`(#:/48

!PP 7 !!Q00`(#(#PostIt`".#`(#`(#;049

!QQ! !!fR00`(#(#Welcome`".
$`(#`(#<150

!fRR"! !!JS00`(#(#WinEdControl`".*`(#`(#=251

!JSeS#" !!4T00`(#(#XYFilter`".%`(#`(#>352

!4TOT$# p5p5U0FunctionsWPCHLBTB.WPM`".X)(#(#?554

p5U5U]&!% !!U00`(#(#TableBlockEdit`".+`(#`(#@554

!UVF'"& !!V00`(#(#PostANote`".v
&`(#`(#A554

!VV/(#' 8
8
G8
8
p5p5X0ProceduresWPCHLIBR.WPM`".*(#(#17p5Xt)y !!00`(#(#BlockEdit`".4
&`(#`(#17!5b !!00`(#(#CancelCoach`".3(`(#`(#17!K !!00`(#(#CancelMenus`".U(`(#`(#17!4 !!s00`(#(#CancelDialogs`".*`(#`(#18!s !!> 00`(#(#CheckColorSet`".*`(#`(#18!> Y !!!00`(#(#ColorScheme`".J(`(#`(#18!!$! !!!00`(#(#CommentsBox`".(`(#`(#18!!! !!"00`(#(#EditMenu`".)
%`(#`(#19!""q !!a#00`(#(#ExitDlgProc`".
(`(#`(#19!a#|#Z !!*$00`(#(#ExitDocProc`".(`(#`(#19!*$E$C !!$00`(#(#ExitWPProc`".
'`(#`(#20!$%,| !!%00`(#(#FakeIt`".#`(#`(#20!%%e !!&00`(#(#FileMenu`".
%`(#`(#20!&&N !!E'00`(#(#FileSaveDlgProc`".`,`(#`(#21!E'`' 7 !!(00`(#(#FontMenu`".J
%`(#`(#21!(-(! !!(00`(#(#GraphicsMenu`".)`(#`(#21!(("! !!)00`(#(#HelpMenu`".`
%`(#`(#21!))#" !!h*00`(#(#LayoutMenu`".'`(#`(#22!h**$# !!0+00`(#(#MenuBar`".$`(#`(#22!0+K+t% $ !!+00`(#(#MenuPop`".
$`(#`(#22!+,]&!% !!,00`(#(#NoSubMenu`".&`(#`(#22!,,F'"& !!-00`(#(#NotFoundCoach`".2*`(#`(#23!--/(#' !!L.00`(#(#PleaseWait`".
'`(#`(#23!L.g.)h$( !!/00`(#(#QuitCoach`".k
&`(#`(#23!///*Q%) !!/00`(#(#ReplaceProc`".
(`(#`(#24!//*:&* !!000`(#(#RestoreStates`".K*`(#`(#24!00+#'+ !!o100`(#(#SavingDoc`".
&`(#`(#24!o11,(, !!6200`(#(#ScreenSetup`".
(`(#`(#24!62Q2-(- !!200`(#(#SetBoxSize`".
'`(#`(#24!23 !!300`(#(#ShowMenu`".
%`(#`(#25!33 !!400`(#(#ToolsMenu`".
&`(#`(#25!44 !!T500`(#(#ViewMenu`".
%`(#`(#26!T5o5k !!600`(#(#WindowMenu`".'`(#`(#26!656T p5p560ProceduresWPCHLBTB.WPM`".*(#(#27p566&
v !!700`(#(#ExitTableEdit`".l*`(#`(#27!77_ !!o800`(#(#TableEditControl`".-`(#`(#27!o88H !!=900`(#(#TableEditCtrl2`".+`(#`(#27!=9X91 !!:00`(#(#EditTable`".
&`(#`(#28!:$:

!!:00`(#(#TblColEdit`".
'`(#`(#28!::
p5p5;0FunctionsWPCHLIBR.WPM`".!)(#(#29p5;;
!!Y<00`(#(#ButtonControl`".+`(#`(#29!Y'`(#`(#30!%[email protected]=W
!!=00`(#(#DlgFilter`".&`(#`(#30!=>@ !!>00`(#(#DlgMessage`".
'`(#`(#31!>>)y !!|?00`(#(#DoEdit`".J#`(#`(#31!|??b [email protected]@00`(#(#Filter`".#`(#`(#[email protected]@[@K !!A00`(#(#Hint`".l!`(#`(#32!AA4 !!A00`(#(#HotSpot`".$`(#`(#33!AA !!B00`(#(#InvalidControl`".,`(#`(#33!BB !!XC00`(#(#KeyFilter`".
&`(#`(#35!XCsC !!D00`(#(#LstBxControl`".*`(#`(#35!D:D !!D00`(#(#MenuBarControl`".`+`(#`(#36!DEq !!E00`(#(#MenuControl`".)`(#`(#37!EEZ !!F00`(#(#MessageBox`".'`(#`(#38!FFC !!HG00`(#(#NoBlock`".$`(#`(#39!HGcG,| !!
H00`(#(#NoSelect`".%`(#`(#39!
H(He !!H00`(#(#OpenDocument`".)`(#`(#40!HHN !!I00`(#(#Overview`".
%`(#`(#40!II 7 !!cJ00`(#(#PostIt`".#`(#`(#40!cJ~J! !!'K00`(#(#Welcome`".
$`(#`(#41!'KBK"! !!K00`(#(#WinEdControl`".*`(#`(#42!KL#" !!L00`(#(#XYFilter`".%`(#`(#43!LL$# p5p5}M0FunctionsWPCHLBTB.WPM`".X)(#(#44p5}MM]&!% !!>N00`(#(#TableBlockEdit`".+`(#`(#44!>NYNF'"& !!
O00`(#(#PostANote`".v
&`(#`(#44!
O%O/(#' L8
*Q%) @H
ProceduresWPCHLIBR.WPM >'
6xd6>6
BlockEdit ycl n7Type:`Procedure> Syntax:`

BlockEdit(Title;EnableBlk;EnableMouse;&DefMsg;Helps)n7m8 33Purpose:0`Allowstheusertoblocktextinthedocument.Whilethisprocedureisactive,2
userscanusethesearchfeature,chooseblockfromthemenu,usethemousetoblockanddrag,pressAlt+F4toturnblockonandusethearrowkeystofindtheendoftheselection.3
`(#`(# II|Parameters:0I|7
(#(# Title`Titletoappear,usually"Coach"1 EnableBlk0hSelectmodenotallowed `1hSelectmodeallowed EnableMouse0hMouseclicksnotallowedn `1hMouseclicksallowedW &DefMsghMessagetoappear)y Helps0`0`(#`(#HelppromptscanappearthatgivetheuserguidanceinblockingtheK text.Itgivesappropriateinfowhethertheuserisusingthemouseorkeystrokestoblock.
(#(# `0hDonotallowhelpprompts `1hAllowhelpprompts! >'
6xd6>&e!$
?CancelCoach ?K&!% n7Type:`Procedurem(#' Syntax:`
!
CancelCoach()n76mg*%) 33Purpose:0`Askstheuseriftheywanttocancelthecoach.Iftheydo,itgoesontoa,'+ QuitCoach(),whichcancelsalldialogsandmenus,returningtheusertother-(, Documentscreen,andrestoringscreenstates(RestoreStates())thatwereineffectwhenthecoachwasstarted.ThiscommandiscalledwhentheuserpressesEscapeinmayWPCHLIBR.WPMfunctionsandprocedures.3
`(#`(# IIParameters:0NoneI2T(#(# >'
6xd6>7
CancelMenus 2m n7Type:`Procedure

Syntax:`
"
CancelMenus()n7m
33hPurpose:0`Cancelsallactivemenus.3h`(#`(# IIParameters:0NoneI6}(#(# >'
6xd6>`
CancelDialogs 6 n7Type:`Procedure Syntax:`
#
CancelDialogs()n7m 33pPurpose:0`Cancelsallactivedialogs.3p`(#`(# II"Parameters:0NoneI"@(#(# >'
6xd6>!
CheckColorSet @*! n7Type:`Procedure#1" Syntax:`
$
CheckColorSet()n7m%+!$ 33zPurpose:0`Checksifcomputerisingraphicsortextmode.SetsglobalvariableColorSet'%#& to1ifintextmodeor0ifingraphicsmode.UsedprimarilywithintheWPCHLIBR.WPMlibraryfile.3z
`(#`(# IIParameters:0NoneI+&*(#(# -(, >'
6xd6>
ColorScheme 6 n7Type:`ProcedureX Syntax:`
%
ColorScheme()n7ymR 337Purpose:0`Setsthecolorschemeto[WPCoach].37U
L`(#`(# IIParameters:0NoneIF(#(# >'
6xd6>

CommentsBox H n7Type:`Procedurej Syntax:`
&
CommentsBox(&cmnt;xpos;ypos;width;height;Style)n7md 33jPurpose:0`Postsmessagesanywhereonthedocumentscreen.Noeditingcontrolis^ provided.Nopushbuttonsareavailable.Thisprocedurewillpostthemessageandreturncontrolbacktothemacro.ThiscommandisprimarilyusedbytheWPCHLIBR.WPMlibraryfile.3j
`(#`(# IIParameters:0I)(#(# &cmnthArraymessage
Xpos`hHorizontalposition Ypos`hVerticalposition Width`hWidthofboxx HeighthHeightofboxa! Style`0hUseXposandYposparametersJ" `1hCentered3#! >'
6xd6>%>!$
kEditMenu k$&t!% n7Type:`ProcedureF(#' Syntax:`
'
EditMenu(&valid)[email protected]*%) 33 Purpose:0`SetsthevalidmenuIDsfortheEditmenu.3 >:,'+`(#`(# K-(, IIParameters:0I(#(# valid0`ArrayofallDialogControlIDsfoundontheEditMenu.`(#`(# >'
6xd6>e
ExitDlgProc p n7Type:`Procedure
Syntax:`
(
ExitDlgProc()n7m

33Purpose:0`HelpstheuserwiththeExitDialogBox.3`(#`(# II{Parameters:0NoneI{(#(# >'
6xd6>
ExitDocProc n7Type:`Procedure6 Syntax:`
)
ExitDocProc()n7m0 33Purpose:0`Helpstheuserexitadocument.3*`(#`(# IIParameters:0NoneI$(#(# >'
6xd6
>
$ExitWPProc $= n7Type:`Procedure"_ Syntax:`
*
ExitWPProc()n7m$Y" 33Purpose:0`HelpstheuserexitWordPerfect.3&S!$`(#`(# IIParameters:0NoneI'M#&(#(# >'
6xd6>*0&)
-FakeIt -+f&* Type:`Procedure8-(, Syntax:`
+
FakeIt(Title;&tbox;Buttons;Frame;Steps)n7m 33Purpose:0`Postsmessagesatbottomofthedocumentscreen.Thedocumentscreenis framedandsizedaccordingtothesizeoftheFAKEITmessage.Noeditingcontrolisprovided.Thisprocedurewillpostthemessageandreturncontrolbacktothemacro.FollowthiscommandwithanothersuchasDoEditorBlockEdittoallowtheusertoperformatask.3
`(#`(# IIParameters:0IH(#(# Title0`0`(#`(#ThetitleatthetopoftheFAKEITmessagebox,usually"Coach"B
(#(# &tbox`Messagearrayd 0Buttons0hNoButtons6
(#(# 0`1hContinue(w/default)(#(# 0`2hContinue(w/StyGray!)(#(# 0`3hContinue...F7(w/odefault)Quit...Esc(#(# 0`4hShowMe...Ctrl+SContinue...F7Quit...Esc(#(# 0`5hHint...F1Continue...F7Quit...Escs(#(# 0`60h(#(#Hint...F1Quit...Esc\h(#h(# 0`70h(#(#ShowMe...Ctrl+SQuit...EscEh(#h(# 0`8hQuit...Esc.~(#(# 0
(#(# 0Frame`0hNoDisplayRewriteandWindowSizeP(#(# 0`1hCauseaDisplayRewriteandWindowSizetooccur9`(#`(# 0Steps`0hDonotshowsteps(#(# 0`1hShowSteps(#(# >'
6xd6>_!
FileMenu !! n7Type:`Procedure#" Syntax:`
,
FileMenu(&valid)n7m%!$ 33WPurpose:0`SetsthevalidmenuIDsfortheFilemenu.3Wu'"&`(#`(# IIParameters:0I6)$((#(# &valid0ArrayofallDialogControlIDsfoundontheFileMenu+&*(#(# q-(, >'
6xd6
>
;FileSaveDlgProc ;6 n7Type:`ProcedureX Syntax:`FileSaveDlgProc()n76mR 33Purpose:0`Helpstheusersaveafile.3
L`(#`(# IIParameters:0NoneIF(#(# >'
6xd6>)
n7Type:`Procedure1
Syntax:`
-
FontMenu(&valid)n70m+{ 33Purpose:0`SetsthevalidmenuIDsfortheFontmenu.3%u`(#`(# IIParameters:0Io(#(# &valid0ArrayofallDialogControlIDsfoundontheFontMenui(#(# >'
6xd6>$
GraphicsMenu L6
Z n7Type:`Procedure,| Syntax:`
.
GraphicsMenu(&valid)n7m&!v 33Purpose:0`SetsthevalidmenuIDsfortheGraphicsmenu.3 #p!`(#`(# IIOParameters:0IOm%j #(#(# &valid0ArrayofallDialogControlIDsfoundontheGraphicsMenu'd"%(#(# >'
6xd6>)%(
nHelpMenu n*U%) n7Type:`Procedure',w'+ 8-(, Syntax:`
/
HelpMenu(&valid)n7bm 337Purpose:0`SetsthevalidmenuIDsfortheHelpmenu.37U`(#`(# IIParameters:0I(#(# &valid0ArrayofallDialogControlIDsfoundontheHelpMenu
(#(# >'
6xd6>Y

LayoutMenu |

n7Type:`Procedure Syntax:`
0
LayoutMenu(&valid)n7m 33Purpose:0`SetsthevalidmenuIDsfortheLayoutmenu.3`(#`(# IIParameters:0I(#(# &valid0ArrayofallDialogControlIDsfoundontheLayoutMenu(#(# >'
6xd6>T
MenuBar + n7Type:`Procedure Syntax:`
1
MenuBar(&bar)n7m 33]Purpose:0`ReturnsthevalidIDsonthemenubar.3]{ `(#`(# IIParameters:0I8" (#(# &bar`ArrayofallDialogControlIDsonthemenubar$" >'
6xd6>O'"%
"MenuPop "'"& n7Type:`Procedure)$( Syntax:`
2
MenuPop(&pop)n7m+&* 33Purpose:0`ReturnsthevalidIDnumbersforallsubmenus.3-(,`(#`(# IIParameters:0I(#(# &pop`ArrayofallDialogControlIDsthatbelongtosubmenusx >'
6xd6>e
NoSubMenu 3 n7Type:`Procedure
Syntax:`
3
NoSubMenu(&subval;&subacl;&exsubacl;&subs)n7m

33Purpose:0`Quickwaytosetsubmenuvaluesto1.Usetosetsubaccel,subval,subs,and exsubaclforMenuControl.3
`(#`(# IIParameters:0I
(#(# &subval0Submenuitemtoallowtoexecute(#(# &subacl0Submenuacceleratorstoallowtoexecutew(#(# &exsubaclExecutebitsforSubmenuaccelerators` &subs`MainmenuIDswhichpopoutasubmenuI >'
6xd6>=
NotFoundCoach `J#s n7Type:`ProcedureE Syntax:`
4
NotFoundCoach()n7m? 33Purpose:0`UsedwhenaNotFoundconditionoccurs39!`(#`(# IIWParameters:0NoneIWu3#!(#(# >'
6xd6>&f!$
PleaseWait u_L&!% n7Type:`Proceduren(#' Syntax:`
5
PleaseWait()n7mh*%) 33Purpose:0`DisplaysaPleaseWait...message.3b,'+`(#`(# s-(, IIvParameters:0NoneIv(#(# >'
6xd6>
QuitCoach ~ n7Type:`Procedure; Syntax:`
6
QuitCoach()n7
m5 33Purpose:0`Quitsthecoachwithoutaskingpermission.Alsoresetsscreensetupfrom
/
variablesassignedwiththeSetupScreen()procedure.3
`(#`(# IIParameters:0NoneI
(#(# >'
6xd6>
ReplaceProc + n7Type:`ProcedureM Syntax:`
7
ReplaceProc()n7}mG 33;Purpose:0`Helpstheusersaveandreplaceadocument3;YA`(#`(# IIParameters:0NoneI;(#(# >'
6xd6>
RestoreStates T n7Type:`Procedure&!v Syntax:`
8
RestoreStates()n7m #p! 33TPurpose:0`RestoresButtonBar,Ribbon,orOutlineBariftheywereonwhenthecoach%j # began.3Tr
`(#`(# IIJParameters:0NoneIJh'M#&(#(# >'
6xd6>+'*
SavingDoc iS+O'+ -`(, n7Type:`Procedure Syntax:`
9
SavingDoc()n7m 33Purpose:0`Helpstheusersaveadocument.3`(#`(# IIeParameters:0NoneIe
(#(# >'
6xd6>

ScreenSetup m

n7Type:`Procedure) Syntax:`
:
ScreenSetup()n7m#
33Purpose:0`TurnsofftheButtonBar,rulerbar,outlinebar,andsetsabitiftheywereon. UseRestoreStates()toturnthembackonatendofthecoach.Alsochecksforscreenmode,andamessagetellstheuseriftheyareinansupportedmode,andendsthecoach.3
`(#`(# II^Parameters:0NoneI^|(#(# >'
6xd6>e
SetBoxSize |f n7Type:`Procedure
Syntax:`
;
SetBoxSize()n7m 33Purpose:0`DeterminestheXandYvaluesforadialogbox,givenanarraymessage,tbox.! Thesevalues,WandH,canbeusedforthewidthandheightparametersfordialogboxes.Tbox,w,andhmustbesetasglobalvariablesinordertousethisprocedure.3
`(#`(# IIKParameters:0NoneIKif&!$(#(# >'
6xd6>I)$'
ShowMenu iS)$( n7Type:`Procedure+&* Syntax:`
<
ShowMenu(&sbox;Xpos;Ypos;Mnu;Opt;Pop;Execute)n7m-(, 33Purpose:0`Animatestheselectionofmenucommands.Usedtoshowtheuserhowtofind aparticularcommandinamenu.3
`(#`(# IIParameters:0I(#(# &sboxArraymessagetoappear `1ifnomessageisrequiredXpos`HorizontalPositionofmessage_ `1ifnomessageisrequiredYpos`VerticalPositionofmessage1
`1ifnomessageisrequiredMnu`Menunumberfrom1to9S
`File=1`Edit=2`View=3`Layout=4`Tools=5`Font=6`Graphics=7`Windows=8`Help=9Opt`OptionnumberfromthetopV `0Thefirstitemonthemenuisa1.Countdowntotheitemyouneedandspecifyitsnumber.((#(# Pop`0Itemisnotlocatedonapopoutmenu `1Itemlocatedonapopoutmenu Execute0Donotallowexecutee `1AllowexecutemenusofmenuitemsN `2Executesitemautomaticallyp7! >'
6xd6>#Y!
ToolsMenu ;%?#" n7Type:`Procedurea% $ Syntax:`
=
ToolsMenu(&valid)n7m['"& 33s
Purpose:0`SetsthevalidmenuIDsfortheToolsmenu.3s

U)$(`(#`(# II5Parameters:0I5SO+&*(#(# &valid0ArrayofallDialogControlIDsfoundontheToolsMenuI-(,(#(# >'
6xd6>
QViewMenu Q n7Type:`ProcedureA Syntax:`
>
ViewMenu(&valid)n7Em; 33Purpose:0`SetsthevalidmenuIDsfortheViewmenu.3$5`(#`(# IIParameters:0I
/
(#(# &valid0ArrayofallDialogControlIDsfoundontheViewMenu)(#(# >'
6xd6 >

WindowMenu aK n7Type:`Procedure< Syntax:`
?
WindowMenu(&valid)n7m6 33Purpose:0`SetsthevalidmenuIDsfortheWindowmenu.30`(#`(# II^Parameters:0I^|*(#(# &valid0ArrayofallDialogControlIDsfoundontheWindowMenu$(#(# @cH
ProceduresWPCHLBTB.WPM >'
6xd6!>M
ExitTableEdit jT3 n7Type:`ProcedureU Syntax:`
@
ExitTableEdit()n7mO
33Purpose:0`HelpstheuserthroughexitingTableEditMode.IfnotinTableEditModeI whenthisprocedureisinvoked,thiscommandisignored.3
`(#`(# IIParameters:0NoneI,|
(#(# >'
6xd6">&v

hTableEditControl h\ n7Type:`Procedure~ Syntax:`
A
TableEditControl(X1;Y1;X2;Y2;AlphaKey;&tbox;&keyequiv)n7dmx 33KPurpose:0`AllowseditingcapabilityinthetablewhileinTableEditMode.Breaksoutr whenthehotspotregionisclickedonorthekeypassedin&keyequivhasbeenentered.Postsamessageinthecenterofthescreen.3Ki
`(#`(# IIParameters:0I>(#(# X1`Upperleftcornerofhotspot8 Y1`Lowerleftcornerofhotspot!q X2`Upperrightcornerofhotspot
Z Y2`LowerrightcornerofhotspotC AlphakeyThevalidmnemonickeyforusertopress(i.e.101fore)! &tbox`Themessagethatshouldappear(i.e.ChooseCell.)#! &keyequivarrayofvaluesofkeystoallowi% # `Example:8154=F7 >'
6xd6#>
)]$'
-!TableEditCtrl2 -!!!C)$( n7Type:`Proceduree+&* Syntax:`
B
TableEditCtrl2(X1;Y1;X2;Y2;Xpos;Ypos;&tbox;&keyequiv)n7'"m_-(, 33
#Purpose:0`AllowseditingcapabilityinthetablewhileinTableEditMode.Breaksout whenthehotspotregionisclickedonorthekeypassedinkeyequivhasbeenentered.Postsamessageinaspecifiedlocation.3
#+#
`(#`(# II{$Parameters:0I{$$|(#(# X1`Upperleftcornerofhotspotv
Y1`Lowerleftcornerofhotspot_ X2`UpperrightcornerofhotspotH Y2`Lowerrightcornerofhotspot1
Xpos`xpositionofmessageboxS
Ypos`ypositionofmessagebox< &tbox`Themessagethatshouldappear(i.e.ChooseCell.)
&keyequivarrayofvaluesofkeystoallow `Example:8154=F7 >'
6xd6$>4
&(EditTable &(((j n7Type:`Procedure Syntax:`
C
EditTable()n7)m 33)Purpose:0`HelpsthegetintoTableEditMode.IfalreadyinTableEditModewhenthis procedureisinvoked,thiscommandisignored.3))
`(#`(# II*Parameters:0NoneI*+c (#(# >'
6xd6%>]"
+TblColEdit +,+"! n7Type:`Procedure$ # Syntax:`
D
TblColEdit()n7,m&!% 33F-Purpose:0`UsedbyEditTable()proceduretohelpusergetintoTableEditMode.3F-d-(#'`(#`(# II#.Parameters:0NoneI#.A.*%)(#(# -(, @H
FunctionsWPCHLIBR.WPM. >'
6xd6&>6
2/ButtonControl 2///l h]Type:`Function> Syntax:0`
E
ButtonControl(&info;&x1;&x2;&y1;&y2;&hotkey;&hotpnt;&accel;8 &aclpnt;&tbox;&helpmsg)h],0m
`(#`(# 33Z1Purpose:0`Usedtocontrolbuttonsandlineitemsinadialogbox.3Z1x1k
`(#`(# II(2Parameters:0I(2F2e(#(# The&infoarraycontains10parameters:_
`1ControlIDTheIDofthecurrentcontrolJ `2DialogID(canuse?Dialog)3 `Always0`3AllowUp/DownArrows `1=yes0=no`4TitleforPostItMessage `5XposforPostItp `99=Center`6YposforPostItB `99=Center`7PostItMessageTyped `1=Continue,Quitw/default`2=ShowMew/default`3=ShowMew/gray`4=Hint`5=ShowMeHintQuit`6=Quit`8Titleof&helpmsg,usually"Coach"\#! `90RestoreScreenE$"(#(# `1=yes0=no`10Reserved&g!$ `01=positionscursortofixabugwherecursorjumpstoupperleftcorner.
(#(# &x1`Arraysforhotspots)%( &x2&y1&y2_-(, &hotkey0keyequivalentforeachhotspotitemdefinedwiththex1,x2,y1,andx2 parameters
(#(# &hotpnt0restorescreenforcurrenthotspottoclearthecurrentcoachdialog.k(#(# `0=donotrepaint`1=repaint`2=waits2secondsfordoubleclick`Thisparametermusthaveoneelementforeachdefinedhotspotelement.&accelthekeysyouwanttoallowtheusertopress1 &aclpnt0restorescreenforcurrentacceleratortoclearthecurrentcoachdialog.
(#(# `0=donotrepaint`1=repaint`Thisparametermusthaveoneelementforeachdefinedaccelelement.&tbox`[email protected] &helpmsghelpmessageappearsifuserfloundersb &hbox0Hintmessageifneededrequiresthefollowingplacedjustafterthe WHILEcommand,orifyouneedadifferenthintforeachcontrol,withintheCaseOfforthecontrolsrequiringthehint.
(#(# `If(Result="Hint")`hbox={"HintMessage"}`Hint=(MessageBox("HINT";&hbox;1)`Endif >'
6xd6'>N
@CodeFilter @EA/A4 h]Type:`FunctionV"! Syntax:0`CodeFilter(&array;Code)h]AmP$#`(#`(# 33BPurpose:0`Comparesacodevalueagainstanarrayofpredefinedcodevalues.UsedbyJ&!% theDoEditfunctiontofilterforspecificcodes.3BB
`(#`(# IICParameters:0ICC-)}$((#(# &arrayarrayofcodevaluestocheckfor'+w&* Code`currentcode'svalue,`'+

,I(, ``EReturnValues:0`E2E(#(#

0`Nocodevaluesmatch >0`Numberofarrayelementofmatchingcode >'
6xd6(>N

VF
F
DlgFilter VFFF
h]Type:`Function Syntax:0`
I
DlgFilter(&array;&brk)h]XGm`(#`(# 333HPurpose:0`ComparesDialogControlIDsagainstallowableDialogControlIDsand
executablebitsforeachControlID.33HQH
`(#`(# II?IParameters:0I?I]I}(#(# &arrayhArrayaddressofitemstocheckw &brk`ArrayaddressofexecutionbitsI ``JReturnValues:0`JJk(#(# `0Novaliditemfounde `1AvaliditemwasfoundN `2Avaliditemwasfoundplusanexecutionbitwasalsofound7 >'
6xd6)>
jLDlgMessage jLLL( h]Type:`Function!J Syntax:0`DlgMessage()h]`Mm#D"`(#`(# 33$NPurpose:0`Determinestheoffsetforcoachdialogsthatareusedinconjunctionwiththe%>!$ systemdialogstoassureproperscreenregistration.3$NBN
`(#`(# IIIOParameters:0NoneIIOgO(!$'(#(# ``OReturnValues:0`OP*&)(#(# `024linescreenmodeiscurrentlyset,(+ `1249linescreenmodeiscurrentlyset
-(, >'
6xd6*>
GQDoEdit GQQQ
J
h]Type:`FunctionA Syntax:0`DoEdit(EnableMouse;&chkcode;&keypress)h]FRm;`(#`(# 33$SPurpose:0`Allowseditingcapabilityinthedocument.Breaksoutwhenthehotspotregion5 isclickedonorthekeypassedinkeypresshasbeenentered.ThiscanbeusedwithFAKEIT.3$SBS
`(#`(# IIrTParameters:0IrTT
(#(# EnableMouseAllowtheusertousethemouse
`0hMouseclicksnotallowed} `1hMouseclicksallowedf &chkcode0Arrayaddressofcodesthat,whentheuserattemptstodelete,will!q deletethecodeandreturncontrolbacktothemacro,passingthedeletedcodeback.SetChkCodeto1ifnodeletedcodesneedtobetracked.
(#(# &keypressArrayofvaluesofkeystoallow `Example:8154=F7``WReturnValues:0`W
X(#(# `1Quitz `1Continuec `20ShowMeorHintfromaFakeItL!(#(# `KeyAnyothervaluewillequalkeynumber5" >'
6xd6+>[email protected] #
Y
K
Filter YPZ:Z&%v $ h]Type:`FunctionH'"& Syntax:0`
L
Filter(&array;Key;Accel)h]ZmB)$(`(#`(# 33[Purpose:0`CompareskeyvaluesorDialogControlIDsagainstallowablekeyIDsor<+&* allowableDialogControlIDs.3[[
`(#`(# 6-(, II\Parameters:0I\\(#(# &array0Arrayaddressofitemstocheck(#(# Key`0Itemtocheckagainstthoseitemsfoundin&array|(#(# Accel`0CheckingacceleratorsN
`1Checkingmenuvalues7 ``_ReturnValues:0`_)_
B
(#(# `0Novaliditemfound< `1Avaliditemwasfound%
>'
6xd6,>
S`
M
Hint S``` h]Type:`Function8 Syntax:0`
N
Hint(&tbox;Xpos;Ypos;Buttons)h]Pam2`(#`(# 332bPurpose:0`Displaysa"hint"helpbox.Theboxcontainsexplanatorytext.32bPb,`(#`(# IIcParameters:0Ic&c&(#(# &tbox`Themessagetoappearonthescreen Xpos`horizontalposition Ypos`verticalposition Button0hTitle=QuickTippButtons=~Continuet! `1Title=HintTippButtons=~ShowMe~Returnto]" Coach`2Title=QuickTippButtons=~ShowMe~Continue/$" `3Title=HintButtons=~ReturntoCoach%h # ``fReturnValues:0Returnsaredependentonwhichbuttonswereincluded.`ff'##&(#(# `1Continue,ShowMe,ReturntoCoach)%( `2ReturntoCoach,Continue*&) >'
6xd6->q-(,
Dh
O
HotSpotDhhh-(- h]Type:`Function Syntax:0`
P
HotSpot(Xpos1;Ypos1;Xpos2;Ypos2;AltKey;&funkey;Execute)h]Dim`(#`(# [email protected]:0`Setsuponehotspotregion.Allowstheusertochoosethehotspot,orpressan [email protected]^j
`(#`(# IIUkParameters:0IUksk(#(# Xpos1`lefthorizontalposition
Ypos1`topverticalpositionj
Xpos2`righthorizontalpositionS
Ypos2`bottomverticalposition< AltKeykeyvalueofallowableAltKey^
`Example:529=AltT&funkeyArrayaddressofvalidfunctionkeystoallow `Example8137=AltF7ExecuteExecutetheuser'schoice `0hDonotexecutem `1hAllowexecutionofthechosenkeyV ``oReturnValues:0`oo(x(#(# `1ShowbuttonpressedorEnterkeypressed"r `3Menuacceleratorkeywaspressed[ >'
6xd6.>
q
Q
InvalidControl qqmq L h]Type:`Function#n! Syntax:0`
R
InvalidControl(&info;&x1;&x2;&y1;&y2;&hotkey;&hotpnt;&accel;%h # &aclpnt;&tbox;&helpmsg;&allow)h]rm
`(#`(# 33BsPurpose:0`Usedtofilteruserinputonanycontrolotherthanthosedefinedandcontrolled'K#& byButtonControl,LstBxControlorWinEdControl.ThiscommandisnormallyusedwiththeDefaultparameterofaCASEstatement.3Bs`s
`(#`(# IItParameters:0Itt+'*(#(# The&infoarraycontains10parameters:-), `1ControlID `2Dialog `3AllowUp/DownArrows `1=yes0=no`4TitleforPostItMessageT `5XposforPostIt= `99=Center`6YposforPostIt_ `99=Center`7PostItMessageType1 `1=Continue,Quitw/default`2=ShowMew/default`3=ShowMew/gray`4=Hint`5=ShowMeHintQuit`6=Quit`8Titleof&helpmsg,usually"Coach"@ `9RestoreScreen)y `1=yes0=no`10ReservedK &x1`arraysforhotspots &x2&y1&y2&hotkey0keyequivalentforeachhotspotitemdefinedwiththex1,x2,y1,andx2Z parameters
(#(# &hotpnt0restorescreenforcurrenthotspottoclearthecurrentcoachdialog.e(#(# `0=donotrepaint`1=repaint`2=waits2secondsforadoubleclick`Thisparametermusthaveoneelementforeachdefinedhotspotelement.&accelthekeysyouwanttoallowtheusertopress$# &aclpnt0restorescreenforcurrentacceleratortoclearthecurrentcoachdialog.]&!% 0=donotrepaint1=repaint.Thisparametermusthaveoneelementforeachdefinedaccelelement.
(#(# &tbox`message*Q%) &helpmsghelpmessageappearsifuserflounders+#'+ &allow0ArrayaddressofalldialogcontrolIDsthatarevaliduser-(- choices..Thisoptionwillallowfocustostayonaninvalidcontroluntilatab,keystrokeormouseclickmovesfocustoadialogcontrolthatisdefinedasvalid.
(#(# &hbox00(#(#Hintmessageifneededrequiresthefollowingplacedjustafter= theWHILEcommand,orifyouneedadifferenthintforeachcontrol,withintheCaseOfforthecontrolsrequiringthehint.
(#(# `If(Result="Hint")`hhbox={"HintMessage"}`hHint=(MessageBox("HINT";&hbox;1)`Endifh
>'
6xd6/>n

S
KeyFilter h]Type:`Function Syntax:0`
T
KeyFilter(&array;Key;&brk)h]m`(#`(# 33fPurpose:0`CompareskeyvaluesagainstallowableKeyIDsandexecutablebitsforeach
key.3f
`(#`(# IIXParameters:0IXv(#(# &arrayhArrayaddressofitemstocheck Key`Itemtocheckagainstthoseitemsfoundin&arrayi &brk`Arrayaddressofexecutionbits; ``AReturnValues:0`A_"F!(#(# `[email protected] # `1Avaliditemwasfound%)!$ `2Avaliditemwasfoundplusanexecutionbitwasalsofound&"% >'
6xd60>f*%)

U
LstBxControl ~h*%* h]Type:`Function,(, -)- Syntax:0`
V
LstBxControl(&info;&x1;&x2;&y1;&y2;&hotkey;&hotpnt;&accel; &aclpnt;&tbox;&helpmsg)h]m
`(#`(# 33FPurpose:0`ControlsListBoxesinDialogBoxes3Fd`(#`(# IIParameters:0I(#(# The&infoarraycontains10parameters: `1ControlIDr `2DialogID[
`3AllowUp/DownArrowsD
`1=yes0=no`4TitleforPostItMessagef `5XposforPostItO
`99=Center`6YposforPostIt! `99=Center`7PostItMessageType `1=Continue,Quitw/default`2=ShowMew/default`3=ShowMew/gray`4=Hint`5=ShowMeHintQuit`8Titleofhelpmsg,usually"Coach"i `9RestoreScreenR `1=yes0=no`10Reserved$ &x1`Arraysforhotspots &x2&y1&y2&hotkey0Keyequivalentforeachhotspotitemdefinedwiththex1,x2,y1,and3#! x2parameters.
(#(# &hotpnt0Restorescreenforcurrenthotspottoclearthecurrentcoachdialog.%>!$(#(# `0=donotrepaint`1=repaint.`2=waits2secondsforadoubleclick`Thisparametermusthaveoneelementforeachdefinedhotspotelement.&accelThekeysyouwanttoallowtheusertopress.d+&* &aclpnt0Restorescreenforcurrentacceleratortoclearthecurrentcoachdialog.6-(,(#(# `0=donotrepaint`1=repaint.`Thisparametermusthaveoneelementforeachdefinedaccelelement.&tbox`MessageT &helpmsgHelpmessagethatappearsifuserflounders.&
v &hbox00(#(#HintmessageifneededrequiresthefollowingplacedjustafterH theWHILEcommand,orifyouneedadifferenthintforeachcontrol,withintheCaseOfforthecontrolsrequiringthehint.
(#(# `If(Result="Hint")`hhbox={"HintMessage"}`hHint=(MessageBox("HINT";&hbox;1)`Endifhn >'
6xd61>)y
MenuBarControl _
Y
h]Type:`Function Syntax:0`MenuBarControl(Title;&hbox1;&sbox;Xpos;Ypos;MnuLtr;&funkey)h]m{`(#`(# 33Purpose:0`Controlsthemenubaruntiladesiredmenuhasbeenlocatedbeforereturningu controltothemacro.UsewithinaRepeat/Until(MenuActive<>1)looptoallowonlythecorrectitemtobeselectedfromtheMenuBar.3.
`(#`(# IIParameters:0IA(#(# Title`Titleofthemessagebox,usually"Coach"; &hbox1Arrayaddressofhelpmessage
"] `0Thisisnormallythehbox1messagesetforMenuControl
(#(# &sboxArrayaddressofshowmessage$ # Xpos`Horizontalpositionoftheshowmessage&!% Ypos`Verticalpositionoftheshowmessage'"& MnuLtr0AlphaletterthatrepresentsoneofthepulldownmenusU)$((#(# `F=File`E=Edit`V=View`L=Layout`T=Tools-2)- `o=Font`G=Graphics`W=Window`H=Help`&funkeyArrayofallowablefunctionkeys.&
v `Example:7149=Shift+F12 >'
6xd62>


MenuControl E/P
Z
h]Type:`Function"r
Syntax:0`MenuControl(&hbox1;&hbox2;&hbox3;&valid;&allow;&exallow;&accel;l
&exaccel;&subval;&subacl;&exsubacl;&subs;&funkey)h]m
`(#`(# 33Purpose:0`Controlsaccesstomenus.Specifythemenuitem(s)youwanttoallowwiththeO &allowparameter.Whentheuserchoosesthecorrectitems,thiscommandbreaks.ThiscommandcanbeusedinaRepeat/Until(MenuActive<>1)loop.ItshouldbethelastcommandintheloopandbefollowedwithaMenuActive=ResulttoassigntheresultofMenuControltoMenuActive.3*
`(#`(# IIParameters:0I4(#(# &hbox1Coachmessagedirectingtocorrectmenubaritem &hbox2Coachmessagedirectingtocorrectitemonmenu &hbox3Coachmessagedirectingtocorrectitemonsubmenui &valid0Validoptionsfoundonthesamemenuasthealloweditems.; ThesearesetbyusingEditMenu(&valid),FileMenu(&valid),etc.
(#(# &allowArrayofallowablemenuoptions"F! `Example:Allow={2050;}//Create#/" &exallow0Arraythatcorrespondswithvalueslistedin&allow.%!$(#(# `0hDonotallowexecution&!% `1hAllowexecution'"& `Example:exallow={1;}//allowtoexecutel(#' &accelValidmainmenuaccelerators>*%) `Example:accel={98;}p//Ta(b)les'+w&* &exaccel0Arraythatcorrespondswithvalueslistedin&accel.,I(,(#(# `0hDonotallowexecution-2)- `1hAllowexecution `Example:exaccel={1;}//allowtoexecute &subvalOptionsfoundonthesamesubmenuasthoseoptionsallowedk `Example:subval={2050;//CreateT `h2051;//Edit= `h776;//InsertRow&
v `h777;//DeleteRow_ `h2052;//JoinH `h2053;//Split1 `h2054;//Calculate

`h2055;//CreateFloatingCell
`h2056;//EditFloatingCell
`h}&subaclSubmenuacceleratorstoallowW
`Example:subacl={99;}//[email protected] &exsubacl0Arraythatcorrespondswithvalueslistedin&subacl.b(#(# `0hDonotallowexecutionK `1hAllowexecution4 `Example:exsubacl={1;}//allowtoexecute `h&subs`Validmainmenuitemsthatpopoutasubmenu `Example:Subs={1537;}//Tables &funkeyArrayofallowablefunctionkeyspZ ``dReturnValues:0`d,|(#(# `DialogIDHighlightedmenuoptionor& v `KeyvalueKeyvalueifacceleratorkeywaspressed!_ >'
6xd63>#"

[
MessageBox H2$P# h]Type:`Function"&r!% Syntax:0`
\
MessageBox(Title;&tbox;Buttons)h]m(l#'`(#`(# 33Purpose:0`Postsacenteredmessagethatneedstobedismissedbypressingoneofits*f%) buttons.3
`(#`(# IIParameters:0I,I(,(#(# Title`Thetitletoappearatthetopofthebox. &tbox`Thearrayoftexttobedisplayedinthebox ButtonsThebuttonstoappearonthebox. `0hNobuttonsk `1hOKT `2hOKCancel= `3hYes,Now/Yesasdefault&
v `4hYes,No,Cancelw/Yesasdefault_ `5hYes,Now/NoasdefaultH `6hQuit...Esc1 `70hContinue

h(#h(# `8hContinueQuit...Esc
``ReturnValues:0`
(#(# `1Quit,Cancel
`1OK,Yes,Continueh `2NoQ >'
6xd64>\
R
]
NoBlock RB h]Type:`Functiond Syntax:0`
^
NoBlock()h]Rm^`(#`(# 33 Purpose:0`Checksifblockmodeisactive.Ifblockmodeisnotactive,amessageappearsX thatsays"NothingisBlocked."3 >
`(#`(# II2Parameters:0NoneI2P; (#(# ``ReturnValues:0`5" (#(# `1Yes/$" `2No%h # >'
6xd65>($'

_
NoSelect hR(B$( h]Type:`Function+d&* Syntax:0`
`
NoSelect()h]m-^(,`(#`(# 33Purpose:0`Checksiftextisselected.Iftextisnotselectedbutblockmodeison,a messageappearsthatsays"Blockisonalthoughnothingisselected."3
`(#`(# IIParameters:0NoneI(#(# ``ReturnValues:0`v
(#(# `1Yesp `2NoY
>'
6xd66>d

a
OpenDocument $J
h]Type:`Functionl
Syntax:0`
b
OpenDocument(&tbox)h]mf`(#`(# 33Purpose:0`Helpstheuseropenadocument.3``(#`(# II:Parameters:0I:XZ(#(# &tbox0`Theinstructionsfortypingthefilename.Iftboxisspecifiedas1,thedefaultT texttobedisplayedwillbe:"Thedocumentscreenisblank.Wouldyouliketoopenafile?"
`(#`(# ``ReturnValues:0`H(#(# `1UserchosetonotopenafileB `1Useropenedafile + >'
6xd67>#!

c
Overview {#"
d
h]Type:`Function%>!$ Syntax:0`
d
Overview(Title;&tbox;Buttons)h] m'8#&`(#`(# 33Purpose:0`CreatestheOverviewdialogboxthatcanbeusedatthebeginningofacoach.3 )2%(`(#`(# IIParameters:0I+,'*(#(# Title`Titletoappearattopofbox,usually"Coach"-&), &tbox`Thetexttoappearinthebox Buttons1PrevNextCancel. ``ReturnValues:0`k(#(# `1=Prev`2=Next`1=Cancel >'
6xd68>+


e
PostIt a
"r
h]Type:`Function Syntax:0`
f
PostIt(Title;&tbox;Xpos;Ypos;Modal;Buttons;Steps)h]m`(#`(# 33Purpose:0`Displaysamessageboxthatcanbeactiveorinactive.Itmayhavebuttonson nobuttons.3
`(#`(# IIParameters:0I(#(# Title`Thetitletobedisplayedatthetopofthebox,usually"Coach"
&tbox`Thearraymessagetobedisplayedinthebox.j
Xpos`ThehorizontalpositionoftheboxS
`99hCenterBox< Ypos`Theverticalpositionofthebox%u
`99hCenterBox^
Modal`ShouldboxwaitforusertopressaPostItbutton?G `0hDonotwaitforresponse0 `1hWaitforUserResponse ButtonsThebuttonstoappearonthebox. `0hnobuttons `1hQuit...Esc `2hShowMe...Ctrl+S(default)Quit...Escm `3hShowMe...Ctrl+S(StyGray!)Quit...Esc(StyGray!)V `4hHint...F1Quit...Esc? `5hShowMeHint...F1Quit...Esc(x `6hShowMe...Ctrl+SQuit...Esc(Stacked)a `70hHint...F1Quit...Esc(stacked)Jh(#h(# `Steps`Showthecurrentsteptext. `0hDonotshowsteps `1hShowSteps ``ReturnValues:0`p" (#(# `1Quitj$" `1ShowMeS% # `2Hint<&!$ >'
6xd69>(G$'
^Welcome ^-)}$(
g
h]Type:`FunctionO+&* Syntax:0`Welcome(Title;&tbox)h]^mI-(,`(#`(# 33*Purpose:0`Displaysamessageboxwelcomingtheusertothecoach.3*H`(#`(# IIParameters:0I(#(# Title`0ThetitletoappearatthetopoftheWelcomescreen,usually"Coach."(#(# &tbox`0Thearraymessagetoappearinthebox.v
(#(# ``ReturnValues:0`H(#(# `1=Continue`1=Quit+{
>'
6xd6:>M


h
WinEdControl 3 h]Type:`FunctionU Syntax:0`
i
WinEdControl(&info;&x1;&x2;&y1;&y2;&hotkey;&hotpnt;&accel;O &aclpnt;&tbox;&helpmsg)h]m
`(#`(# 33Purpose:0`ControlsWindowEditboxesinDialogBoxes.32`(#`(# II}Parameters:0I},|(#(# The&infoarraycontains10parameters:&v `1ControlIDa `2DialogIDJ `3AllowUp/DownArrows3 `1=yes0=no`4TitleforPostItMessage `5XposforPostIt! `99=Center`6YposforPostItp#! `99=Center`7PostItMessageTypeB% # `1=Continue,Quitw/default`2=ShowMew/default`3=ShowMew/gray`4=Hint`5=ShowMeHintQuit`6=Quit`8Titleof&helpmsg,usually"Coach"+&* `9RestoreScreen,'+ `1=yes0=nos-(, `10Reserved &x1`arraysforhotspots &x2&y1&y2&hotkey0keyequivalentforeachhotspotitemdefinedwiththex1,x2,y1,andx2_ parameters
(#(# &hotpnt0restorescreenforcurrenthotspottoclearthecurrentcoachdialog.

(#(# `0=donotrepaint`1=repaint.
`2=waits2secondsfordoubleclick`Thisparametermusthaveoneelementforeachdefinedhotspotelement.&accelThekeysyouwanttoallowtheusertopress.)y &aclpnt0Restorescreenforcurrentacceleratortoclearthecurrentcoachdialog.K Thisparametermusthaveoneelementforeachdefinedaccelelement.
(#(# `0=donotrepaint`1=repaint.&tbox`Message. &helpmsgHelpmessagetoappearifuserflounders.Z &hbox0Hintmessageifneededrequiresthefollowingplacedjustafter,| theWHILEcommand,orifyouneedadifferenthintforeachcontrol,withintheCaseOfforthecontrolsrequiringthehint.
(#(# `If(Result="Hint")`hhbox={"HintMessage"}`hHint=(MessageBox("HINT";&hbox;1)`Endifh#" &hotelement0NumberofequivalenthotspotforcurrentWindowEdititem,asdefinedt% $ intheharraysforHotspots.]&!%(#(# >'
6xd6;>*Q%)

j
XYFilter
7*%* h]Type:`FunctionY,', j-(- Syntax:0`
k
XYFilter(&x1;&x2;&y1;&y2)h]m`(#`(# 33~Purpose:0`Comparesmouseclicksagainstallowablehotspotregions.3~`(#`(# IIMParameters:0IMk(#(# &x1`LeftHorizontalpositionofhotspotrectangle
&x2`RightHorizontalpositionofhotspotrectangle &y1`TopVerticalpositionofhotspotrectanglep &x2`BottomVerticalpositionofhotspotrectangleY
``ReturnValues:0`+{
(#(# `0Novalidhotspotfound%u
`1Avalidhotspotwasfound^
@H
FunctionsWPCHLBTB.WPM >'
6xd6<>M
!
l
TableBlockEdit !3 h]Type:`Function Syntax:0`
m
TableBlockEdit(Title;&msg;EnableMouse;X1;X2;Y1;Y2;&keypress)h]+m
`(#`(# 33,Purpose:0`HelpstheuserthroughblockingcellsinTableEditMode.3,J`(#`(# IIParameters:0I

(#(# Title`Thetitleofthemessage,usually"Coach." &msg`Themessagetoappearinthedialog.
EnableMouseAllowtheusertousemouse.
`1=yes`0=noX1`CoordinatesforhotspottoendTableBlockEdit.+{ X2Y1Y2&keypressKeytheusermustpresswhendoneblocking. ``
ReturnValues:0`
6
(#(# `Addressofthelastcellthatwasblocked`Example:B3 >'
6xd6=>?!

n
PostANote
o

p
u! h]Type:`Function#! Syntax:0`
q
PostANote(Title;&tbox;Xpos;Ypos;Modal;Buttons)h]9m% #`(#`(# 33,
Purpose:0`Postsamessageonthescreen.3,
J
'"%`(#`(# II
Parameters:0I

)$'(#(# Title`Thetitleofthemessage,usually"Coach."+&) &msg`Themessagetoappearinthedialog.h,'* Xpos`Xpositionofdialogbox.Q-(+ `99=centerYpos`Ypositionofdialogbox. `99=centerModal`Usermustclosemessageboxbeforecontinuing.k `1=yes`0=noButtonsButtonstoappearonmessagebox.&
v `0hnobuttons_ `1hOKH `2hOKContinue1 `3hContinueQuit

`4hHint...F1Quit..>Esc
`5hShowMe...Ctrl+SHint...F1Quit..>Esc
`6hQuit...Esc
``HReturnValues:0`HfW
(#(# `1QuitQ `1ShowMeHint: `2Hint#s E
c
c00`(#(#Part3

CoachMacroTools
c`(#`(# IncludedwiththisdocumentisacustomkeyboardlayoutfilenamedCOACH.WPKcontainingthreemacrosthatarehelpfulwhenwritingcoaches.Thefollowingisashortdescriptionofwhatthemacrosdo,andhowtousethem.ToactivatetheCOACHkeyboard,copytheCOACH.WPKfiletoyourmacrosdirectory.SelectthekeyboardbypressingShift+F1,K.HighlighttheCOACHkeyboardinthelist,andchooseSelect.Alt+DMacro
PressAlt+Dtodisplaytheidentificationnumberofthecurrentdialogbox,dialogcontrol,menu,ormenucommand.Tousethemacro,pressAlt+D,thendisplaythedesireddialogboxormenu.UsetheTaborarrowkeystoselectthedialogboxcontrolorthemenuitemyouwant.ThedialogboxIDanddialogcontrolIDisshownatthebottomofthescreen(the"flashing"oftheIDnumberisnormal).Note:WhenusingtheAlt+Dmacrowithmenus,theDialogIDvalueisalways2.TheControlIDrepresentstheuniquemenucommandvalue.PressEscwhenyouaredoneusingtheAlt+Dmacro.Alt+HMacroC PressAlt+HtofindthecurrentX/Ypositionofthemouse.Tousethemacro,pressAlt+H,andchooseOKwhenthe"Mousepositioningtoolison"remindermessageappears.Positionthemouseattheappropriatepointonyourscreen.ClicktheleftmousebuttontodisplaytheX/Ycoordinates.Positionandclickforothercoordinates.PressEscwhenyouaredoneusingtheAlt+Hmacro,andchooseYes.Alt+KMacro/(#' PressAlt+Ktofindthekeyvalueofanykey.Tousethemacro,pressAlt+K,thenpressanykeyorallowablekeycombination(suchasShift+F2orAlt+E).Themacrodisplaysthekeyvalue,andasksifyouwanttoinsertthevalueintothedocument.AnswerYesorNo,accordingly.-(- Note:Mouseclicksalwaysreturnavalueof768,nomatterwhichmousebuttonwasclicked(left,right,ormiddle).Ifyouneedtodeterminewhichbuttonwasclicked,usethe?MouseLeftand?MouseRightsystemvariables.T Part4

Reference Thisappendixprovidesusefulreferencematerialforwritingcoaches.6
hX6

StandardCoachHeaderSample6& =
Xh6
hX6 6 !
Xh6
hX6d!//Usethefollowingasboilerplateforthecoachheader6d!!
Xh6
hX65"//*********************************************65"n"
Xh6
hX6"//6"7#
Xh6
hX6#//NAME:P
NameofCoach6##


Xh6
hX6$//PURPOSE:P
PurposeofCoach6$$

Xh6
hX6`%//AUTHOR:P
AuthorofCoach6`%%

Xh6
hX6>&//6>&w&
Xh6
hX6&//*********************************************6&'
Xh6
hX6'6''
Xh6
hX6=(//RevisionHistory6=(v(
Xh6
hX6(//6(#)
Xh6
hX6)//6))
Xh6
hX6"*6"*[*
Xh6
hX6*Error(Off!)6**
Xh6
hX6a+Global(ScrnMode;MsgAdj;DefTitle;CancelMsg)6a++
Xh6
hX6%,Global(FakeBtns;HotElement;SaveScrn)6%,^,
Xh6
hX6,6,-
Xh6
hX6}-DefTitle="MainTitleofCoach"X//Maintitlename6}--
Xh6
hX6.Title="Coach"6..
Xh6
hX6&/ScrnMode=?ScreenHigh246&/_/
Xh6
hX6/CancelMsg=06/0
Xh6
hX6|06|00
Xh6
hX61Use("WPCHLIBR.WPM")X//Sharedlibraryfile61O1e
Xh6
hX62ColorScheme()62V2
Xh6
hX62ScreenSetup()622
Xh6
hX6k3MsgAdj=DlgMessage()6k33
Xh6
hX64//*************************************************************64Q4
Xh6
hX6464*5
Xh6
hX65655
Xh

GlobalVariablest% $ ThefollowingvariablesmustbedeclaredasGLOBALatthebeginning(header)ofF'"& theCoach.Variable`WhatitDoes*S%) $XXX$ScrnMode0Thisvariableretainsavaluetoresizescreensaccordingtotextscreen+%'+ mode.Theheadermustalsoincludethefollowingstatement:
(#(# -(- ScrnMode=?ScreenHigh24MsgAdj0Thisvariableisusedtoproperlyplacemessageboxes.Theheadermust alsoincludethefollowingstatement:
(#(# MsgAdj=DlgMessage()DefTitle0Thisvariableisusedasthemaintitlefordialogboxes._(#(# HotElement0Thisvariableisusedindialogboxesthatcontaintexteditboxes,and1 whenthecoachmustexercisecontrolovertheentryoftextintheseboxes.
(#(# 0YoumustsetavaluetothisvariablebeforeusingtheWinEdControlcoachroutine.Thistellsthecoachwhich,ifany,ofthehotspotsdefinethecurrenteditwindow.Iftheeditwindowisnotsetasahotspotthevalueissetto0.Iftheeditwindowisthefirstdefinedhotspot,thevalueis1,thesecondhotspotis2,andsoforth.
(#(# 0HotElementisusefultostopacceleratorcharactersfrombeingtypedintoawindowwhenyouclickonit.
(#(# SaveScrn0ThisvariableallowstheCoachtodeterminewhentorestorescreens. Youmustsetthisvariableto0beforeaWhileloopsuchasWhile(?Dialog=###)tocontrolthedisplayofadialogbox.
(#(# (
XXX(7(Setthefollowingvariablesatthebeginningofthecoach:ScrnMode=?ScreenHigh24MsgAdj=DlgMessage()DefTitle="NameofCoach"CancelMsg=0Setthefollowingvariableswithinthecoach,asneeded:HotElement=#(whenusingWinEdControl)t% $ SaveScrn=0(WhenusingaWhiletocontrolaDialog)]&!% Others00(#(#anyvariablesneededtobepassedasparameterstoaF'"& PROCEDUREorFUNCTION(seedocumentationbelow)
(#(# CoachStyleSpecifications*:&* Followingarespecificationsuggestionsforconstructingtheproper"lookandfeel"ofyourcoaches.-(- WelcomeMessageTheWelcomemessagecontainsaContinuebuttonandaQuitButton.ThemessageboxmayalsoprovideaHintbutton,ifoneisneeded.UsetheWelcome(Title;&tbox)coachproceduretocreatetheWelcomemessage.Helpfultextonthisscreenisdiscretionary,dependingonthefunctionofthecoach.InstructionBox

Theinstructionbox(usuallycreatedusingthePostItroutine)shouldbepositionedandsizedsothatitisnevercoveredupwhentheappropriatepulldownmenuisaccessed.Forexample,theboxshouldplacedinthecenterorrightportionofthescreeniftheuserisexpectedtoaccesstheFilemenu.Theinstructionboxshouldbetitled"Coach".o0`Thereshouldbeoneblanklineatthetopbeforethetextbegins,andoneblankK lineatthebottom.
`(#`(# o0`Asmallstatementshouldappearatthetoptoreminduserswhattheyare doing.
`(#`(# `Example:Tomarktheselectedtext:q o0`AnyinstructionsshouldbeprefacedwiththeASCII16character().E`(#`(# o0`ThenamesofmenuoptionsshouldbeinBold.UsetheMacroFunc[BoldOn]g and[BoldOff]codestoproducetheboldattribute.(Youcancopythesecodesfromanexistingcoach.Or,youcanrecordmacrothatincludesthesecodes.Turnrecordingon,andsearchforaBoldOn/BoldOffpair.Stoprecording,openthemacro,andcopythecodes.)
`(#`(# o0`Onepointercharactershouldprecedethefirstmenuchoice,andanother$# pointercharactershouldprecedethekeystrokeequivalent.
`(#`(# o0`TheinstructionboxshouldremainonthescreenuntilthedesireddialogboxH'"& hasappeared.
`(#`(# o0`WhentheShowMebuttonisused,theinstructionboxshouldremainonthe*S%) screen.
`(#`(# o0`UseShowMenutoanimatetheShowMeandplaceasmaller,untitleddialog,(, boxnearthecorrectitem.-(-`(#`(# `Example:ChooseNew. o0`Iftheuserisnotonthepropermenu(theyarelookinginEditwhenthey shouldbeinFile),amessage(&hbox1)appearsthattellsthemwhichmenuitemtochoose.
`(#`(# `Example:0ChooseFile.(
x(#(# o0`Oncetheuserisinthepropermenu,butishavingtroubleselectingtheproperL menucommand,anadditionalboxmayappearwithfurtherinstructions(&hbox2).
`(#`(# `Example:ChooseNew.
TheFakeItInstructionBoxUsethefollowingconventionswiththeFakeItinstructionbox.o0`Thecharactershouldprecedeanyinstructions.NobulletsshouldprecedeQ informationaltext.
`(#`(# o0`ThereshouldbeContinue...F7andQuit...Escbuttons.Optionally,whenneeded includeaHintorShowMebutton.
`(#`(# WordingConventionsI Keepthefollowingwordingconventionsinmindwhenwritingmessagetextinyourcoaches.o0`InstructionsshouldbeprefacedwithASCIIcharacter16().!& `(#`(# o0`Wheninstructingwhattheusershouldchoose,placethenameofthemenu#" itemorbuttoninbold.
`(#`(# o0`Usetheword"Choose"toinstructuserstochooseanitemfromamenu.c&!%`(#`(# `Example:ChooseTools.5(#' o0`Usetheword"Select"wheninstructingtheusertoselectanitemfromalistor*Y%) popupbox.
`(#`(# `Example:Selectthelabelsdefinitionthatyouneed.,(, -(- o0`Usetheword"Press"whengivinginstructionfortheusertopressakeyonthe keyboard.
`(#`(# `Example:PressAlt+F7k o0`Usea+(plus)todesignatekeysthatshouldbepressedatthesametime.?`(#`(# `Example:Alt+F7a o0`Informationthatisnotaninstructionshouldhavenobullets().5`(#`(# o0`Indialogboxesdisplayinganytext,thereshouldbeoneblanklinebetweenthe
titleandthefirstlineoftext,andoneblanklinebetweenthelastlineoftextandthebottomofthedialogbox,orthebuttons,ifany.
`(#`(# o0`Thereshouldbeonespacebetweentheleftandrightbordersofthedialogbox[
andthetextinside.
`(#`(# o0`Textshouldnotbepurposelycenteredintheboxes.f`(#`(# o0`Thesizeoftheboxwillgenerallybedependentontheamountoftextinside.8 Iftherearesizeconstraints,theblanklinesatthetopandbottomcanbeusedfortext.
`(#`(# o0`Donotinstructtheusertochooseabuttonwhenthatbuttonisonthecoach dialogbox,andisobvious.Forexample,iftheboxincludesaContinuebutton,don'tincludeinstructionsto"Typetext,thenpressContinue."
`(#`(# 0 KeyValues $XXX$ X MouseClick(Any)768 F18158T F28159= F37832&
v F48157_ F58156H F681551 F78154

F88153
F98152
F108151
F118134n F128133W
Shift+F18148)y Shift+F28147b Shift+F38146K Shift+F481454 Shift+F58144 Shift+F68143 Shift+F78142 Shift+F88141 Shift+F98140q Shift+F108139Z Shift+F118046C Shift+F127149,| Ctrl+F18124N Ctrl+F28123 7 Ctrl+F38122! Ctrl+F48121"! Ctrl+F58120#" Ctrl+F68119$# Ctrl+F78118t% $ Ctrl+F88117]&!% Ctrl+F98116F'"& Ctrl+F108115/(#' Ctrl+F117759)h$( Ctrl+F127163*Q%) Alt+F18136+#'+ Alt+F28135,(, Alt+F38134-(- Alt+F4x8133 Alt+F5x8132k Alt+F6x8131T Alt+F7x8130= Alt+F8x8129&
v Alt+F9x8128_ Alt+F10x8127H Alt+F11x67741 Alt+F12x6774

Alt+Ax548
Alt+Bx547
Alt+Cx546n Alt+Dx545W
[email protected] Alt+Fx543)y Alt+Gx541b Alt+Hx541K Alt+Ix5404 Alt+Jx539 Alt+Kx538 Alt+Lx537 Alt+Mx536 Alt+Nx535q Alt+Ox534Z Alt+Px533C Alt+Qx532,| Alt+Rx531e Alt+Sx530N Alt+Tx529 7 Alt+Ux528! Alt+Vx527"! Alt+Wx526#" Alt+Xx525$# Alt+Yx524t% $ Alt+Zx523]&!% Alt+0x522/(#' Alt+1x521)h$( Alt+2x520*Q%) Alt+3x519*:&* Alt+4x518+#'+ Alt+5x517,(, Alt+6x516
-(- Alt+7515 Alt+8514 Alt+9513 Ctrl+A8068T Ctrl+B8155= Ctrl+C8066&
v Ctrl+D8051_ Ctrl+E8064H Ctrl+F80631 Ctrl+G8062

Ctrl+H8061
Ctrl+I8060
Ctrl+J8059
Ctrl+K8058n Ctrl+L8057W
[email protected] Ctrl+N7045)y Ctrl+O8054b Ctrl+P7466K Ctrl+Q80524 Ctrl+R8165 Ctrl+S8050 Ctrl+T8049 Ctrl+U8153q Ctrl+V8047Z Ctrl+W8046C Ctrl+X8045,| Ctrl+Y8032e Ctrl+Z8043N Ins8099! Ctrl+Ins8082"! Del8111$# Ctrl+Del8083t% $ Home8184F'"& Alt+Home8087/(#' Ctrl+Home8104)h$( End8107*:&* Ctrl+End8181+#'+ PageUp8103-(- Ctrl+PageUpx8105 PageDownx8102 Ctrl+PageDownx8180k UpArrowx8169= Alt+UpArrowx8089&
v Ctrl+UpArrowx8093_ DnArrowx81661 Alt+DnArrowx8088

Ctrl+DnArrowx8092
RtArrowx8168
Alt+RtArrowx8090n Ctrl+RtArrowx8109W
LtArrowx8167)y Alt+LtArrowx8091b Ctrl+LtArrowx8108K Bkspacex8112 Ctrl+BkSpacex8110 Enterx8182 Alt+Enterx8169q Ctrl+Enterx8097Z Tabx8183,| Shift+Tabx8098e (
XXX.Y(
N X @jQINDEX 8

c
cr00`(#(#9
%
W
9
BlockEdit`".`(#`(#21


crr
c
cs00`(#(#ButtonControl`".5 `(#`(#&"35


css|
c
ct00`(#(#CancelCoach`".`(#`(#21


ctte
c
cu00`(#(#CancelDialogs`".K `(#`(#22


cuuN

c
cv00`(#(#CancelMenus`".`(#`(#22


cvv7
c
cw00`(#(#CheckColorSet`".w `(#`(#22


cww p
c
cx00`(#(#CoachMacroTools`".$`(#`(#P756


cxx
Y
c
cy00`(#(#ColorScheme`".`(#`(#23


cyy
B

c
cz00`(#(#CommentsBox`".a`(#`(#23


czz+

c
cr{00`(#(#DlgFilter`".`(#`(#'$37


cr{{
c
cc|00`(#(#DoEdit`".`(#`(#)%38


cc|~|

c
cQ}00`(#(#EditMenu`".`(#`(#23


cQ}l}
c
cA~00`(#(#EditTable`".`(#`(#$!34


cA~\~

c
c200`(#(#ExitDlgProc`".`(#`(#24


c2Mh
c
c%00`(#(#ExitDocProc`".`(#`(#
24


c%@Q
c
c00`(#(#ExitTableEdit`". `(#`(#! 33


c3:
c
c
00`(#(#ExitWPProc`".`(#`(#24


c
(#s
c
c00`(#(#FakeIt`".`(#`(#25


c\
c
c00`(#(#FileMenu`".`(#`(#
25


cE
c
c00`(#(#Filter`".c`(#`(#*%38


c.
c
c00`(#(#FontMenu`".`(#`(#26


c
c
c00`(#(#GlobalVariables`".
#`(#`(#S958


c
c
c00`(#(#GraphicsMenu`".V`(#`(#26


c
c
c00`(#(#HelpMenu`".`(#`(#27


c
c
c00`(#(#Hint`".`(#`(#,&39


ck
c
c00`(#(#HotSpot#!.K`(#`(#.&39

,/'40


cT
c
c00`(#(#InvalidControl`".L!`(#`(#0'40


c=
c
c00`(#(#KeyFilter`".`(#`(#2)42


c& v
c
c{00`(#(#LayoutMenu`".`(#`(#27


c{!_
c
cm00`(#(#LstBxControl#!.`(#`(#4)42

,5*43


cm!H
c
c00`(#(#MenuBar`".`(#`(#27


c"1!
c
cr00`(#(#MenuBarControl`".
!`(#`(#6+44


cr#"
c
ch00`(#(#MenuControl`".`(#`(#7,45


ch$ #
c
c[00`(#(#MenuPop`".`(#`(#27


c[v% $
c
cJ00`(#(#MessageBox`".`(#`(#8-46


cJe&!%
c
c<00`(#(#NoBlock`".`(#`(#:.47


cc
c+00`(#(#NoSelect`".`(#`(#<.47


c+FW(#'
c
c00`(#(#NoSubMenu`".`(#`(#28


[email protected])$(
c
c00`(#(#NotFoundCoach`". `(#`(#28


c')*y%)
c
c00`(#(#OpenDocument`".`(#`(#>/48


c+b&*
c
c00`(#(#Overview`".`(#`(#@/48


c+K'+
c
c00`(#(#PleaseWait`".6`(#`(#28


c,4(,
c
c00`(#(#PostANote`".`(#`(#L554


c-)-
c
c00`(#(#PostIt#!.`(#`(#C049

,D150


c
c
c00`(#(#QuitCoach`".`(#`(#29


c
c
c00`(#(#Reference`".`(#`(#Q958


c
c
c00`(#(#ReplaceProc`".`(#`(#29


ck
c
c00`(#(#RestoreStates`". `(#`(#29


cT
c
c00`(#(#SavingDoc`".)`(#`(#30


c=
c
c00`(#(#ScreenSetup`".`(#`(#30


c&
v
c
c00`(#(#SetBoxSize`".V`(#`(#30


c_
c
cx00`(#(#ShowMenu`".J`(#`(#30


cxH
c
ch00`(#(#StandardCoachHeaderSample`"./`(#`(#R958


ch1
c
cl00`(#(#TableBlockEdit`".!`(#`(#J554


cl


c
cb00`(#(#TableEditControl`".*
#`(#`(#" 33


cb}

c
cZ00`(#(#TableEditCtrl2`".b!`(#`(## 33


cZu

c
cP00`(#(#TblColEdit`".5`(#`(#%!34


cPk

c
cB00`(#(#ToolsMenu`".K`(#`(#31


cB]n
c
c300`(#(#Tutorial".6`(#`(#2


c3NW

c
c"00`(#(#ViewMenu`".4`(#`(#32


c"[email protected]
c
c00`(#(#Welcome`".`(#`(#E150


c-)y
c
c00`(#(#WindowMenu`".4`(#`(# 32


cb
c
c00`(#(#WinEdControl`".K`(#`(#F251


cK
c
c00`(#(#XYFilter#!.`(#`(#H352

,I453


c4 8
8
r8
8

c
c;700`(#(#BlockEdit`".`(#`(#17
c;7V7
c
c800`(#(#ButtonControl`".5 `(#`(#29
c8)8|
c
c800`(#(#CancelCoach`".`(#`(#17
c89e
c
c900`(#(#CancelDialogs`".K `(#`(#18
c99N

c
c:00`(#(#CancelMenus`".`(#`(#18
c::7
c
cf;00`(#(#CheckColorSet`".w `(#`(#18
cf;; p
c
c=<00`(#(#CoachMacroTools`".$`(#`(#46
c=Y
c
c=00`(#(#ColorScheme`".`(#`(#18
c=3=
B

c
c=00`(#(#CommentsBox`".a`(#`(#18
c=>+

c
c>00`(#(#DlgFilter`".`(#`(#30
c>>
c
c?00`(#(#DoEdit`".`(#`(#31
c??

c
[email protected]`(#(#EditMenu`".`(#`(#19
[email protected]@
c
c7A00`(#(#EditTable`".`(#`(#28
c7ARA

c
c
B00`(#(#ExitDlgProc`".`(#`(#19
c
B%Bh
c
cB00`(#(#ExitDocProc`".`(#`(#19
cBBQ
c
cC00`(#(#ExitTableEdit`". `(#`(#27
cCC:
c
cD00`(#(#ExitWPProc`".`(#`(#20
cDD#s
c
c_E00`(#(#FakeIt`".`(#`(#20
c_EzE\
c
c/F00`(#(#FileMenu`".`(#`(#20
c/FJFE
c
cG00`(#(#Filter`".c`(#`(#32
cGG.
c
cG00`(#(#FontMenu`".`(#`(#21
cGG
c
cH00`(#(#GlobalVariables`".
#`(#`(#47
cHH
c
c}I00`(#(#GraphicsMenu`".V`(#`(#21
c}II
c
cSJ00`(#(#HelpMenu`".`(#`(#21
cSJnJ
c
c%K00`(#(#Hint`".`(#`(#32
c%[email protected]
c
cK00`(#(#HotSpot`".K`(#`(#33
cKLT
c
cL00`(#(#InvalidControl`".L!`(#`(#33
cLL=
c
cM00`(#(#KeyFilter`".`(#`(#35
cMM& v
c
coN00`(#(#LayoutMenu`".`(#`(#22
coNN!_
c
cCO00`(#(#LstBxControl`".`(#`(#35
cCO^O!H
c
cP00`(#(#MenuBar`".`(#`(#22
cP4P"1!
c
cP00`(#(#MenuBarControl`".
!`(#`(#36
cPQ#"
c
cQ00`(#(#MenuControl`".`(#`(#37
cQQ$ #
c
cR00`(#(#MenuPop`".`(#`(#22
cRR% $
c
chS00`(#(#MessageBox`".`(#`(#38
chSS&!%
c
ccc
c
U00`(#(#NoSelect`".`(#`(#39
c
U(UW(#'
c
cU00`(#(#NoSubMenu`".`(#`(#23
[email protected])$(
c
cV00`(#(#NotFoundCoach`". `(#`(#23
cVV)*y%)
c
cW00`(#(#OpenDocument`".`(#`(#40
cWW+b&*
c
c_X00`(#(#Overview`".`(#`(#40
c_XzX+K'+
c
c1Y00`(#(#PleaseWait`".6`(#`(#23
c1YLY,4(,
c
cZ00`(#(#PostANote`".`(#`(#44
cZ Z-)-
c
cZ00`(#(#PostIt#!.`(#`(#40,41
cZZ
c
c[00`(#(#QuitCoach`".`(#`(#23
c[[
c
c\00`(#(#Reference`".`(#`(#47
c\\
c
cR]00`(#(#ReplaceProc`".`(#`(#24
cR]m]k
c
c'^00`(#(#RestoreStates`". `(#`(#24
c'^B^T
c
c^00`(#(#SavingDoc`".)`(#`(#24
c^_=
c
c_00`(#(#ScreenSetup`".`(#`(#24
c__&
v
c
c`00`(#(#SetBoxSize`".V`(#`(#25
c``_
c
cza00`(#(#ShowMenu`".J`(#`(#25
czaaH
c
cLb00`(#(#StandardCoachHeaderSample`"./`(#`(#47
cLbgb1
c
c2c00`(#(#TableBlockEdit`".!`(#`(#44
c2cMc


c
c
d00`(#(#TableEditControl`".*
#`(#`(#27
c
d%d

c
cd00`(#(#TableEditCtrl2`".b!`(#`(#27
cdd

c
ce00`(#(#TblColEdit`".5`(#`(#28
cee

c
cf00`(#(#ToolsMenu`".K`(#`(#26
cffn
c
ccg00`(#(#Tutorial".6`(#`(#2
ccg~gW

c
c4h00`(#(#ViewMenu`".4`(#`(#26
[email protected]
c
ci00`(#(#Welcome`".`(#`(#41
ci!i)y
c
ci00`(#(#WindowMenu`".4`(#`(#26
ciib
c
cj00`(#(#WinEdControl`".K`(#`(#42
cjjK
c
ck00`(#(#XYFilter`".`(#`(#43
ckk4 /78
%



 December 23, 2017  Add comments

Leave a Reply