$ 8M4w)=Lߴ=80Ġ| =4= =] HgA /235150131/$R$`aqYIObf =%lF0Dr* $ <ʹ  !"#$%&'()*+,\=w 8-./G01tA23456789:;<=>?@ABCDhԳXEFGHIJKLMNO8ӰK:.o89fg;<`ab<Դ,69$W.$W$/k3ҧ46ͧ7U9;$|lqmp@;BUǴ̴ʴӴ´Ldȴִ״@̴EҴFPG܊HkIѴJةKѴL(ʹM0δNxUOʹ@HиxK%Q7DҴdz "PQTRZdz(įįz=\{ z [MEMO 10/3/99 GW????? fns fileed in the TAKEOFF ucmd file 12/4/99 working on SetupButtonHnd and the OK button exit. 12/5/99 TO DO: Print TObjectDOC 12/6/99 Created FONT VISIBLE CHILDREN WHERE 12/8/99 WORKING ON Gfoo 12/9/99 Fix formatingof keywords form matrix to vectors revising GFoo NumButtonHnd GWTake to work with each class frame 12/9/99 Debugging misc. input routine. TO DO; Add dual wall duct 12/11/99 WORKING ON SetupButtonHnd; display matching class box 'duct, air dist,misc, equip' 12/12/99 Woring on re-directing 'DUCT' action from a keyword action to le SetupButtonHnd' Need work!! 12/13/99 Finish check GNewSetup with handle the top setup button when called in SetupbuttonHnd and keyword mouse down clicks 12/15/99 created GEdFocus GNewSetup needs work!! SetupButtonHnd[110] GNewSetup'EQUIP' 12/18/99 working selecting and showing key words TO DO: paint all items with toattrs[1] during initialization. 12/18/99 16:30 MakeKw bbugg. Check tab and enter of char. TAB AND ARROW KEYS BUGGY IF A VALID CHAR IS IN THE EDIT OBJECT. 12/19/99 GWSize and GWData: GChkInput TabHnd 12/21/99 Exit when enter is pressed with a hilited keyword 12/23/99 Working on MoveKw using new wi'params' 12/25/99 Write a stand alone routine for keyword enter key exit. 12/26/99 TO DO: Merge FOOKWENTER and GKeywordMouseHnd 12/27/99 Check possible re-write of Equip items when clicking on the top equipment button the the misc button. Cleanup Switch and have all writing to theh screen don the GWSize'Focus' ShowClass 12/31/99 Add wi'*Show' to distplay frame after it is opened' 12/29/99 AIRDIS MISC AND EQUIP CLASS NAME OVER WRITING IN THE TYOE OF CLASS LABLE. Clue. The display clears up after the second click on the save class button 12/29/99 11:50 CHECKING GEscHnd. it's buggy 12/30/99 16:00 WORKING ON MOVENT FROM SIZE1 TO DATA IN ROUND 12/31/99 12:00 Working on movement out of the DATA edit box 12/31/99 Combine, if possible, SetupButtonHnd, GKeywordMouseHnd, GNewSetup and GKwExit 1/1/2000 DONE: Change how toattrs is intialized 1/3/2000 Reset keyword whern 1st size box is cleared in the NumButtonHnd routine. 1/4/00 New(F) GDefaults 1/5/00 TO DO: 1. Have DUCTSElECT display currect duct setup or display default 2. Make sure that toc is always has the correct value. 1/7/00 WORKING ON PLACEMENT OF SCROLL BAR 1/9/99 3:07 WORKING ON FOOVALUE and SCROLL BAR TO DO: attach paras to ? TO DO: What to do with idparams or params BOTH ARE BLOCKED IN GWData 1/9/00 !!! CHANGE 2 TO 2 IN ALL param reads. 1/10/00 TO DO: Turnoff labels with a blank caption. 1/11/99 Moved GEquipInpHnd for "onKeyUp' crated in GForms to :case 'KeyUp' in GWEqip. Move not tested! ;1/12/4:40 WORKING ON ItemsScrollHnd 1/13/00 WORKING ON GEquipScrollIds[94] 1/21/00 WORKING ON GMarkIes and CAPS 1/22/00 NumButtonHnd: limit needs work if 0 hander should be black 1/23/00 WHEN EDIT BOX IT CU1 123 RTU3 T4 T5 an backspze is entered the wrong ids are hilighted. 1/23/00 Needs work: tab when items are selected. Selecting Keyword 1/24/00 fix ItemsScrollHnd to scroll with lighted items 1/26/00 Do: CU1 then backspace to CU1. The wrong item is hilighted. 2/1/00 Create GTurnOffIds check left arrow ccc and ccc chek right arrow cccc block onKeyUp 0 1 37 warg[2 5 7] 2/4 Fix right move for the end of an invalid text string 2/5/ Working on GCloseMatch Modifing GWMouseDown and MouseFldno to work with objects 2/13/00 Right move bug: RIGHT MOVE AX 123 123 123 RESET CURSOR TO ORGINAL POSITION Done. GMarkIds preceed ID with a space before writing to edit box 2/14/00 Added 0 0dl 1 to GErrorMsg to stop system lockup 2/17/99 FIX: delete of 1s object buggy 2/17/00 This is the last version that has spelling checking in the GEditMode. The desige approch has changed to on limit spell checking when the cursor exits the text string by entering space, right arror or enter. 2/18 FIXTED DELETE A BEGINNING OF TEXT Added space after placing full id into text box 2/21/00 WORKING ON LEFT CURSOR MOVE FOR CU1 2/22/00 working on GMoveUntaggedIdLight 2/22/00 WORKING ON GMoveUntaggedIdLight in EditMode 1. left, right and space. Turnoff FV lignt 2. Tag, up, down, pgup and pgdn O.K. 2/25/00 Install count in GW.... class functions. 2/25/00 GRoom 1 Add check to the space routine 2 On char entry drop last char when a message show. 2/26/98 Copied 3.5 Object functions from Eric's new objects ws 2/29/00 working on GEquipKeyDown end(35) key exit 3/3/00 WHY THE NO ROOM MESSAGE (ONE TIME) IN THE ROUND DATA FIELD WITH ONLY ON ITEM AND A COUNT? 3/3/00 9:14 Believe I fixed it by opening GErrorMsg 3/7/00 Delete references to KeyboadHnd in GSETUP 3/23/00 Changed toindices to a nested array. Each class to may have unique toindices. 3/26/00 Bug when move the cursor to the end of a valid string of text 100 12 L Should not be an error message; The Lx items should be light 4/5/00 Working on GWRenameJob 7/02/01 Revising GWfns, TObject, Common for 3.6 Rel. 2 objects 1. Added GWfns to TObject and Common 2. Removed wherelc and attach properties from GWfns 3. commented wi ':.mEscHide.*onClick' in GWfns use the forms "escape' property 4. will have to adjust/position edit objects in (Done 7/03/01) the top part of the opening GUI 7/03/01 1. Revised GWEdit for 3.6 Rel 2 objects 2. Added Classes to GClasses functions 07/04/01 1. FOO Tabkey handler. must install is new hanler for GSETUP edit/combo objext. 2. Revisions to SetupButtonnHnd V(CA(topFrames)wi'..*children')WI 'class' V(CA(topFrames)wi'..*children')WI '*class' 7/04/01 CAchildren of top frame; Vclass of top objects. BV(/V ss 'GWButton')/CA button objects BV(/V ss 'Button')/CA 7/04/01 button objects 3. added cot and toc to GInfo 5. Install tab_Handler in GSETUP HUCMD']WSLOC 07/04' EdObjects[9] wi':*toc' 0 added 07/04/01 Only duct class, for the pr esent, (toc) has type of class GEquipKeyPress[121] :if 12wi'..*kwparams' 07/04/01 GEquipKeyPress[122] :andif 0wi'.*text' 07/04/01 must be empty GEquipKeyPress[123] GMarkKws'' Turn off key word hilights 07/04/01 GEquipKeyPress[124] :end 07/04/01 GInfo[44] "wi ':*cot'" (wi ':*cot') 07/04/01 GInfo[45] "wi ':*toc='" (wi':*toc') 07/04/01 GKwExit[6] GKwsMouseHnd 07/04/01 GKwExit[9] Commented out the ask before erase routine 07/04/01 GKwsMouseHnd[31] :return Comment added 07/04/01 GWToData[116] Commented out default to '0' 07/04/01 GWToData[124] :if (wi'aplname')(2wi'..*kwparams')/3wi'..*kwpar ams' 07/04/01 GWToData[125] Matching keyword selected. 07/04/01 GWToData[126] SOUND 07/04/01 GWToData[127] :return 07/04/01 GWToData[128] :end 07/04/01 GWToData[132] :if ~0R R is 0 or a vector of data 07/04/01 TO DO: Install history area TO DO: (done 07/05/01 )INSTALL ESC KEY HANDLER FOR GWSize )dpme 07/05/01 )BLOCK Esc Closs for GWName esc handler Correct clicking of numer input for TYPICAL. SHOP AND FIELD TO DO: add descriptione (size,data etc) under enter data line on GUI TO DO: Alt+F4 handler requies a message before closing 07/05/01 TO DO: Install G or GWPopulate Added GKwsOff: called when a SETUP edit objects received the Focus TempFileData new function to file data 07/08/01 1. Revised data_Handlers to exit on a KeyPress char and let the KeyPress event to call data_Handler. Moved all the Enter Key actions from KeyDown to KeyPress area. 2. Revised data_Handlers for Equipment Class 3. Modified GMoveKwsLight for use in Equipment class 4. Installed GDataKeyDown 5. Install GMoveLightOnly to handle left arrow the same as right arrow. GMoveLightOnly called by GDataMoveCursor 07/09/01 1. Revised and data_Handlers using case statement 07/10/01 1. Added GMarkID GDataMoveCursor 2. GEquipScrollIds added movement block of single bright item 07/11/01 2:45am Minor changes to the following data_Handlers[10] :goto KeyUp 07/11/01 GWToData[29] DROP MENU? Really! - Check this.07/11/0 GWToData[31] wi'*onMouseDrag' "wres1" 07/11/01 sel of text d ata_Handlers[10] :goto KeyUp 07/11/01 TO DO: ALLOW CURSOR MOVES OF ONE SPACE LEFT OR RIGHT WHEN WITHIN THE TEXT STRING O.K DONE 07/13/01 7/13/01 FIX: Rt move from CU1 C1 does not hi-light C1 items GEditMode[3] 07/13/01 Only used in GWID NonEditKeyPress[1] new Called by GDataPressKey 07/13/01 NonEditKeyPress[33] wi'*text' T 07/13/01 NonEditKeyPress[76] :andif (SEL)=texta~' ' 07/13/01 NonEditKeyPress[77] :andif (SEL)=texta 07/13/01 NonEditKeyPress[87] :if (SEL)=texta 07/13/01 data_Handlers[81] 07/13/01 KeyPress will handle EditKeyPress new 07/13/01 Installed NonEditKeyPress and EditKeyPress in GDataKeyPress which is called data_Handlers 07/15/01 GMoveIdLight[103] wi'*selection' (01 0+SEL) 07/15/0 1 Move caret to the left GMoveIdLight[140] :if 0=+/^\texta=' ' 07/15/01 GMoveIdLight[141] :andif 0=textb~' ' 07/15/01 GMoveIdLight[147] :orif 2=+/SV 07/15/01 GMoveIdLight[166] :goto skip224 07/15/01 GMoveIdLight[207] :goto skip224 07/15/01 GMoveIdLight[232] skip224: 07/15/01 data_Handlers[90] :if 1=+/^\' '=T 07/15/0 1 data_Handlers[91] :orif 0=+/^\' '=T 07/15/0 1 data_Handlers[98] wi'*text' (T,' ') space f or the caret 07/15/01 6:05 GDataMouseHnd need work. Must block drop of menu on right button click 07/16/01 4.30AM TO DO: (Move GDataMouseHnd to the MouseUp event suppress the MouseDown event Done 07/16/01 07/16/01 4.45 PM Finish checking all cursor and number button actions Looking good 07/17/01 Problem: slow keyword hi-light movement Rev:GMoveKwLight Error in check the repeat flag warg[6] Problem: keyword turned off when scroll items with an empty edit box Rev GEquipScrollIds 07/17/01 10:45 pm Problem: caret moves to the left ( c) instead of moving item hi-light what more that one item is marked. 07/18/01 Working on "NumButtonHnd" clicking on num buttons when caret is in the edit box in any position FULL[3] ID1(-1+(texta)' ')texta 07/18/01 FULL[4] IDID1,ID2(1+textb' ')textb 07/18/01 FULL[8] ID'' 07/18/01 not inside of item stringNSIDE' FULL[13] :if 1=( ID)3wi'..*idparams' 07/18/01 GCaretInside[5] ID1(-1+(texta)' ')texta 07/18/01 GCaretInside[6] IDID1,ID2(1+textb' ')textb 07/18/ 01 GCaretInside[9] RID caret inside of an item string 07/1 8/01 GDataMouseHnd[2] 07/18/01 wres1 suppress default mouse up a ction GDataMouseHnd[25] :if (text)=SEL  07/18/01 GDataMouseHnd[30] ID(-1+(text)' ')text 07/18/01 GDataMouseHnd[37] :end  07/18/01 GDataMouseHnd[64] ID(-1+(texta)' ')texta 07/18/01 GDataMouseHnd[65] IDID,(1+textb' ')textb 07/18/01 GDataMouseHnd[67] :if 0=( ID)3wi'..*idparams' 07/18/01 GDataMouseHnd[97] ID(-1+(texta)' ')texta 07/18/01 GDataMouseHnd[98] IDID,(1+textb' ')textb 07/18/01 GDataMouseHnd[100] :if 0=( ID)3wi'..*idparams' 07/18/01 GKwsMouseHnd[53] wi'..ed1.*selection' 0 0 move caret to 1 space 07/18 /01 GMoveIdLight[95] :orif 0=( ID)(ID)IDV 07/18/0 1 User might haave created GTurnOffIds[7] I5+wi':*cot' 07/18/01 class other than duc t GTurnOffIds[16] 07/18/01 :if 1V GTurnOffIds[23] 07/18/01 :end GWSize[74] wi'*selection' 0 0 place caret to the first posti on 07/18/01 NonEditKeyPress[131] GTurnOffIds 07/18/01 NumButtonHnd[31] ID(-1+(texta)' ')texta 07/18/01 NumButtonHnd[32] IDID,(1+textb' ')textb 07/18/01 NumButtonHnd[38] ID1(-1+(texta)' ')texta 07/18/01 NumButtonHnd[39] IDID1,ID2(1+textb' ')textb 07/18/ 01 NumButtonHnd[43] 07/18/01 not inside of item stringNSIDE' NumButtonHnd[50] :if 0=vi ID 07/18/ 01 NumButtonHnd[52] :if 0=( ID)3wi'..*idparams' 0 7/18/01 NumButtonHnd[132] 07/18/01 Suppress action if ID is and itme and wself is a number button NumButtonHnd[133] :if ( ID)IDV 07/18/01 NumButtonHnd[134] :andif /'123456789'wi'*caption' 07/18/01 NumButtonHnd[135] wres0  BEEP 07/18 /01 NumButtonHnd[136] :return 07/18/01 NumButtonHnd[137] :end 07/18/01 NumButtonHnd[172] wres0  07/18/01 SOUND signal er ror 07/19/01 GDataSpaceKey[2] Called by NumsButtonHnd 07/19/01 GDataSpaceKey[4] (SV IDV)2 3 wi'..*idparams' 07/19/01 NumButtonHnd[23] :if (texta)SEL  07/19/01 NumButtonHnd[41] :end  07/19/01 07/19/01 12:OO PM CARET NEXT TO AN ITEM CCC BELIEVE IT SHOULD EXIT IF NOT A NUMBER 07/21/01 GMarkIds[121+-] Changed insertion of a space within texta GDataMouseHnd[60] GTurnOffIds added 07/23/01 Revised GWSize and created size_Handlers 07/25/01 TO DO: ADD size check IN NumButtonHnd when moving from a size object by clicking on SPACE 07/26/01 TO DO: finish adding the size check plus checking NumButtonHnd 07/27/01 4:15AM Change CLEAR to clear all edit objects TO DO: check enabling NEXT under all condtions 07/27/01 4:22pm State: in first size object of square class action: click on a number button BUG: system give error message "Caret must be positioned...." 07/28/01 3:00am To make sure caret started in the 1st position in the size1 edit box I did the following. TRY-deleted Show on last line GSize - added :return to 'NewClass' and wi'selection' 0 0 before exiting 'Shade' GDataMouseHnd - added BEEP to signal success TO DO: Action: repetitive mouse click on the same lighted item. BUG: Does not sound a BEEP when count is changed. 07/28/01 13:42 GDataMouseHnd[123] BEEP Signal success 07/28/01 GDataMoveCursor[10] 7/28/01 R1 Default exit 07/10/01 GDataMoveCursor[11] R0 Default exit changed from 0 to 1 07/28/01 GDataMoveCursor[347] UCSTOP 07/28/01 GWSize[68] 07/28/01 wi'*selection' 0 0 place caret to the first p ostion 07/18/01 GWSize[69] :return 07/28/01 GWSize[155] 07/28/01 no caret position set in size_Handers GWSize[156] or data_Handlers wi'*selection' 0 0 07/28/01 IdsHnd[100] UCSTOP 07/28/01 sound an error IdsHnd[101] wi'*Focus' 07/28/01 Note: insure that the edit object has the focus NonEditKeyPress[212] UCSTOP 07/2 NonEditKeyPress[256] :if ( ID)(ID)IDV chedk added 07/28/01 NumButtonHnd[356] ID(-1+(T)' ')T added 07/28/01 NumButtonHnd[357] :if ( ID)(ID)IDV 07/28/01 NumButtonHnd[360] GMarkID ID 07/28/01 NumButtonHnd[361] :end 07/28/01 Switch[124] :return 07/28/01 UCSTOP[2] 07/28/01 data_Handlers[318] :if warg[7]>110  UCSTOP  :end sound an error 07/28/01 07/29/01 2:00 am Revised the GFrames miscellaneous class to eliminate initializeing the edit objects with the objects name. Remove 'misc'. Use EdObjects instead. 07/29/01 7:15 am size_Handlers - adding check for maximum count Added '.' and 'ENTER' to the NumButtonHnd Needs debugging. 07/30/01 Working on GMat and GLabor for the misc. class 07/31/01 10:40 am GMoveKws made partial but only keywor bright hilight 4:30 pm. Working on Misc. class. GWID, GWLabor and GWMat plue GValidateMiscData 08/01/01 4:40 am GWQty - new procedure to hand key word exit from edit box 08/02/01 GWDesc TO DO: Limit the the number of chars 08/03/01 4:00 AM 1. GWID fix tab key 2. Misc/GWMat if field is empty default to '0' when Enter is pressed 3. GValidateMiscData is buggy 08/03/01 4:4O PM 1. REFINING (debugging that is) SizeTabHnd 08/05/01 9:30 PM Back tabing from Material to ID needs work. ID does not hilight Note: Added MouseUP chedk to EdObjects. replace GWQty with GWSizein GWID 08/08/01 3:30 am Working on tabing in misc class SizeTabHnd modified but need more checking Enter key not consistant in all edit objects 08/19/01 Working on GHelp. BUG - Help not being displayed in misc. class neet to ajust positon of size, desc etc 08/29/01 Working on saving and filing takeoff data 08/30/01 GFileData GLPI GValidateData 08/31/01 3:30AM Renamed tab_Handler fac_Handler and added Enter key handler 08/31/01 3:45pm Create Cjobfile which will create a new empty jobfile and each time Greggway is initialed. 09/03/01 Modified... GKwExit[37] 09/03/01 :if Iwi':*toindices' GKwExit[48] 09/03/01 T((wi':*FMV')[I]) wi'.fIds.sc.*value' GNewSetup[20] 09/03/01 ductobjs probable should be change to Gjobfile[68] (sections subsections factors cot)A 09/03/01 08/31/01 Working on initalization and installing of job parameters during startup. 09/03/01 WORKING ONF GPopulate ; installing Gjobfile Changed GPopulate. Split into two functions GInitalize Greggway and GPopulate revised defintions of setup and jobindices 09/06/01 Check DUCTSELECT 09/07/01 TO DO: Must save default ductobjs How to start up as Round when Air Dist is changed as the default setup? 1. Renamed GWTake to GWClass. Displays name in top right frame 10/19/01 Cleaning up... GInitialize, GJobfile and GCreateJobfile TO DO: Create funcitons to allow user to scroll thru a jobfile and select a line of takeoff to be edited. See GHISTORY and GHistory function used in the first version of Greggway 10/21/01 Working on GOpenJobfile. Display name in name field 10/22/01 GInitailize GSaveJobFile 10/23/01 Checking GFileData rountine. Must file reserve four components 10/24/01 Cleaning up... DUCTSELECTION GFmtPrompt JWG-10/27/01 Revisions GOpenJobfile[48] ASELF wi':f1.cbName.*list' JWG 10/27/01 GOpenJobfile[49] SELF wi':f1.cbName.*value' (AR[2]) JWG 10/27/01 JWG-10/29/01 GDataMoveCursor[103] :if 4=wi':*cot' added ':' JWG-10/29/01 GMarkKws[3] IDUPPERCASE ID added UPPERCASE JWG-10/29/01 size_Handlers[138] wselfEdObjects JWG-10/29/01 size_Handlers[330] JWG-10/29/01 Some how the text was set to R1 size_Handlers[334] wi'*text' '' JWG-10/29/01 size_Handlers[335] wi'*selection' 0 0 JWG-10/29/01 size_Handlers[336] GWSize'Shade' JWG-10/29/01 size_Handlers[457] TUPPERCASE text,T,'.' added UPPERCASE JWG-10/29/01 size_Handlers[468] added UPPERCASE JWG-10/29/01 size_Handlers[471] wi'*text' (UPPERCASE text,T) added UPPERCASE JWG-10/29/01 fac_Handler Major re-write to limit user to adjustment factors for the Section or SubSection but both may not be adjusted TO DO: If user changes the factors AFTER some data has been filed all prior factors must be changed. The user must be advised and agree. JWG-10/30/01 TO DO: Need a function to rename the Jobfile, Section and Subsection h T3  vVALUE ERROR TFMS ^pTT WI':ed2.Create' 'TEdit' ('wherelc' '>' '=fRname.ed1'  200 ) ('caption' 'NEW JOB NAME: ')tp@tT wi '*Set' ('*style' 4096 16384) ('*edge' 0)@txTT wi'ed1.Create' 'TEdit' ('wherelc' 5 5  200 0 '> CURRENT JOB:') ('caption' 'CURRENT JOB: ')t,:endselect( T wi'suffix' '.JOB'T(4T wi'onKeyDown' 'GRenameJob "ONE"'4P:case 'New'SOUND HXCT wi'*onMouseDown' ("wres1") block move to write only edit boxX/:case 'TWO'BOO0  WI'.b1.*onKeyUp' 'BOO'420$'enter key pressed'$\  \)xdP@( < :endselectd 4:else$:select 1warger$$:if 'Focus'wevent$:case 13l:end|0S:case 'ONE'@4TT wi'Create' 'TForm' ('where' 10 10 5 20)@D@)LXEp욵P ̖  E  D\К̜ԗ\@엵D8̺wselfT 'fRname' 'oo' wi'appname'3 8$'RENAME'  SOUND'$0FSOUND  SOUNDD4 43 2";:8  / 4+9DDD )3,, , 48䉴D(  4, 8(   4" $SI E""=$ GWSDOCO $w  u+ 9$   P 4 $  u,$(zpositiveinteger(D +0䠵"6 9D TFfloatjec ( positivefloatW(4 $(H24$ ̡"6 P$ integer D{ .8\lĠ2{D$ TComboTree$$Su TEditList$$ģ TRichEdit$ SeTEdit $ TComboDrive$ SuTCombo Ltype($ TCancelButton.bn( TCheck $ TOKButton1$$ TComboFilter$؀Z  "6' *text~ $ `"6 u$0n @"6 Y+ 90 *check $} *aplnamep$$  r,9$   r9 wE iҵ/|a (  "6u($ ..*edobject$$ ݵ"6 $( b,( , t1 ԣ1 1(`jbnSaveDefaultsl'(<"" Is an onClose event required? - <@f  T1 ,onClose @kbnOK bnRecall 0  ॵ"600L  "60  1MS S 1$ t Y86 $, Աԭ@ Y86, hbnCancel (,eOp.onMouseDown($\ :*toindices$$@f W_Subclass$,  "7 ,  "69 xxClose w:*cot ispied D &  "7 D(W_CreateFilter($j  $D[ G+ ,ԧ,, ,  hD,k'SystemMenu'Click',&'DDl )x "7 `lDDl )t Ԩ"7 llD "&Topmost SP@$ MF_STRINGutt$$ AppendMenuk$4m $ԩT x"7 4( WM_SYSCOMMAND($e MF_SEPARATOR$$ AppendMenu$ &Events 0@$ a MF_STRING$$Ob AppendMenu$(D  MS Sans Serif(( etٵ@"6(LsizeD ,b U4 U, UD |1(  MS Sans Serifow'(   T', ܵ Y86, 9,$ 4ܵ"6 $ Delete 0/    "7 0$ 0"6 $0 4д Y8686 0D 1 ,h,"Ȳ Y86t1DD" ,P," Y86"1D(2 @"6(, 輵 86,D 1  V R , 86,D0\4  Y R讵 86&00"  T R 860 Lgvalue $D .fObs1.op1$ *Wait2 07  貵("6 860\ $  9 $ t8enabled $  9$ 8enabled eenabled $D :*toindices$S 0 8ǵ1 1 Resize   KAT D: ,  V R, x 86:D(,  86 R T(Јhwnd, U Id 89;,     $TG 2K  $ MorderP (  Y86 r (  |1(xD GetSystemMenuTG(  Q'5 *Focus $ԣ MF_SEPARATOR$, d Y,86,0ay E |/ $D AppendMenu$Dbo r)ĵӵ dӵ"7 G1D4 D$˵  "7 4 I:*cot G*new *Focus L ;   :8  + / CL$  $ Rvalue+ S 0M  ǵ :86 0(  S86 1 (W.bnD 1 Q V Q, / YD7 D D1 Q V Q, / TD$R *defaultss1$$S *children$ e Rchildren $ TT T V6 , w9P( 4," Q(,|.op( ȶ," T( W  R Y0 f  [   V 0     ,90$  / V T $ e (L 0 R"6( [ \;4FA !," R4 ]P ]where +astyle ^caption H$_ 7$T< u,,+ ,3м, vH   R $n :*toindices$_20, " uC00 8 Xõ"6, R̹, 90 `caption D)d &ػl Y,86 3aD( X@"6((a Tx"6(0 Ⱥ U,躵"60 ,'bnOK' onClick D 0  , , , ,8"6 72XD caption $q .bnCancelc$ wherec ( |@"6(xNew onClick D, 0X , , , ,p"6dDERP whereHU  stylee 4 Cancel _/ G:*Open ,K "6 R9-,U(0  R,, 9( "  v $H_ :*toindices$D ' , , ,"6Th V R R, + Ƶ:Ƶ, ǵ,3 AMP  K  HS Rchildren ;Show(T'bnSaveDefaults'(4[~ "͵ :86  \40 ʵ :86 04 $ \ȵ ,"; :86 4 "where D\ )x˵ \ R, ̵.\PD( hѵ R(xNew@(;  ̵ Y86 (hDraw0 Dӵ :86 W04` #P͵ R,.R4(   w(P@ CH E W $  R .V$ hwhere = $  w\ V$ where $  .wR$ wherer ( ɵ , R( where ?Text 8rD / ʵȵ"6 R$, RDD .0ѵ,":̵ 'UD(re  ~  ($Ta l  ,9e$ ,children D S u-  , / DuctboaD0) ϵ U,h͵"60$ ͵ K9$ Pdd  value  $  onMouseDown$ where@M@ 0 ڵ ڵε "60(0 $еHѵ@"6(fontl" Z εϵ"6H  ,,, ,`ϵ u, , ,ε"6l( 0͵@"6( ?Text where    + 9( 'Op.onMouseDown'((  |ϵ"6(? caption ( ѵ@"6(̴DrawDBu t-еXܵ ҵ, S,86 3DF     ڵ u $  е+ 9$ 0OptionU2 ,   ,/ ,F-,AH 0 TU6,< pscale a@  style@]@ l \ ҵ ֵ"6 , \۵,lԵ,t۵,,׵"6lL.op    t ۵   ص  0   K,/ 0 ?Text `ShadeWRD D -  , / D Lcaption $ AppendMenus2$$  MF_STRINGbs3$(| @ٵ," (New4 " (ٵ K,$Ե"64 caption (gw fԵ@"6(T?  styleQ.f (( Xٵ," ( ?  Frame 0 Եdյ "60( صյ@"6(fontD( 1Եӵ Kص, Y,86 S 3D scale1 (  Yܵ"6(LDraw0 xص U,Xֵ"60 onClosef 0( ֵ U,ֵ"660 Id'Resize' gwonResize 0 ׵8@׵ "60(t |"6(font( ۵ݵ@"6(?0 <۵ U,۵"60(  Q<ص"6(,size(:* cpٵ۵@"6(Tsize | ܵ/ $ 'onClose'$$ K $ h.fObs p$Ա4 $ ۵ݵTݵ Y86 34$  Y86$ border units ( MS Sans Serifop1(D 0ڵ۵86 Q, T,ڵ, YwD( tܵ86 T(L? ̴?iNewLHide 'Show'  @X  onShow" scalen" #h Dwhere $й :*toindices$̴Newض# self 0ffDUCT @l ( L޵"6L, 9(Form( ݵ"6, 9( New$  , 9$ :*cot  style $ :*toattrs$4D !" ^ߵ, 94    $ :toindices$$ |/ r$  :*cot  ܵ Y ,h  d , 3/ .f,30 "6޵"6 0ذ   1.fD@ %p@ M:86 ܽDD / wt w:8  / MTD  /J D (8"6"6, 3´´D$ "6 w$  .f1.f   1(P :f1.*children=( P:FMVE $ :*toindices$0 L M86 R0$  *childrenabe$  *visible  ',Duct Section Matrix,$ :*toindices$DUCTdDUCTh[P. ĸcaption $$(U @"6(DUCT  :*cot $  :*toindices$ :*cotp  /2 ,< $"6,T, 9,(  Qh"6(,8& ," YTQ,D0  w"60()  T"6(,lk:f1.cbSubSec.*value@,,k:f1.cbSubSec.*list,L(R :L0 , /%, L, "6, V,(,  Y"6((To  3/ Y (D ,8,"\"68"60oD() { , 9($ "6 w$D &"6 (: 3hLD,  VH"6 3,n    Y+9  (`m :*jobindices(0ܒ  w Y,/00x  wx"60  /, ( H@"6(DUCT class ع?Я EQ  ADh MI,:f1.cbSection.*list,(.lDesc.*caption(,k:f1.cbSection.*value,D, .D"6 "6,,d"6 ȴD 4 ..*self :*cot :*FMV $17 "6 V$,  V, N R,( "6, 9(( "6 3(( \@"6(( (@"6( 1(:fEQ.*children( 1   ' :*cot uD f 14e " 86T4,  8+ 9, (:*cot |:*cot T 1$H :*toindices$$@ :*toindices$(  V, V($  h"6 V$ *Closep $ *kwparams$ MouseUp (La e"6, 9((8m @"6(.f1$ :*toindices$," "6+ 9,L$$ x \:*FMVp :*cot :*cot :*cot :*cot D\ (|"6~ wD :*cot  gw.fEQs gw.fMI d  pgw.fADce |:*cotp ( @"6( (t < @"6( $ /2 TButton |TOption $P :*toindices$HDUCT D ) R,, R,(,0-8ѴD( , R(INFO4Must ask whether to rename 4t s to,@Need routine for <,0b. T860 b.TForm *Create  1 1 1EQUIPĴ  1 1 l1 |1    R' 8JOB NAME, SECTION or SUBSECTION80 4 V 86 R̴0$    V$ *caption (t  R~ Rf( OKto D:FMVUp \EQUIPn *class D e/ p< w:8  /  D Button DR 0 X 86 p:86 w D 1 hRENAME  1 SAVE AS AIR DIST ap i T1 MouseUp   ' MouseUp D! %@ :86 D(  , 9(TLOAD ,  9 $D ..*children$   4 ffMISC>t& *visible l4pDUCT:endselecte SOUNDs, :returnwnd0  T(BV[I])wi'*caption' 4404 wi'..*edobject' wself4 8 PMV3OrRw23LNpW {!!!!"#&&((**2224456:;<D>?@DDDDFFGHMNOPUVWX]^_`bbefgijkwxy{| PD .3!!.!K2?:SM[Uo]je8  BVB(l SOUND  wres2(0C1 T wi'*Focus'00  :if ~0Twi'down' 00hes T wi'*Focus'00es :if ~0Twi'up'lt 0(L :if 38=1warg(,  :if /38 40=1wargt,L:i 'FIRE ' (WSELF) (OV[I]) 'Enter exit button' nL,ls :if 13=1warg,  seldg (BV[1+BV wself]) wi'*Focus' JWG-10/30/01 go to a the selected buttond(to BVBV,BVle((ocs :if warg[3]ݴ(ݴ  (Xi'F (BV[1+BV wself]) wi'*Focus' go to a the selected buttonXL wres2 suppress default key actionsLPon BVBV,BV prior button else the last item'*P(ke :if 37=1warg(X BVBV,BV next button else the 1st first buttonerX(\p :select 1warg (])w'*cP4 BVBV,BV next button else the 1st first buttonP8d Handle enter and focus movement keys8ndebut4n h (WI'next') wi'*Focus'4d  wres2 suppress default action else new focus will not be persistantd8 move focus the the 'next' button8 Inosg \e o KV1BV wi '*caption' key chars for each of the buttons,'\L<  LV[I] Go to the selected handler<P4  T(BV[I])wi'*caption' 4d IBV wself index to the current buttonOpd(( KC1wi'*caption'(8  Handle button selection charactersren8tes@  LV[I] Go to the selected handlerhi@etr 8:*t :return End of MouseUp handler8D 'INFO' GInfoMsg 'Need routine for <',T,'>'D\jet T'Must ask whether to rename','JOB NAME, SECTION or SUBSECTION't \4 'ff'wi'*Create' 'TForm' 440/1/0( GSaveJobfile' ((eyM GOpenJobfile(Txi GPopulate Display current job parameters T`ot wi':*toindices' ((wi':*cot')fread HIDS,11) 09/07/01 2`TD GPopulate Display matching job parametersi'T\'], wi':*jobindices' (2frad HJOB CNO) secno subsecno facnop\@ Use setup from the last takeoff line@( :if 1t"h?"@  A 袵B)ȢCDEx*8F*G+G`H,IJ,KT LpM+N+N(O'PpQR@ ST U pU ,V WXp YH Z&[ \$]^X_<`*abcdefghhTi<j,klmTno,Pp q,rsDtLu vwxyz{|}X~0x)`%@*LH4) *@+x$*\)-D0((\8l\*Dp( x@,8X((dlx48T(1(h-(|.  ( (F) GKwExit $H :case 'DUCT'mer$ l (V) topFrames $ GInfo 'DUCT'mer$ :select wevent $П :elseer$ :case 'MouseUp' $ :endmer$ 8 MouseUp:_ $X :case 'MISC'mer$ | :select T $ :case 'EQUIP'er$  :case 'OK' $ :case 'LOAD'mer$  :return $$ :case 'SAVE AS'$ H :end $h :case 'RENAME'r$  :return $ UCSTOPmer$ С POP_ $ 'wres=' wres$  :return $4 MouseUpmer$ X POP_ $x wres2er$  :return $ :if 32=1warg$  POP:_ $ :returnmer$ $ :else $D :caselist 37 39$ h :end_ $ tab shift$  :return $̣ :returnmer$  UCSTOP $ :caselist 38 40r$ 4 :endselect $T :return$ x wres0_ $ :endmer$ :case 'KeyDown' $ܤ :return$  :if TKV_ $  :endmer$ D UCSTOP $d'wevent' weventer$ :case 'KeyUp' ̥ :end_  :return T :end_  :case 13_  LV[I] D  wi':*toindices' 0 changed 3 to 2 07/31/01egD TMgoxT GPopulate Display current job parametersTXeco wi':*toindices' (1fread HIDS,11) 09/07/01XX GPopulate Display matching job parametersXD  Use setup from the last takeoff lineD@  wi':*cot' 1 07/31/01@ey@  wi':*cot' 1 Top DUCT button exit@@u Note: A takeoff of class other than duct@BrwerL   SOUND 8 :end | :else  :end_ D :end 3/24/00 default to round. insuranceDH An error will occur if more that one of theH_ dsetup_Handlers;case;CFS;BV;I;KC;KV;LN;LV;OV;R;T;V;WEVENT;WSELF;t;CV;U;FMV;CA;CNOed\ FMVwi':FMV' list of takeoff class object names\LX 'INFO' GInfoMsg 'Need routine for <',T,'>',TCNL,TLT:if 'MouseUp'wevent added JWG-10/30/01ntT$ :if 0=+/V r$ 0 :endselect L wself((wi':FMV')[wi':*toindices']),'.ed1'LT topFrames wi '*visible' 1 Frames must be set to visibleT$:andif 1warg[3] r$P (BV[KVT]) wi'*Focus' go to a the selected buttonPLX VFMV WI 'opened' flag active objectLT even if the frames are closed.T TT~'&'(8 GWSize'Shade'(P set wself and edobject for GWSize 'Shade' routinesP V[1]1 (d  GKwExit 'DUCT'( e ("6 T T(V/FMV),'.ed1' name of 1st edit object TX :if 7,wi':*toindices' "if" statement added 09/07/01XL takeoff class frames are open. If this happens'EQLT V(CA(topFrames)wi'..*children')WI '*class' 7/04/01TP wi':*toindices' (4fread HJOB CNO) 09/07/01PT wi':*toindices' (4fread HJOB CNO) 09/07/01 T :return ( Setup button handler(4  Use default toindice4< :andif 0<1fread CNO50+LN-1rs<L JWG-10/30/01wres2 suppress keyup actionsѴL` wi':*jobindices' (2frad HJOB CNO) secno subsecno facno`` IBV wself index to the current button01`  L'/- 8 :andif 0<1fread CNO50+LN-18H topFrames: Class frames..fDUCT ..fAD ..fMI ..fEQ?H@X button order: OK DUCT AIRDIST MISC EQUIPsr@LX11Click the LOAD Button to load or create a new jobL@ additional check will be required. 1 @( GKwExit 'MISC'(( wi':*toindices' 0(, :if /9 37 39=1warg, :elsent :else` :ende1 , ..cbSection.*Focus,  wres2p  :returnT BV(/V ss 'Button')/CA 7/04/01 button objectsT0 :if KC=Tav[io+1warg]0 wres1@  :endw(  GWSize'Shade'b( UCSTOP ` :elseH  TT~'&'w| :case 9(  :case 'AIR DIST'l(p  :return0L Use default toindice0(  GKeysMouseHndn(,  :end left button only,  :endONE,L  === Button handlers,(  wi':*cot' 2 (($  GKeysouseHndld(( wi':*cot' 3 (,2 wi':edobject' T,,L may be active,8L (but it should not happen!)8,x :if 1 . V R86,1:return( 4 , 9( *Focus (l 4 4, 9(D 12/863 T0 , w/ RD gw.f1ck $ a d 3$ pgw.f1Ӵ (t e0@"6( @:*ERR *class Comboд D *40 1/86:86 wiabsD 3(..cbSubSec.*text(  $31$( *childrenԴ$(  4, 9(( `35 9(, 1"604"69,t ,..cbSection.*text,4 # V V V,/, Vt4,h   R, V, *style D| , R4\2 R:86 , / Rд״D$ *childrename$ KeyDown $KeyPress @KeyUp]  51 @ WARG= $( case Keyup$ 31 21Edit$\ :cdsectione$0 \5"64"60$ :cdsubsec$  tFocus] w   '(..cbSubSec.*text(Exit$0 :cdsection$0 5"65"6 =0,..cbSection.*text,   51@ wi':cdsubsec' (wi'..cbSubSec.*text')@4 ===============================40 wi'*text' ''04 :if 0=(wi'*text')~' '4DM DM, egPVRw5f  fffffffff"#%%'ff++-./f12ffff8:=ff@ffCDEFHHILLLNPVRSVVVffffffff`abcdff f2/f:@=VNefRN0 wi'*selection' ((T),0) S 08 6 wi'*style' 0 left adjust text8AITOL  ,)J<7\I=$>@5(7h> 6 A5<6T4>D3 E H1 ? dH 윸М@@.?GK(H7I>34?-A-M<-TBT|Tx?-H@0F3 tF<!dJ"tG#E$DH%>&HJ'K(0J)E*G+E,K-A.K/T0I1H20K3pE4|65F06J07Ld18L9XL<1:6;8E<D=PA>D>?6@>ALBICxA/D,B/EDt0FBGhDD/HL@|2IKJTDKF/L@GMG.NDOCP>QC02RDC1S?THKUL.VHWCXT?Y?ZhK[9\PF.]J^t9_F`La@bD9c(@dI)/1),I JWG-10/30/01DD̻ I1+T wself JWG-10/30/01DD I((I=0)/T),I JWG-10/30/01DDjet I1+T wself JWG-10/30/01DƴH T(V( 'Combo'), 'Edit')/'gw.f1'wi'*children'HDTFl V('gw.f1' wi'*children') wi '*class'۴DD BEEP wi'..*Close' 07/05/01D8 SOUND wi'..*Close'8D Allow windows default action to handle characterD@d Check Section and Subsection for and change@ :case'KeyPress' $:case 'MouseDown'er$ d'case KeyPress' $$J Twi'*text'mer$( :if 9=warg[7]l( :case 'KeyUp' @D:if warg8 32,46,(47+10),(64+26),95,95+26@4 'Shift+Tab 15 1 1 0 0 1 9'444 ':case KeyPress' ('warg=' warg)4< :if 1=warg[3] ShiftTab9'<  :else(< SOUNDb( :endt D:if 13=warg] x :else :returndit8 wres2 block default action=8H :if (wi':cdsection')(wi'..cbSection.*text')?H@ Some virtual key codes and not valid for AV@L Open and install in GWEdit before Action after debuggingL@ Tab key handler for the Setup area 1 @ t:returnD H:end` UCSTOPt(|wres2 reset hold( @'case Keyup' T`combo_Handler;case;else;endselect;end;if;return;select;I;T;V;WARGT0 'TAB=15 1 0 0 0 1 9'0\:end  :end @ :end ,$ GSecSubSection, :return( AV character codes.(8 wres0(T :if warg[7]27 9ld(:endselectt(Q :if 27=1warg(,` (T[I]) wi'*Focus', x :else 0  GInfo 'KeyUp {Esc and Tab}'40  wi'*Focus' 8:if /33 34=1warg PageUp PageDown8$ ..*idparams$$ ..*idparams$(  XT"6($ .w$ ȧFOR < *color D F3xS ,M, X,hR, ,N,/-D,  XxM S86,X w .X ((  X w($| U"6 Y$ h*color ,  P, , 9,X( Q S86 X(( .w(D| & N Y86X4DD , $O Y:86 L|D(  X w($ .w$,  XR S86,.(  w .X($  T, 9Ӵ$ \:*cot $7] 4U, X$  Q  $ ..*kwparams$$  , 9$ pA SPACE 4 #pO XS"64,  S, , 9,h>(X TM S86 XM($  S$   r $ ..*kwparams$( T"6`U9$($ ..*kwparams$ 1(о> TAKEOFF DATA@((d..lDesc.*caption(, 8S"6+9,.M$  9$( P 86쒶 Z,d, , \P$ .sc.*where$t aL R R4 \,, 86,, R,l 86t4 #  ,+ Ԓ.4h U  Z,D"6 \,,+, \, ,|.h J IHBHFHHIlH x x*size@ , 菶p \, W,X(-  86 \($0 :*margins$D ,|  ,/ , D4 #( | , }4(  86 \((?:f1.edName.*text($! borderstyle$x$. *kwparams$, Ӷ, L86,>>X GLt ,d,ЖP,䗶"6 3X D+*caption |) ( |ė"6(%*def d+GWButton .wherelc ( "68(%.l11` O0 ,,И8| ,86 L`">X0= 6*text $4 ..b1.*Create$( lܚ@"6(<&.ed1(@ @"6((.f1 p/?count * | wherelc 0  D"6P0$  , 9$ 8)*count  ,1 /*style 0*tabstop (P "6(( 8@"6(3DATA /count0~ 8)Actionrs P6@0> d+TLabel wres1 p0countnrs t.aplname $ *onMouseDrag$( "6(( ("6(, , ,  C,  B؝  $5 *onAction$( data_HandlersPA($ *onMouseUp$( t"6(( data_Handlers0@( *onKeyUp ( 䜶"6(( data_Handlers(( 4"6((@ data_Handlers(4 $X"6, ,ܛ"64( `@"6( @ ( TEdit"Action"@($ *onKeyPresss$$+ :*jobfile$ @1(X  data_Handlers(P @od ,PӶ̢hp p ,86 3 @Y@$ GWEquipData$( P", 9 ( *style $1 *onKeyDown$ 7*Create 0 Bܡ Q86 30X0c,2   90, /   $(4 :*onAction$ p0*Create L(  1 &   T' #   Q# ,4GWEquipData"Action",6 -@83A6F D*FMVQ New 7handlers 7TEditdit $ Զ 0<$ 8*Create 6 cp5.ed1 @7 datan h9wherelc &80 80 ( 0 Q, Q(.  1\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\   Q H..SQUAREDesc Square ductROUNDDesc round ductH(  Q, Q(H00MISC Miscellaneouse itemsEQUIPDesc equipmentH|/=(d$(3"  'D . ,,觶xP"6D0 ,詶 86 30, ( L86, >.wherelc := <*caption Xd7 cHЧt L,8T  ,86 LX4$ !  L86 ,84, @ L86,<c5.l17 1Ma "  'rp\  L17.f1 =GWButton t@> >count $=*tabstop , @ L86,<>:>  : T@*Create :aplname , 쪶d@ L86, =wherelc >OTHERnB $  qty_Handlers$ LLhandlers hwherelc $le .ed7.*Create$ =TLabel <=\ J̨Ъԫp0 86 L\$0S .b1.*Create$3*def,3RESERVED FOR HELP<,0$  L86 , 0, P@ L86, GWMat #8 9? Rcount ,P 쫶p L86, G*tabstop pGaplname , @ L86,K>`I=< RFIELDn $V qty_Handlers$ handlers wherelc $ .ed6.*Create$\ J 0H`Pphp 86 L\P?*def0(  L86 , 0, ܭ@ L86@, GWLabor #7 8J Lbcount b*tabstop ,P < L86,P  |10ne  "6P0$er e , 9$ T*count  x1 U?count~ 4 $T"6, ,"64, L, , ,( t"6( TAction ( ܱ"6(cl Ԯ1  ' Paplname , <@ L86,lf>W=H Mcountn  Cܰ  $Y *onAction$( TEdit"Action"(( A,P"6($ qty_Handlers$$ *onMouseUp$$ qty_Handlers$ *onKeyUp $ qty_Handlers$$ *onKeyPress$( ("6($  qty_Handlers$(GWLabor"Action"(( 4@"6($ *onKeyDowngs$ b  ܲ1 Pf?count   ' <1 *style $W :*onAction$   Q hW*def0  Q86 30 1\New [*Create ZSHOP0 " L86 , 00   "6r0\ J8X䶶̶tp 86 L\$TS qty_Handlers$ Shandlers  #7 8  wherelc GWLabor [TEditon O   T'(L ึ", 9($Y@$ Action , @ L86,, t@ L86,h|c=Q i>$  , 9c$ *count  |1 Lgaplname gcount ( `Ժ"6(4 $P"6, ,"64, , , %,( d"6(( й"6( h*tabstop ,  \ L86, icountn \eA?  C<  $0l *onAction$( TEdit"Action"($ qty_Handlers$$ *onMouseUp$$ qty_Handlers$ *onKeyUp ( <"6($@ qty_Handlers$$  *onKeyPress$$ qty_Handlers$( GWMat"Action"(( 0@"6($ *onKeyDowngs$$L qty_Handlers$ n"handlers  wherelc $L .ed4.*Create$$ .ed5.*Create$  T' GW a  Qw G 0 L Q86 30 th*Create *style $|h :*onAction$( ", 9(g*def@N  Լ1QNew\ JDö\ڶ<pLŶ\ 86 L\  hTEdit c  $0l@$0  L86 , 0, @ L86,TOAmCOSTTf ,qaplname 4 $`ö"6, ,Ķ"64( <`"6(( "6( |x*tabstop , ŶT L86,u#8 9, , ,  C,  B  $ GWID"Action"$(s "6( wres1 $ *onMouseDrag$$ id_Handlers@$$ *onMouseUp$$ id_Handlers?$ *onKeyUp ( "6($@ id_Handlers$$  *onKeyPress$( `¶"6($ id_Handlers$( @ö@"6(v*def @ ( TEdit"Action"@($ *onKeyDowngs$$ .ed3.*Create$\ J¶¶Ŷʶʶ¶pƶ4¶ 86 L=\$ id_Handlers$ handlers @wherelc ( lŶ", 9 ( *style $x :*onAction$ `z*Create Hu>0 Ķö Q86 30HbNew TEditdit 0} lȶ L86 , 0, ƶ@ L86,,x  Pֶ9w, u   ${ *onAction3$n  ö1hl   T' 8j   Qi GWMat 4AyID@6 6  aplname ( 8ƶɶ"6(4 $ɶ"6, ,<Ƕ"64(GWDesc "KeyDown"(, ƶ, , %,GWID *tabstop , ׶Ŷ L86,(GWDesc"Action"B(  Bȶ  $ *onAction$( ԶǶ"6($ *onMouseDown$( ǶǶ"6((@GWDesc "KeyUp"( *onKeyUp ( ضȶ"6(( ȶȶ@"6(t*def @ ( TEdit"Action"@($ *onKeyPresss$ *style $Ĉ *onKeyDown$  Create 0 ׶8ɶ Q86 30( <׶", 9( ؛   $ :*onAction$X{   ׶1u   T' s   Qs (0 |ʶ"6(@*def( tʶ"6 (>{8= |*text (  \ζ"6(( ̶@"6( Ͷ1 `Ͷ1 Daplname (t  Ӷ<ζ@"6(QTY$  , 9$ H*count   T̶1 count  @Ͷ1   ' Ͷ1( ˶˶"6( ؈*tabstop 0  ̶"60 ?count ̄NewClass HAction Shaden , hж, , ,( \϶϶"6(( ϶϶"6( count $ ..edobject$  Cζ  $ *onAction$( TEdit"Action"(( A϶8϶"6($ qty_Handlers$$ *onMouseUp$$ qty_Handlers$ *onKeyUp $ qty_Handlers$$ *onKeyPress$( жж"6($  qty_Handlers$4 $ж"6, ,ζ"64( GWQty"Action"(( XҶж@"6($ *onKeyDowngs$ *style $` :*onAction$   Q 0 pӶѶ Q86 30 B Ӷ1h @WҶLԶҶDض0ԶԶlԶ`ӶҶ 86  3ah ȍ*Create    T'=( 8Ӷ", 9($@$~  Զ1$ MI [9999]$$ qty_Handlers$$Fo .ed1.*Create$Newą Ax 8caption 4TEditt $.w .ض 0$ GWQty ,#RESERVED FOR HELP-,T2 #8 5 ȍcaption wherelc ,HGWDesc "MouseDown", ةP ( ն Q, Q(  hֶ1\