$ 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\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\  ն Q H..SQUAREDesc Square ductROUNDDesc round ductH( ֶ Q, Q(H00MISC Miscellaneouse itemsEQUIPDesc equipmentH ` GWDesc \ Jֶ׶׶T׶,ضl׶pֶض 86 L\$ qty_Handlers$wNewAq> |wherelc  handlers TEditc DESC &30 30 $ .ed2.*Create$= Dhandlers $ ڶ 0$,GWDesc "KeyPress",( ٶ Q, Q(Ȇ  Dڶ1\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\  ٶ Q H..SQUAREDesc Square ductROUNDDesc round ductH( ٶ Q, Q(H 00MISC Miscellaneouse itemsEQUIPDesc equipmentH~=i$ dܶ 0$( ڶ Q, Q(  (ܶ1\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\  p۶ Q H..SQUAREDesc Square ductROUNDDesc round ductH(Du ۶ Q, Q =(HPo00MISC Miscellaneouse itemsEQUIPDesc equipmentH$j 0޶ 0$t( ܶ Q, Q(x  ݶ1\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\  <ݶ Q H..SQUAREDesc Square ductROUNDDesc round ductH( ݶ Q, Q(H00MISC Miscellaneouse itemsEQUIPDesc equipmentHl$8l ߶ 0$d( ޶ Q, Q(\  ߶1\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\  ߶ Q H..SQUAREDesc Square ductROUNDDesc round ductH(l x߶ Q, Q (H00MISC Miscellaneouse itemsEQUIPDesc equipmentH$ e 0$t4k "  h"6,H"64 :FMVD Д:FMVn (  Q, Q(  1\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\  H Q H..ROUNDDesc round ductSQUAREDesc Square ductH(  Q, Q(Hy00MISC Miscellaneouse itemsEQUIPDesc equipmentH, t, L86, *caption `99 9O8 , ,p8tt ,86 L`0 "6 ,8xn0( @"6(h*def$>= count Оwherelc *tabstop ( X"6(.l13.ed1 aplname ( P@"6(dDATA ܚTLabel cx>,  u,( @"6(\D L4DTpt86 3\ *Create ,RESERVED FOR HELP,, "6 , ,(  data_HandlersIP( handlers &80 80 wherelc GWToData <*Create ..ed3 (H |d"6(` *def0SQ e u"60 d*limit (L "6( L*color $$ <*tabstop aplname (P ,@"6(( P@H@"6(  *textB > countn SIZE2nrs $P$( |<"6(X*def(d{ @"6(, \ u,( @"6 9(0  u\"60$Ъ$= *color (  t"6( aplname ( @"6(( T@"6((8 8@"6( *text" $P$(P "6( x*tabstop SIZE1n ج count *style   $2( size_HandlersS@( m x,t$Q`DXH ,86 3=00 *limit $ ..edobject$#8 5@ dcaption D [9999] (  86 L($  0$ `*Create d0 "6  , 90 ذhandlers 0*Close |:FMV (L   "6(.ed1( "69( 0:FMV 4RD f"  86 4 d*colorB D / L,d8 86D GWSize Hwherelc D -|w 86 BL@D$ ..*kwparams$ TLabel X6 F  , 86:BX, J Y, Y },9,ܭ=t=g5   L ;D L86 t: Y, , \,9L0  Y < L8604 "  L864(  Y, Y((x  Y, },9(D % Z\$`, L86D 0*caption > į D & Y d L86 ZDL ;@ Y, ,86 LL حwherelc P*wherec $  ..TextSizegs$ l*color X=  *size *Create@ D 4 86"6+, \D(  Y, Y(8.lD .  L86:  \rD$ :*margins$$ ..TextSize$4 B"  L8640  Y 8 L860 TLabelF@ D '  Z,X@, L86dD,  Zx L86,\ $*caption Pwherelc T*size D 0"6  L86 ZD   L S $ ..TextSize$,  /0, 0,>  d Q $0 GKwsMouseHnd$0 1(L ENDdesc quit=(  '\AAOVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers\H..ROUNDDesc round ductSQUAREDesc Square ductH0/TESTING1Desc testing0(VA t Q, Qesc(( i, Q, QUIP(4esPRINTDesc print routineN4( 0 Q, Q(    } (sc l , 9Des((Se t Q, QUBS( ȼ  ش..font L ;@(H Y, ,86 LLL <  , :, : L    0 H ,86+90(  , 9(н.l1Xde cF   ,   , :: CTX,   86, Dde c%| :86 ills and RegistD sc l  3E $Դ *onMouseUpS$(H L 86 sc( *scale<@ *scale *colorze ԶTLabel *Create (gi t Q, Quse((  Q, Qz(H00MISC Miscellaneouse itemsEQUIPDesc equipmentH0FACTORSDesc FACTORStS0Xqu??NAMEDesc NAMESECTIONDesc SectionSUBSECTIONDesc SUBSECTIONX( @ Q, Q( *selfe T t*font $Դ *childrenNs$H 6(  `, ` ,, 86H,HELP Help message,\ L Z` , Z , Z@  , \,   Z ,$$L <     RL,  R` 86 , į:FMV D -@$  86 | |D Keywords $ ..*idparams$ 0#wherelc wherelc @  H*caption *caption 4 $ U U Z,"; 4D$ + R, +  86TD$  $ *caption 0  86 0$Ac et  9 $ *Hide  $ *children$`0 N  ZL , ZT ,@ Z4 , U`4 #  ,  Z4 " D +  R 86 LD$ *children$0 T 86860L 9   w,  3 + wer L,  w:8B ,4 @$  Z,"; 4 *visible @  $$ X  X H   ,<  X(  , 9p((   Z( "    $T$  ĭ   0 (P .fKws.*Create21(= x 4>   L S 0  Y @  L860    ,    L86,,  `  L86, *caption *color *font" h@ X Z8  S, ,  ,  @p P  YD , ,86 Lh0   Y, Y },0= (*Create HTLabel Զ*scale wherelc  0   Y, Y }, 0(H  , (,   L86A,0 @  Y `  L860  0(  ,  ,90,  ( L86,>@.l *caption   L S D.sc@DL 3 Z,, ,+ QD(  , 9(( @ Y, Y*@(D )  ,86 \, \,@L@D,   L86(@, , @ ` L86,0  Y x L860, @ Z L86,x= ̿*caption *size Z l  } 0T   ,.0 *color *font" (  ((,   Q, ,9(0  86 \0( < 86 ( *Create d S ZlL ,l@ Y, ,86 Ld   Y  l Z Z Z, ,T, \,+ ,  ,+ , , \,8.lн.l0 4 + .,0 $wherelc D*scale TFrame@  TLabel 0    860A  Z0 *size   =>,D *where  :font $ "6 4$ *fontn \l J$ \,,  \,,, 86Z\0  ," 00, << 86,$  "; R$ l  (  , 9(Tself(   ( .l1@ <*color *size ` N Zt@,8@ Yh, ,86 L` TLabel `scale 0   860A  Z00Ԭ  ,86+90       Y   r    } $  $  :fontܵ $rm h"6 4$$|  , 9$ *font (!  29(`.l 0*Create 4 #  , :8B 4H( 8 RP R, :,: HD 1 R R, :: D<  !"#()*< *where lR( , 86 \(D' -8@H 86 lD  wherelc (< IdsHnd ` O`t, &, &0,, 86`*  \*style $ *onMouseDown$(( wherelc $ .sc.*Create$L 9  , 86 L => 4Scroll T.lsiD (" &:86 t"6 D( .fIds.*Create( DTFrame *caption H*caption $ *onMouseUp$ ..BCV (q  & "6(( # @"6((  P"6(  Sizes *wherec ( 0"6(l> dwherelc ENTERn *caption $T *onMouseUp$( &"@"6(( ""6(T D!!|!d!x#!"6 3 &, &T H*style $ NumButtonHnd$  ..BNVc $x ..b18.Create$( '"6(=@>,== *caption $p *onMouseUp$( 0($@"6(( X%!"6(T D###|#|%x8%0#"6 3 &, &T *style $ NumButtonHnd$ $*caption  GWButton $ ..b17.Create$( $!"6(T=8>=L= Pwherelc P*style *caption $ *onMouseUp$( *H'@"6(( h'T$"6(NEXTT D0&H&&%#x'%"6 3 &, &T GWButton $ NumButtonHnd$  wherelc $  ..b16.Create$(  ,4$"6(=,>== *caption $ *onMouseUp$( ,(@"6(( )&"6(T D`(x(H((*x)'"6 3 &, &T P*style $ NumButtonHnd$ 4CLEARn  GWButton $ ..b15.Create$( d)`&"6(@=$>=8= wherelc *style *caption $ *onMouseUp$( -+@"6(( +("6(BACKT& D****(x,8*"6 3 &, &T GWButton $p NumButtonHnd$  wherelc $ ..b14.Create$( .("6(=>== *caption $d *onMouseUp$T D,,,,.x`.@,"6 3 &, &T X*style $ NumButtonHnd$(& .+"6(  GWButton SPACEn $ ..b13.Create$( 1/@"6(,>=$== *caption $@ *onMouseUp$( D01@"6(( 1<-"6((  R@."6(PLUS( /.R2($& 0"6 R$ *fontct GWButton $\ NumButtonHnd$ MINUSn wherelc =$d ..b12.Create$T D0,0/.\0x41."6 3 &, &T( 1-@"6(( -*"6(H> D*style 4(= wherelc $GWButton T D1l1T112x|0X4"6 3 &, &T *font $ NumButtonHnd$ LGWButton |>=t(.  *style L=T^ @wherelc $D NumButtonHnd$( <25"6(( 24@"6( >= *style $ NumButtonHnd$0q  4,0    & pT ` 6522dl 6x56 ,<4,"6 3 &, &p( 03P:"6(..b@$  ..b11.Create$( 23@"6(( 66@"6( $*style  D=$ ..b1.*Create$X G8<8: ,(7,@7X7P,@65"6 3X, tl7 L86,c GWButton $  *onMouseUpe$ wherelc GWButton 0TI t5k"6 ,8C0 D.Create *caption h 1  *caption *caption =H> Hwherelc ` O;|=8 ,?,|88:tn8 ,86 L`( 0:@"6(X.l1  ( @count wherelc ( :t:"6(h.ed10  :"60 *onKeyUp wres1 $ *onMouseDrag$( data_Handlers($ *onMouseUp$( 09P9"6(( t99"6( *count @*tabstop $  *onMouseUp$ aplname ( ?\8@"6(x?DATA.f12 TLabelt >(GWToData"Action"(  B0=  $ *onAction$( A;9"6(( data_Handlers(( <X="6(( data_Handlers?(( `<>"6(( data_Handlers (4 $l>"6, ,t;"64, ,;, , ,( ==@"6( @ ( TEdit"Action"@($ *onKeyPresss$=d Q>h@\l?8@@p,FC> ,86 3 d *style $0 *onKeyDown$0 Tn@ Q86 30$ :*onAction$( $?"6 (.ed2(8 size_Handlerss(( F@"6(*def, ?@E u,@>0hE i u"6i0$T$$>0 >,== handlers ( TCancelButton( wherelc ( | E"6(( lA@"6((\  SHA"6($l *datavalue$$ *suppress$0  Y/ ShD"60D .B(BxBBBlCB2D$  TComboTree$$ TEditList$, @HCD2,$ TRichEdit$ TEdit $ TComboDrive$ HTCombo (P (C F2( TCheck $ TOKButton1$$ TComboFilter$ *Create $ *suppress1$ aplname $ *aplname$( lFpJ@"6((| LVF@"6( *text~ D TButton  E"6' ( C@"6(0    YC"60 *text $xP$( JC"6(0  LF"60 class 0 XMG" P0 (TOption 0GWSize  *count    *tabstop $  , 9$ l*style ,  J"6,(|Rexec A;elx(( IJ21(&@#(  S`H,+ Su(DT +G"6  S, Q, SXD$  *:charwidth$(  S I"6((L  dG (?0$  S" S0  dI"6' $\ TComboFilter$0TP pI@IHM20 p*limit~ $ TComboDrive$ Tclass $  TEditList$$ TRichEdit1$( size_Handlersn"(, L, , ,( KK"6(( LDL"6( L countn L SIZE1nn $p *handlers$ pTEdit  C8K  $ *onAction$( TEdit"Action"(( KK"6(( size_Handlers($ *onMouseUp@$( size_Handlers@( *onKeyUp ( size_Handlers?($ *onKeyPress$( I4M"6(4 $M"6, ,K"64(GWSize"Action"((  NM@"6( TTCombot $ *onKeyDowngs$0elx'R''''0'  RC0 *style $ :*onAction$0| P` Q86 30$  ..edobject$$@$$T ..TextSize$ Twherelce  mg ,0R@PQPPRhN`TQO ,86 3   1D@6 %PcDN"6 Z/ $D(D  O"6(\.ed1$ @b"6 $ H+:*last , P@ 86,  '( size_HandlersS@(D 'l ,(T 86TD$ *tabparent$#8 5 P TEditt  xN D .R S86 ^]WQ SRDD 4handlers  *Create >= <+*where 8/caption 4N xL& eUU ,4V,VU ,Q,U ,Q,e  86 LxP =UdV,UWWTVHUU P4 ! dU, , 44q #ͷ Vo , o4$S  ַ%$ Round $si l 0$ $SquareI 7*caption 4 # , 40 VTS 0( Bh[Y"6(\DWRD lGWSize RDc@ADc@SQ@p.f@EQ>@.f1@$Hide\.f1@p.H3D( Miscellaneous(= @@MI@ OVd$@' countries$$ clipsiblings$$Ovall Zg@lf@f Xe,  g,if"6 lxDWSQ\DWOV( TObject"onMove"(D=  ]a```$[]pcccc]Z dZZddLZ`Yx\ a0aa]^ ^@^Y`^d^^^d[4\e^_ _@_VV`_____`22;   `1(ApplyStyleSheet($ Y1(L DecimalSeparator( ?orient   / $@ *orientngs$$ ``1( GetCommandLine( @`1( EnumChildWindows(rs  '( GetBitmapSize(( (,c"6( I2C(d  Y["6( !VT(@ A`b@"6(horz  k Y $" *onAction$( Wc"6( must( \b"6(| just( bDd"6(t D2C,TObject"onExitError",, b, Y, Y , d'*Create 0 dd"6Ta"60D -ta@8e\ Q86 3TipFormD 8XClassn XTextSize Redim ChStylek Children DCheck Av2Ansi Ansi2Avm wherelc wherel suffixll  inifilee ,handlers Lenabled country checke caption attachX 4apptitle Taplname tapldirne orient class Action x*Create $ WhwndOwner$$  VT_Variantt$$0 VT_Dispatch$$h& CountryIndex$$ Control2Var$ $&*scale 0 *style $  ClipSiblings$(D& pe", 9('W2C     $! *onExitError$ H+:*last $ clipsiblings$  e1(`"TObject"Action"(   T'( TObject"onExit""(    Q $H! *onDelete$ 999991 $T StyleSheet$$$ SsColumnsid$$4% SmgrHandles$ |%*onMove $X% SessionFocus$$% GetWorkArea$ %*onExit &*..scale $% FileExistar$$D& EnumFontst$$p  windowsdirt$$& resourceslor$$' installdir$ P Scroll '>,)A x,wherelc d !Newl \Hf@$h@8gffhix,h"6 l$ *tabparent$ H-*style $ :sc.*Creates$ *^ ,)=+= x( [9999] '= +l \g@4@th\hDhj,kx,i"6 l$ *tabparent$ +*tabstop $ :H3.*Creates$ ,*style +=4+=L+)>0,  86 L0, j," +9,0  Lk :86 L0`K qTj@@k l,+Z,jj [j,ٺ8,4j"6 , R, ,wherelc $ :H2.*Create$ +wherelc ' TFrame $* *tabparent$,&  a Z `  ,1 \ >3>+>("TScroll"Action"( lwherelc *Close 4 $  [, a864,] 4p a86,-*def 8* Items 1, 4x Z86, =4 $ \ [, Z864,RESERVED FOR HELP,p ]Lmtn@Py , @,t0(} oho ,86 3p(9 data_Handlers(0  ~"60$ ~"6 $ H D 4 ZD ,r, , D(  \q"6( @DTEditon *Create F&80 80 D ( Z ,\m ,, \[0D(  Rhq"6( O*Create (  `86 (K.ed24 " q"6 44(Air Distribution(4 $  R4 *where $ dataclasser$(p  86 \(T.fAD$ ?dataclassH$ t*style $0 .C.*Create$$ *dataclass$$" {"6 4$ |1  .C.*font $ .C.*where$ v1r  p1 }1,, ț `86,$P  :*toattrs$  'DX ' R s"6 Z4D(BJ W@u.R(?$ |t"6 R$ TextSize D + T :+  YD0  r"; s r00  ~,w u860,  Yx u86,  @wherelcn 0  <"6 0$2. V,r"6 $ ..*font $  , 9$ Yhandlers 4T " r r.r4,`  \p `86E,, uH}@ u86,, T~p"6 u,P Xscale \ L T~ , Q( ,hu@H"6 Y Y/.r\  t~"6 l "6 $ dataclass$D 2܂w@}{ S86 3ACD$ Tw S86$ Xscaleon $  T, 9$ XDelete $  Q, 9$ *where (D ", 9 (ZI2   T s D %t,w8,|z, S 44D$  T Y/ T $ <*caption 0  T, r0 X*font 4 !y T,  TW1.4(4  T, 93 (>.ed1   T T $ Dummy text$    0  Y 0A   0,ER C Rz u86,( }@"6((4 |p@"6(fm$ x"6 R$ X*font , L{@ u86,*, `0~"6 u,   || R $d *onAction$(  R{"6((New, , R, R,( 0 ( Q86 30 |1(GWClass'Action'(  T'(TFrame'Action'(  classOne  Action FGWToData p *scale , |, R, R ,      Q ( ", 9( Form    $  .H.*Create$  Label <Delete h<7 $ .C.*caption$$h .H.*where$ ?TextL X*scalerd $ .C.*colort$ xLabelo T*scale 4CLASS OF TAKEOFF MATERIALp@4  Frameon 4 ! 솷"6 Z4 *Create pDraw$c "6/eCl$ |?*whereSi $ :*toindices$(4  RȤ"6p(def(  "6(.ed1( D"6((New$0 dataclass$D 4@̆hp [,86 `D40defi( LTObject'Action'($  FG/Ductboard$ Xwherelc *caption Open4 " Ż`,"64Font0\$dx>A( P"6(( .l7N + "6 ( p@"6(( @"6($  *..suppressM$$ *..suppress$ ̅1 1(  p"6(4 ! X ,, 4$x  셷+ 9$ 8*..size Page *..Send Frame 8Status" 4 ! Ў"6 Z4 ?*Createa D *ph䃷 ,86 3 eGriD(Oval Dual WallS@(  GWClass $ ..TextSizegs$ *fontn wherelc ,*caption D , Z 䇷, @,0,"6D A= !=( FG/Ductboard 7NN(D &<؊H ,86 3D "*Create $ ..TextSizegs$ MATERIAL 4 ! p"6 Z4 *visible (TP o "6(.l7( 쉷"6(|Hide$$ Sheet metal$ H wherelc !*caption 4 " ZXX̉`,"64>#=$ Sheet metal $D 6*؍ ,86 3 D x%*Create $x ..TextSizegs$ p!*fontn 4 ! "6 Z4 TLabelc ( @"6(#.l6N `$wherelc $*caption D , Z p, 8,ԋ,"6D`>4&=$ Sheet metal $(  "6(.l6 TTLabelc ( "6(D &|Ԍ ,86 32D(  쐷"6(4 ! Ȑ"6 Z4 |#*Create $! ..TextSizegs$ $SHIELD TLabelc p.wherelcB $*CreateB 4 A" ZPL\`,"64(* FG/Ductboard 7( '*caption "TLabel x!=(=$ SEAM SEALING$( h "6().l5NDg *䑷( ,86 3 ril D0 |"6 Z0D , Z d, \,,,"6,D p.w/scrm &w/scrm  $L$ ..TextSizegs$ &*font- x(*caption \'wherelc 4$>*=$ SEAM SEALING$D 6*hГ ,86 3 D p.TLabel $& ..TextSizegs$ 4(*Create 4 ! ̕"6 Z4(  "6(<&.l5( t"6( )wherelc $+*caption 4 " Zt蒷`,"64t&>,=D 6*` ,86 3 D x+*Create $) ..TextSizegs$ **fontn 4 ! ("6 Z4 $$TLabelc ( ̔"6(D-.l4N$ DUCT LINING$ P,wherelc .*caption D , Z , x,,"6D(/2.0" Fiberglass((> 0=(+2.0" Fiberglass ((( ̙@"6( .l4(  "6( -TLabel $0+ ..TextSizegs$ #*font" (TE c"6(DG &` ,86 3 IxLD02.0" FG w/vaper barrior 0 P1TLabel `-*Create 02.0" FG w/vaper barrier0 0wherelc 1*caption 4 " Z̚З`,"644 ! 0왷"6 Z4+=@2=$ DUCT WRAPct$(|% "6((+.l3ND *, ,86 3 &eD0 "6 Z0(*  t"6( ,)*Create 0*order $$. ..TextSizegs$ p1*fontn D , Z 䚷, 0,d,"6 *D |1*font 07*caption 8/ .>P7=$ DUCT WRAPngs$D 6*x ,86 3 D 2wherelc $0 ..TextSizegs$ 4,TLabel ,,4 ! ৷ĝ"6 Z4(2.0" Fiberglass (($  蝷"6(t0.l3( % ܜ"6( 4wherelc H5*caption 4 " ZHL`,"640>6=D6 *  ,86 3 D 8*Create $83 ..TextSizegs$ 5*fontn ,|-10.0" High pressure,0 ("6 Z0( | "6($1.l2ND 3ܠ Z, d, ,잷,"6D 88wherelc T=*caption 2*Createe  3>9>$1TYPE(  "6(-.l2$ RD Dual Wall$( ܟ`"6(5TYPEDLH *| ,86 3 L6D4 ! 䡷"6 Z4 H.TLabelc 87 $5 ..TextSizegs$ 5TLabel :wherelc ;*caption 4 " Z̡ࣷ@`,"64p5===$ RD Dual Wall$( d"6(t5.l1ND *8X0 ,86 3 0D0 D [86 R0( D.(( $"6  ( 5wherelc L 9줷 Z,, R,,"6UL <*Create $8 ..TextSizegs$ X;*fontn 7> LC*caption 3TLabelc <TLabelc :*Create 0 "6 Z0 8*Createe $ :*ductobjse$|?\L  , @ 86,J,XB:f1.cbSection.*list,(E |""; w((L.HVJ$  , 9$,!:f1.cbSubSec.*list, E*font $; *childrenngs$ *Create \TLabel00 0  wH"60D *\ħ ,86 3 D    /` (  T"6(0  w Y,/00d  wX"60h.l1,410.0" High pressure ,(  w"6((  Qd"6(, ," YTQ,A(\  "6(D* ) ,d̮@8Ƶ ɵD   V (& H"6, 9($h  "$ *.hvj% (  , G8)(0  t,""60( t," Q((  R V ($ 0"6 w$ :CLASSn (  "6((C:f1.edName.*text(P > Y Y\:L: " / QP$  Q, 9$ :*cot L 9 Q贷:t: "  ^L, 3, , ,DL34 " w w ,~ ^4   " (  Q, 9((  @ (@oo9@   / ( ," R(0  , 80D 1  L/:8 DDUT C/ T T:8  / YV.SF D \BCLASSn   " HVACL 9 Q:4: "  wL(   80( ( 86 3(@HVAC$ H Q0L$4 !x"""; / w4@.hvj *Create0 \x I Q /` Q, Q:8  / / T\$  T, 9 $0  "૷,90    8. 9 `9 T6 |9 , @ ^,, ,L |  Q (! :*jobfilelibֶ(DD (C :*jobindices(,%:f1.cbSubSec.*value,$ :*jobfile$\ I w /` w w:8  / / Q \( |""; Q(.HVJ,X :f1.cbSection.*value,LQ (O *application(;=(  86 ((  S (,_C  U , S,DD tLD )ȴ Y86 ^]W YXDH 5$ U86 ^]W/ P, UH D F*where KJKP tF*where *where HJLQ HVACLtL2KtLtLh W [4, ], [,4Ը [,86 h dF:*SFN.f R:*SFN L ; w w :8  + / wL(C :*jobindices(XG EP [86 w w :8  / wX0  w4"6,"60$ *children$E J,Q>P >ĺ    Y X W V U:86 P( x@"6(, .cb( "6(Tlab TR N*style" X*Create tR.fDUCT A:SFN 4Rwherelc L ; wx w :8  + / wLP >xɷ    Y X W V U:86 =P(  w"6(U.ed(Msetup_Handlersv@($N *children$ X*caption $N *onKeyDown$(HLsetup_Handlersu(X E\ [86 w4 w :8  / wXP >4    Y X W V U:86 PVlabDQ=U( \Ծ@"6(, .bn8( `м"6(O>>X G`H0xؿ [,86 3 X(HLsetup_Handlers( Z*caption V*style xX*onKeyUp U=U>U=\S( ŷ@"6(, .bn7( ķ"6( Twherelc RTFrame X GD,xǷ [,86 3 X V&RENAME ^*caption X*style `Z*Create W=W>W=dU$  , 9$ K*up= Vwherelc @WGWButton xY*style a*Create (J @"6( X&SAVE AS 0 Ƿ [,"60( Ʒķ"6(anext$ *..suppresso$( ,·@"6(4 "t"6$ķ"64 $O*..where () F "6( N*..size (O  ·"6((TH lķ@"6($TH *..suppress$,TH M X , ,d  '$  ·+ 9$ *..size Status ( hķLķ2((D Ƿ\ŷ@"6(|Y.bn6,  "6,]>X Gŷ÷xŷķxƷķL÷ [,86 3 X  `*Create ( *..limitwhere(Form MDIForm (U *..limitwhere@( H`*caption XY&LOADn wherelc 0 T˷ [,@ŷ"60lfup|Ytype\T=^=lW awherelc \c LǷǷ UǷ,ŷ8ȷ0ǷxǷ [,86 3 Y\( ɷƷ"6(,dnext ZGWButton  a&EQUIP 0 ʷ [,dƷ"6z0 b*caption XGWButton pb*Create (| dʷȷ@"6(x_.bn5L].bn14`>d`=`=]x_type ewherelc X GLʷ4ʷʷ,ȷx˷ɷɷ [,86 3 X@X( $׷Xɷ"6(xfnext GWButton a&MISCn 0 D̷ [,ȷ"6z0 e*caption $XO *onMouseUp$ e*Create (o r̷|ʷ@"6(a.bn4`.bn5b=b>c=` atype (hwherelc Xc G̷x̷`̷ʷxη˷(̷ [,86 3 WX( ͷ˷"6(snexth].bn10 8ط [,8˷"6z0 f*caption GWButton Hh*Create (| 8Է̷@"6(Td.bn3c.bn4e=@e>pe=tb Tdtype(  طHͷ@"6(dlnext( ׷ط"6(dltype0  ӷ [,ͷ"60 (h&DUCTn $Ȟ Equipment$GW u ҷ1 @ з1D  ַ1 @h?down u ҷ1 6 ӷ1 6 lз1 GWButton n*Create ,  HϷ"6,Lk=$  , 9 $ @h*downe  \ H׷1X G ϷXӷPԷѷxԷηշ [,86 3 VXD  ַ1 ҷ1M ,η1 <ӷ1 (  ѷԷ"6(rlast4 $շ"6, ,з"64(GWButton"Action"(( TEdit"Action"(d l=( 2 Է׷"6(@k.bn1 HjGWButton $j fac_Handler$ r*onKeyUp fclass \kCreate 0 U׷0շ Q86 30( ط", 9(r.bn2 ,l   $m :*onAction$  h?KeyUp T\  ٷ1Y   T' W   QW $ Frame No: $l?updhj QTط [ڷ, _hڷ,d׷طٷԷ [,86 3 Urd$p^ &AIR DIST$rnext Hrwherelc s*onKeyUp ($ طٷ"6(dl&OK@ rTButtonn oAVdn e.bn3lU@p.bn5 @h*caption r*where rfloatA jGWButton r*Create $le fac_Handler$ Xn \n= TufloatA Tu*Create LeGWEdit $g fac_Handler$ vwherelc tx*onKeyUp ( ܷ"6((0 ۷T۷"6(vtypeT CLܷݷݷ4۷x`ݷ@ݷݷ [,86 3AT(o.edSubSecField( xintegerA T Cݷp߷޷x߷<޷ [,86 3T(\t .edSubSecShop{( x*Create dgGWEdit 4r>x= w $ *onKeyPress$,( , _86,$4 ,߷"6 4$(x{.edSubSecTypical(4 " \ _864, 4t _86,y=$ *onMouseDown$, | _86,, *, h޷ _86,8w> {*Create ,  _86,, ݷ _86,4T "  _864(Dz combo_HandlerS@( xcolor (v combo_Handlery( <{GWEdit lzwherelc ~*color $ *onKeyDownr$   s   4 (w combo_Handlereld( TCombo~  u |*onFocus $x fac_Handler$h] V ^,,D8pd [,86 _h dw*onExit , 0 ]86,=(t{ combo_Handlerc(,w  ]86A,w>A l~wherelcA $\x .cbSubSec$ |*onKeyUp  |*onKeyUp L~caption 4floatA ( 2 L"6(̀type$x fac_Handler$ wGWCombo (|} combo_Handlercld( 4*Create (0 SUB SECTION: eld(Ty CTxt [,86 ]tT <wherelc $x .edSecFieldC$ T*onKeyUp ( T0"6(|type=lz ( combo_Handlerion( tfloatA *Create (VSquare Dual Wall( t*Create dxGWEdit ( lt"6( 1 D 4 GWEdit~ , 2  "6,$p| fac_Handler$T C<xtL [,86 3T( p"6(type$| .edSecShop$ *onKeyUp \=0|>z  P|wherelc *typeA , CD, , ,( TForm'Action'( integerA , , , ,(  |"6 T((TObject'Action'(, 4, , ,( TEdit'Action''(    $P *onAction$(GWEdit'Action'($ *onKeyPress$,( t ^86,~> Create T CD(xp [,86 3T( .edSecTypical(( combo_Handler($ *onMouseDown$, \ ^86, = ,  ^86, >,  ^86,  , H ^86,,  ^86,=4 "  ^864(̄ combo_HandlerJ@(0 p0 Q86 30 GWEdit ( combo_Handler@@( wherelc (H  combo_Handler( TEditt @*color $ *onKeyDownr$    $ *onActionV$, ӷ, , orm,, , , &, `GWEditN: H 5 Y86 ^]W/ , Y@H( <"6. (   ^ S $ *:height $   ] s *onFocus (  "6(, , , , Hh ,PtDl Dh 4Tx @`(Hh22   /  XClass tW2C$ܜ WhwndOwner$$І VT_Variant$$ VT_Dispatch$TOVT TextSize $  StyleSheet$$ SsColumns$$TP SmgrHandles$$TM SessionFocus$ onRedim I2C$  GetWorkArea$(GetCommandLine((TO GetBitmapSize($Fo FileExist$$  EnumFonts$($EnumChildWindows((DecimalSeparator(D2Cs$ CountryIndex$$  Control2Var$$d ClipSiblings$ ChStyle Children  Check Av2Ansie (ApplyStyleSheet( Ansi2Av $p windowsdir$ xwherelci whereFor $suffix $$ resources$$  installdirdi$ inifilei handlers $enabled $country $u countries$$n clipsiblings$  check eccaption tMattach )apptitle aplname Čapldir (TObject'Action'(justmust h*where $ .cbSection$dLL 9Q`HL8H( [,86 ^d4 "  \864(4 8@"6((P. 4"6+ 9(('*:stylesheet((z "6((h3Common"onMove"( *Create: $ *onDeleteer$( TForm'Action'on(, , Y, Yz, 3  Y $y *onAction0$,Common"onExitError"@,0+ Hh Q86 30 Create 0  Q86 30, "6"6, SECTION: ܚȗA *where TX Chxh [,86 3T *caption  Fieldn  *wherec 4rd !p [86 Z4( >gw.f1.edName(( combo_Handleron@( *color wherelc H| 7 Z,("6,D"6H( L\"6(\Shop= 8TLabelze T> XTextSize 8Tca lC(x||  [,86 3T <*caption ,TLabell \*where 4 ! H [86 Z4 L*Createe 4> X*where (  "6(ShopDt . Z\ "6 ,"6D |Typical Ԝ= У.lField wherelc dTextSize P*Create 4 " \ \86=4,  @ \86,\ J   < x, <   [,86 3\,  \  \86,, =,    \86,> Typical L*caption wherelc *wherec 4.lShop  `*style $p name_Handler$$ name_Handler$$ .lTypicalame$$ >JOB NAME:$,  @ [86,d Q ( @ H l ph    [,86 \d$ *onKeyDownme$$ JOB NAME:$ *Create $ *onMouseUp$$ *tabparentOt$ Ԩ.edName D 1|x, [86D TLabeln caption  TEdit" wherelc *Create  *Create 8*caption   T 3 $x :f1.*Create$ 4 Setup) t (  "6( dTFrame   l $ :*toattrs$D *L ("6 [D P*color > wherelc ((\wself(FS,'.edSubSecShop') wi'*Create' 'GWEdit' ('wherelc' '=' '>'  32)s\< wi'*where' ((3wi'*where'),+/S[2],5)<d B1wself(FS,'.bn1') wi'*Create' 'GWButton' ('wherelc' ('>',F3) ('=',FS)  85)d$ Setup frame one$ *color (  M"6(#5 5xF3(FS,'.cbSubSec') wi'*Create' 'GWCombo' ('wherelc' ('>',F2) '='  '=') ('caption' 'SUB SECTION: ')C@x TUVWXYZ[\]^_Zw\`a% """&&&&'(),,,-./2223459999;;<=>?@ABEEEFGJJJKLOOOPQTTTUVWXYZ[\___`adddefiiijkoooopqrsuuvwxzz{|}D and select a line of takeoff to be edited.DlFH3 wi':H3.*Create' 'TFrame'('wherelc' '>'  '=' '=',4) ('*style' 1)('*tabparent' 0)llFH2 wi':H2.*Create' 'TFrame' ('wherelc' '>'  '=' '=',4) ('*style' 1)('*tabparent' 0)lxFH1 wi':H1.*Create' 'TFrame' ('wherelc' ('>',FS)  26 '>',4 0 4,-5+21) ('*style' 1) ('*tabparent' 0)x< air dist, miscellanceous and equipment<T round, square, oval, rd dual wall, sq dual wall, oval dual wallTD Each frame will have each type of takeoff dataDD a label plus edit objects for the entry takeoffD@ RD, SQ, OV, AD, MI and EQ each of which have@D H1, H2 and H3. Each subframe has six children:D@ Creates a history frame with children: frames@4 t(topFrames[i]) wi'*Open'4H:if ifread HJOB,12 cot class of takeoffHDttopFrames wi '*Close' close class framesD,topFramesFDUCT FAD FMI FEQ,4FEQ wi ('dataclass' '')40(FEQFS,'.fEQ') WI'def' def08FMI wi ('dataclass' '')80(FMIFS,'.fMI') wi'def' def0$defFAD wi'def'$<FAD wi 'dataclass' ''<(FAD wi ('*where' W)(PFAD(FS,'.fAD') WI'*Create' 'GWClass' ('*visible' 1) 'Hide'P@ Frames for AIR DIST, MISC and EQUIP classes@(WFDUCT wi '*where'(PDUCTBOX FDUCT Populate the FDUCT frame; Initalizes "ductobjs"P8 --- Duct class is the default startup8@GInitialize Initialize Greggway variables@$FDUCT WI'*style' 7$FDUCT(FS,'.fDUCT') wi'*Create' 'TFrame' ('wherelc' ('=',FS) ('>',F2F)  ('>>',FS) 0 10) 07/03/01 added 0 10 offset8 Frame to display takeoff selections8Xwi':*SFN' ((wi':*SFN'),V) Setup Field Names Combo, then factorsX@V(~/(V) ss 'lab')/V delete the labels@@V(/((V) ss '.ed'))/V FS WI'*children'@4wi':SFN' V Setup Field Names4dV(~/(V) ss 'lab')/V change Lab to lab 02/07/01 delete the labelsd@V(/(V) ss '.cb')/V FS WI'*children'@P(B1 B2 B3 B4 B5 B6 B7 B8) wi '*onKeyDown' 'setup_Handlers'PH NOTE: button may hang or repeat if MouseDown used.HP(B1 B2 B3 B4 B5 B6 B7 B8) wi '*onMouseUp' 'setup_Handlers'P$ wi'*style' 4$, wi'*caption' '&RENAME',\B8wself(FS,'.bn8') wi'*Create' 'GWButton' ('wherelc' '=' '>'  '=')\$ wi'*style' 4$0 wi'*caption' '&SAVE AS'0\B7wself(FS,'.bn7') wi'*Create' 'GWButton' ('wherelc' '=' '>'  '=')\, wi'*caption' '&LOAD',\B6wself(FS,'.bn6') wi'*Create' 'GWButton' ('wherelc' '=' '>'  '=')\( wi'up' (FS,'.bn1')(, wi'next' (FS,'.bn1'),, wi'*caption' '&EQUIP',, wi'next' (FS,'.bn5'),, wi'*caption' '&MISC',\ B4wself(FS,'.bn4') wi'*Create' 'GWButton' ('wherelc' '=' '>'  '=')\, wi'next' (FS,'.bn4'),0 wi'*caption' '&AIR DIST'0\ B3wself(FS,'.bn3') wi'*Create' 'GWButton' ('wherelc' '=' '>'  '=')\, wi'next' (FS,'.bn3'),, wi'*caption' '&DUCT',\ B2wself(FS,'.bn2') wi'*Create' 'GWButton' ('wherelc' '=' '>'  '=')\, wi'down' (FS,'.bn5'),( wi'*caption' '&OK'(0 WI'*onKeyUp' 'fac_Handler'0( wi'type' 'float'(\wself(FS,'.edSubSecField') wi'*Create' 'GWEdit' ('wherelc' '=' '>'  32)\0 WI'*onKeyUp' 'fac_Handler'0( wi'type' 'float'(0 WI'*onKeyUp' 'fac_Handler'00F3 wi'*onExit' 'combo_Handler'04F3 wi'*onFocus' 'combo_Handler'48F3 wi'*onMouseDown' 'combo_Handler'84F3 wi'*onKeyUp' 'combo_Handler'44F3 wi'*onKeyPress' 'combo_Handler'4TF3 wi'*onKeyDown' 'combo_Handler' initialize the SETUP eventsT0F3 wi'*color' (toattrs[2])00F2F WI'*onKeyUp' 'fac_Handler'0XF2F(FS,'.edSecField') wi'*Create' 'GWEdit' ('wherelc' '=' '>'  32)X0 WI'*onKeyUp' 'fac_Handler'0lwself(FS,'.edSecShop') wi'*Create' 'GWEdit' ('wherelc' '=' '>'  32) JWG-10/29/01l0 WI'*onKeyUp' 'fac_Handler'00F2 wi'*onExit' 'combo_Handler'04F2 wi'*onFocus' 'combo_Handler'48F2 wi'*onMouseDown' 'combo_Handler'84F2 wi'*onKeyUp' 'combo_Handler'44F2 wi'*onKeyPress' 'combo_Handler'4TF2 wi'*onKeyDown' 'combo_Handler' initialize the SETUP eventsT0F2 wi'*color' (toattrs[2])00F1 wi'*color' (toattrs[2])00 wi'*color' (toattrs[2])0@ wi '*caption' 'Field' must stand alone@ ),? B @FDC>d@ ? lD  C hAB ?d E?CE>A>$>>=D= =<<<dC  ;!;"\;t #\F$H;%<&: ':(:)T:H*$:+:,9-4H.P/@D$091x92$9d38h4B5-L6-7-889|-:h-;@<L<8-T=,>,?|,@D,A,\B+C+Dx7E@PFEG+H+I@J+K HL*M*NFO*PGQP*R<*SCTx U *V)ݷW)߷XP)߷Y)D߷Z(߷[(޷\Dd޷](^7_8ܷ`Dt۷ap(۷b\(cFd۷e4(ٷf(ٷg'hx@i'ڷjl'׷k<'hԷl('m7n'oַp& ͷqPG̷rGdͷs&ѷt&uP&Ϸv$&˷w%p˷xG̷y%z%ʷ{X%ȷ|,%(ɷ}Fɷ~%$Lȷ$<Ʒd$ƷLEPǷP$Eŷ$$##ŷ@C$÷#`#÷4#ԽpE #"<" p"Ȼ\""P!P! !L!! 6D  L 캷T`ȶ T | x@,XpLurt@o`0|l8llkkl@xjih,7lG7h8GXP G<7hT0ipPgeH8tGAW LR(B1 B2 B3 B4 B5 B6 B7 B8) wi '*onKeyUp' 'setup_Handlers'LHS TypicalLR cot=class of takeoff 1=DUCT 2=AIR DIST 3=MISC 4=EQUIPLxR TypicalLdS t(topFrames[1]) wi '*Open' default to FDUCT frameLS Buttons@LS Create three frames H1, H2 and H3 for the edit objectsLL4T TO DO: Create Code to allow user to scroll thru a jobfileL`wself(FS,'.edSubSecTypical') wi'*Create' 'GWEdit' ('wherelc' '=' '>'  32)%`0l[ SFS wi'TextSize' 'Field'0T<[wself(FS,'.lField') wi'*Create' 'TLabel' ('wherelc' '=' '>'  )T0 wi'*color' (toattrs[2])0Twself(FS,'.lShop') wi'*Create' 'TLabel' ('wherelc' '=' '>'  )T,[0 wi'*color' (toattrs[2])00\ wi '*caption' 'Typical'08 wi'*where' ((3wi'*where'),S[2])84p SFS wi'TextSize' 'Typical'4Xpwself(FS,'.lTypical') wi'*Create' 'TLabel' ('wherelc' '=' '>'  ,5)X4dF1 wi'*onMouseUp' 'name_Handler'4@$ JWG-10/30/01F1 wi'*onKeyUp' 'name_Handler'@D JWG-10/30/01F1 wi'*onKeyPress' 'name_Handler'D,Ф Typical Show Field labels,|F2(FS,'.cbSection') wi'*Create' 'GWCombo' ('wherelc' '>gw.f1.edName' '=' '=' '=') ('caption' 'SECTION:')|[L\0[\F1 wi'*color' (toattrs[2])\00F1 wi'*style' 4096 read only0F1(FS,'.edName') wi'*Create' 'TEdit' ('wherelc' 5 20  160 0 '>JOB NAME:') ('caption' 'JOB NAME:') JWG-10/30/01H Changed name field from combo to a label JWG-10/30/01H4F1(FS,'.cbName') wi'*Create' 'TCombo' ('wherelc' 5 20  160 0 '>JOB NAME:') ('caption' 'JOB NAME:') 07/03/01H@K GOpenJobfile called in topsetup_Handlers@0pwselfB application name0hdGTOPSETUP B;B1;B2;B3;B4;B5;FF;FMI;FS;F1;F2F;F2;F3;S;V;W;FDUCT;FAD;FEQ;B6;B7;B8;FH;WCh< Create one edit object for the job name.'<(FS wi'*tabparent' 0((\WI':*toattrs' toattrs(D Creates a top setup frame with children frames:Dܞ Field Shoppwself(FS,'.edSecTypical') wi'*Create' 'GWEdit' ('wherelc' '=' '>'  32) JWG-10/29/01/01pP when LOAD is clicked elimiate the need for a combo fieldPDFSWI':f1.*Create' 'TFrame'('*caption' 'Setup')tesDtFSC wi':sc.*Create' 'TScroll' ('wherelc' ('=',FH1) ('>',FH1) 94 21) ('*style' 0) ('*tabstop' 0)01tlA GTOPSETUP COT;B1;B2;B3;B4;B5;FF;FMI;FS;F1;F2F;F2;F3;S;V;W;FDUCT;FAD;FEQ;B6;B7;B8;FH;WCWCl< wi'*where' ((3wi'*where'),+/S[2],5)@<8FS WI ('wherelc'    '>',0 0 0 10)'8@ COT=Initial Class Of Takeoff during startup@$T wi'type' 14op$TF1 wi'*onKeyDown' 'name_Handler' initialize the SETUP eventsle'T,L Sub-section combo object,xDMH Jim- Believe the job name combo box should be changedH,, wi '*caption' 'Shop',XDM0 A=application name (i.e. gw)0( wi'type' 'integer'(,0F3 wi'color' (toattrs[2]),4 to a read only edit object.f4$ wi'type' 13op$$ wi'*style' 4p$`B5wself(FS,'.bn5') wi'*Create' 'GWButton' ('wherelc' ('>',B1) '='  '=')')`(ģ wi'type' 'integer'(@T duct, air dist, miscellaneous and equipment.@X JWG-10/30/01F1 wi'*onFocus' "GKwsOff" Turnoff keywords'"sX< Shop Field$ wi'type' 12op$t:else data.,:end$ wi'type' 10op$  Scroll bare $ wi'type' 11op$($F2F wi'type' 'float'9@(, wi'next' (FS,'.bn2'),( wi'type' 'float'(,SFS wi'TextSize' 'Shop'),` M SHH U86 u t,XLI U86 P`$  *labwidth $ p*where , M"6 vVutu,T J"6K,4J X ^, ^TJ YtJ SL V, ], S, u, t,J sKK8L U86 PD*Set *.*order *order attach *caption *where@ $ M"6 V$ X*class@ , DK"6 X^,   L ] $Ч *attach$D= 28UXUJ"6 + Z0I, lD |TLabel *fontize ܥ *Createe $ *laboffsete$$  , 9X$ TextSize 0T   s90$   Y$ *:fontn D + s U Y~L"6T SD(  YhS"6 (_lab X*where $Ч *:heightame$(*  X 69($d   ,  $, xO , ,$ *:margins$$ P"6 $  D 4O NO"6P:+ D0d xN"6 , 0$   ,  $ Selector $d *wherelc$>>@,( P"6P)  ,Ц *..class $ `P"6 $ *classL ( P"6 X( *..size *where  $  T+ 9$ *..size  PR1 U1( pR@"6((  ,Q"6=(4 ! X ,, 4 p S"6 ( `V@"6( xFrame $d *..suppress$H9E i7S u @S 3 /~" HD 2  + /pT"6 S P, , uD X ( 01234567890+($ě *caption$(+ *..Send D &T Z8T, r T, RD  *..style TextSize Status $ M , U$  , M"6 s9,& Option 8Checknc ( PT"6xU, 9(Page J U 4 TFrame~ ($  R Z, , Y($  Y+ 9$$@ *..suppress$ 8  / (   ((   ((   (  k  $$  W   W  $$ 4 '  ) ('*caption' 'SUBSECTION')L')d RFOO;wselfb  wi':*Show'  wi'*Delete' ;)8xPء T , Ԟ ` DX(xx r3 x`$ wi'.b3.*Create' 'TButton' ('wherelc' '=' '>'  ) ('*caption' 'CANCEL')`0 wi'*caption' 'QUESTION'220X wi'.b1.*onMouseUp' " 'ff'wi'*value' 1  0 0'ff' wi'*Close' "P)XP wi'.l1.*Create' 'TLabel' ('wherelc' 5 5, S) ('*caption' P)P,R'ff' wi'Wait' 'value',,WI'.b1.*onKeyDown' 'BOO',, wi'.b1.*onOpen' 'BOO',\ wi'.b1.*Create' 'TButton' ('wherelc' '>'   ) ('*caption' 'SECTION')\$ wi':b1.*Focus'$1, أ Q,86,,  Q,86, ss*Delete nD*Delete _lab_suf4 ! , W, ], v, 44$ ¸ U86ss$H 7 W  W,,,, WHl,H "6 t0 W, Methods: HH 7 `৸t ,,,, H84 # ] ], j/rn/i]40  ] ], 3 + / ]0(  ] t0 ](D ) ]~ ] ],   ]D$\ Inherits:$$\$ dMethods 4 # \ X,,+, ^40  ], \0    $ Properties$H 7 ]\tD ],,,, ]H, H"6 t0 ,4 $ ] \ ^, r, P44 $ ] \ r, ^, ]4$ Properties:$0= \", /00Ac i ] \+ r ^,, ]00  r ],+ ^00ec " ^ ],+ rAc08P  8"   4 (  , , 4(8Syntax: 'object'wi'GetAnswer'i8,  S t/ S,$ "6 ]-$ ponAction 4ABCDEFGHIJKLMNOPQRSTUVWXYZ,4(d P, , 4(@&&Get the result of the TQuestion dialog"@lQQReturns TCESC if user exited dialog by pressing Esc or hitting the Cancel buttonlD &d"6$, t, vuestion dialogD  䬸1d i"6 U:, "6  , U:,Ĭ S :,:, sض,ض ض׶  Methods Method: methods ?"(sw r, , 4(( ȷ, , 4(D$ . Y Y, : : YDH4..questiontext: character string (the question) mH   4 Th::Get or set the type property on the TQuestion Edit controlT   4 D++Get or Set the TQuestion selection propertyDL 9 U U:::~ ULD~ , Y Y,  :, 4DL433Same as the APL+Win Edit control selection propertyLD$ 1 Y Y:,: YD]D / Y  U:/ Y~D(  Y  U(40 $ Y Y , / Y4\AAGet or Set whether the input field must be a password input fieldow'\\CCtype: 'integer' or 'positiveinteger' or 'float' or 'positivefloat''\( , , 4(( P, , 4(  0 4 4$ # Y:, 44@((Syntax: 'object'wi'selection'int1 int2@@<%%Example: 'ff.ed1'wi'allowed' '0123'n"@H$ 6 Y Y:8 :+ / YH4chars: a character string4X H Y , Y:8 :/ Y9XX԰==Get or set the allowed property on the TQuestion Edit controlX$ wi'*Delete'$P55Get or Set the question text for the TQuestion object---P( ȭ, , 4(-- -} s s, : x  : :,: :, :: s] 0 PObject: ( x, , 4(( D, , 4(('S o4, , 4($  s9*$(-- -, , 4(Ds **Syntax: 'object'wi'question'questiontext oD  2 4 l Z s U:, S :, t :,:,:, 4l<$$Syntax: 'object'wi'allowed'{chars}<H4..boolean: 1=password field 0=normal edit field'EH(me ), , 4(('~ ض, , 4(] @<%%Syntax: 'object'wi'password'boolean@ ob e 4 (ob et, , 4(8̘ Syntax: 'object'wi'type'{type}8-$ p" Y$0  Y Y8+  Y0$0 tcff ---o$4 " YL Y8 Y4$ tcff ===$,ConferenceExample6, ExecD$ {"686 UL:, "6  ,, U:,0 S :,:, se( ", 9s,(New  r  yn a t1nt : 1 ecExecHelp 0   p U~, U0TQ e 1we ' 1 sclassamp nt x  2wit2 i ػ1 ctHelpExec    QS $ newclasses$  1   T'HelpHelp,  "6 Y,e' c  'rtu n  9"  TQ eT 4 $ Property: $$ TQuestion$(D ؽ86 (  $1helpT#lA($hhI Action8 ,tint1,int2: integers,(help  class38  (1$ "6 U$$N Properties$$ properties$,? pclassn PPW38   T1DIE /("6D"6, 4D$  Properties$DocDoc    t $ CharLower/$ Methods -D$ )8 ,"7 Y' /DZall@all$  "6 4$ ͸1  d͸1  'D &H"6,0"6 PD H¸1 check  ¸1  ?check   1 d 1   1 p *Delete $ ?password$ pĸĸĸĸĸŸ4ŸPŸpŸŸŸŸH͸Ÿ Ƹ ͸@Ƹ`˸ʸdƸƸʸ(ʸ\ƸƸƸǸ0ǸTǸtǸǸǸɸǸǸȸ8ȸXȸ|ȸȸȸȸɸ ɸDɸdɸɸ02$ @"6 4$ LXClass W2C$L WhwndOwner$Wait$d  VT_Variant$$L  VT_Dispatch$ VTL TextSize $  StyleSheet$$  SsColumns$$  SmgrHandles$ $ ShowDemo $D SessionFocus$ Redim9 $ GetWorkArea$$9 FileExist$$ EnumFontsrt$  DemoShow $ CountryIndex$ ChStyle Children $ CheckClose$ Check CenterOn Center LAv2Ansi Ansi2Av $ windowsdir$ Lwherelc $ sysmenu $  resources$ Lontop  $s installdir$ HinifileB " handlers "country $ countries$ check Japptitle TCapldir  ɸ1( ApplyStyleSheet($x  GetAnswer)$  Pʸ1( DecimalSeparator($ ?GetAnswer$ ʸ1( EnumChildWindows($ selectionӷ$  ˸1(  GetBitmapSize($ ?selection$cl s ˸1( GetCommandLine( question > ø1  ˸1$ ?question $L   ̸1  password   1d  x̸1 ?type  ̸1 aplname   (͸1Co m 18I2C ?aplname Show class . ͸ 4 (  TCancelButton( ,2?allowed ( ϸ@"6(D +ϸPϸ$ظ Yϸ"6=D "*onClick ( θ@"6(( θXθ"6(0TCancelButton"onClick"0 *style T0&Avbryt # &Annuler ( ϸ8ϸ86 4($ *countries$ *caption $h *deferexit$ 8!  / $ *country$(  ии86 4($TM I , 9$#,P ظ"6, Y, Y,  onClick enabled country $ countries$ check caption ,   '( DecimalSeparator( attachcd qrapptitle  aplname apldir  ٸ1(ApplyStyleSheet(O E Ӹ4ٸӸԸ$ԸPٸHԸhԸԸԸԸԸڸոٸ׸<ո`ո׸ѸPڸոոոոָ0ָPָxҸpָָָָָ׸TH8׸\׸|׸иѸ4ѸDظXѸxѸѸѸҸ<Ҹ22 XClass $dt WhwndOwnerma$$ VT_Variant$$Co VT_Dispatch$ chTextSize $ StyleSheet$$ SsColumns$$ SmgrHandles$$TE SessionFocus$ sDRedim $sD GetWorkArea$$s FileExistPro$$  EnumFontster$$ CountryIndex$$ho Control2Var$$ ClipSiblings$ ChStyle (Children Check= hAv2Ansi Ansi2Av $ windowsdirA$ wherelcA where@A suffixA $ resources$$ installdirp@$ inifile@ handlers  ٸ1(dEnumChildWindows( @ и1(  GetBitmapSize( &Cancel $ clipsiblings$0 "6lٸ"6 Y0(  Yٸ"6(  ٸ Y $, *onAction$0TCancelButton"Action"0W2ChVT$ countriesngs$ xAction $ *onActionngs$ classn" (GetCommandLineel(I2CpA1 2 D2CO (TButton h` Zwi'*:modalresult'0 indicates OK button was not clicked'hht Zwi'*:okbuttonclicked'0 indicates OK button was not clickedhhh wi'*style'2 Esc closes the form (default button)ht wi'*deferexit'1 avoid onExit to be fired when button gets focus)t( wreswi'*'rg(@ error'Unknown TCancelButton command: ',B@  :case'onClick' `:if 2nc'A' X:case'Action' <\ (c)2000 Eric Lescasse[18jul00;29aug00]O<<| A TCancelButton B -- TCancelButton class<d`(P or 'property'value(@ wi'*onClick' 'TCancelButton"onClick"'@X CC,tcnl,wi'*onAction' inherit from TButtonX Awself 8  or 'Method'argument1 ... argumentN88d0 C(wi'countries')wi'country'8  +.QTYUsStuVvW]^XrZRw\xP3 ----!----(--+--1 $y B  'property'$$Hz or 'Method') $$lz Requires: (F)c$$`| :selectwarg $$| :case'class''$`A TCancelButton B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfdr`4, C'TCancelButton"Action"'4( wi'*onAction'C(ddb:select B :case'New' :else|T :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'TT0 wi'*caption'(C'&Cancel' '&Annuler' '&Avbryt') GG2dec992TT Zwi'..*Close' close parent formT :else$v A  object name$ 'hT (,߸Tݸ8Lݸp޸ݸ ݸ  ܸ, ޸  p  d`ظH޸иظ޸hظxθ۸͸\۸xθ޸θݸܸ׸ڸڸݸܸ׸Ѹ\Ҹ @͸!ݸ"$Ҹ#и$%ܸ&8ܸ'( )`ܸ*00 wres'TCancelButton'0 :end4X wselfA wi'*Create' 'TButton'4( Commonwarg( qio10 d :endth:endPL1just p1 px*Create 1country 0 lڸ Q86 320   T' NT  Qh ( 8ڸ", 9($!mustx(New(wi"*:value"2  (    allowedn 1 D &"6t,d"6 PDh U0x@(@(x"6 P]h($(($ TCancelButtonnCl((*.bnOK.onClick=(3 ,*.bnCancel.onClick,(wi"*:value"1  (H2=0  x R, S, , U+0   4 $ TOKButton,$ l<wherelcn <  / $ CountryIndex$$ Control2Var$$= ClipSiblings$ ChStyle Children Check 4Av2Ansi Ansi2Av $ windowsdir$ wherelc where suffix inifile (  Y("6(h@&OK,t "6, Y, Y, <  Y $\= *onActionV$ HonClick handlers enabled country check caption ,   '(6DecimalSeparator( attachcd qrapptitle  aplname apldir  1(ApplyStyleSheet(Q 6 <<\ 0X|ph4lTtXL ,Ll022 ckXClass $TT WhwndOwner$$ VT_VariantC$$ VT_Dispatch$ TextSize $ StyleSheet0B$$ SsColumns$$ SmgrHandlesA$$ SessionFocus$ Redim $ GetWorkArea@$(GetCommandLine@($ FileExist$$ EnumFonts?$ 1(@7EnumChildWindows( @ 1( GetBitmapSize( @attachn ( |"6(d8D2C( L@"6(8I2C( p@"6(49VT( @h"6(h@W2C$ resourcesngs$ P<*onClick $,< countriesnOK$$; installdirgs$ classn" $< clipsiblings$$= *onActionnOK$$< *:okbuttonK$ ;*style 3>Ntypehcl pU @$@dx "6 P3h ATButtont  8must =*caption *Create ,NewA ((A,t@< c  4 TEdit~   W U Bwherelc H*order Battach (? TEdit"Action"((@3*.bnOK.onClick($E clipsiblings$$ clipsiblings$ pE*fontk  *..scale , @ 5,  / ( "6+ 9((*:stylesheet((wi Ap"6((tt L"6((Common"onMove"((tt p"6( PE*onExit ,TEdit"onKeyPress",( "6((T P"6((n Common"onExit" (,$ l"6"6,0TG a"6"60(Common"onDelete"((0;TObject"Action"( @*scale $ *onKeyPress$AlL Z@l@x|"6 PBl(lA *.bnOK.Create((C((*.edQst.Create(4 # `"64 *onMove PE*..font ,Common"onExitError"@,0@ @ Q86 30 P<Action $\J *onDelete<$(49  Y"6(,6 , Y, Y6, 4 < Y $F *onAction3$IEdit`D>$ *attach$$  , 9$ A*Create H= I*order8 LTEditi $A *onExitError$ $ T s  4 4 TLabel~ E  Jattach ` P|\<@|p"6 P`((,M*.bnCancel.Create",$ *onAction$  @P Y $ *onAction$, "6, Y, Y,N>38 Jwherelc $ TOKButtonQst$,5*.bnCancel.onClick,D2C(dG  Y@"6(>justJ>( *.lQst.Create( NTLabel *: a"6" Nattach8 hN*caption CDINOPUZ[`efklmrsxyz}}~zqvmjg4L wreswi'*password'4XWT (-$7L#P%d$'@(! p#  L  $$  H  dpd)x7x$7(dD.x<5;. %P8 ;!p"0#|!$'%2&-' (@$¸)* +$¸,9-| .`$¸/012h 35445t(63\70:(8)̸9:\<;$<$= >T ?*̸@`&A6B,(C)̸DEFG HhIt%Jx3h¸K/LH-M5Nh,O,¸PXQ0)RHST%U%V\̸W7౸Xd4Y!Z2@̸[<4\(]^$/_X3`%a ˸b&cT0\d/4e2̸fg,h=ij9k#l\/m%nH˸o,Lp3൸q:lrD˸s1t u@1vD8w1x"yl8z{"|"}`1~%1ʸ`'#;lp6D1tʸ,'!:h\"|/% 6 ʸh;ĩP2䩸d9誸H6ɸ.,*<ø)$8%1Lĸ$, X8<P wres(wi'.edQst.aplname')~0<,ܟ or 'property' value'G, u :elsei  :end $l :selectwarg'$ ą :elseor $ :case'class'T$̈:else :end L :endt $ Requires: (F)$$l or 'Method's'$4io1u:end<7 $( wi'Center'$(T D2wargns(, wres'TQuestion'D,(\  :case'?question''C(,ܜ wi'*caption' ''',0 C'TQuestion"Action"'0,p wi'*border'2 16 32,( :if 1=wargn*(( :case'?password''C( Awself  :select Bo:case'New't$ :endme$$ :case'question'$$ :case'?type'] $$, :case'check' $<D error'Unknown TQuestion command: ',B<<HE (A,'.edQst')wi'*selection'Dsh<<E wi( '.edQst.check'),1wargor<<T wi'*onPaint' 'TQuestion"onPaint"'<<lK wi'*onFocus' 'TQuestion"onFocus"'<( :if 1=wargS((ԡ :if 1=warg(( :if 1=warg'((| wi'*edQst.Focus'((( wi'*onAction'C(4 wreswi'*question'4' '=' )('attach'3 2 3 2)('*order'12)t`T wres"Get or set the aplname property on the TQuestion Edit control"`d wres"Get or Set whether the input field must be a password input field" d<( or 'Method' argument1 ... argumentN)<LX wres'Get or Set the TQuestion selection property'L4 wreswi'*selection'4Ll wi'*onClick'('wi"*:value"1  ',wi'*onClick')LHP wreswres,tcnl,"varname: APL variable name"HTT7 wreswres,tcnl,"Syntax: 'object'wi'allowed'{chars}"'T4X wi'*size'((G H)140 300)044, wreswi'.edQst.type'44  wreswi'.edQst.check'44 wselfA wi'*Create' 'TForm'4(tr CommonwargC($p :case'aplname'$$B :case'allowed'$$@ :case'?aplname'$<( :caselist'apldir' 'apptitle' 'check' 'countries' 'country' 'handlers' 'inifile' 'installdir' 'ontop' 'resources' 'sysmenu' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Center' 'CenterOn' 'Check' 'CheckClose' 'Children' 'ChStyle' 'CountryIndex' 'DemoShow' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'Show' 'ShowDemo' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'Wait' 'WhwndOwner' 'W2C' 'XClass'<` ] wreswres,tcnl,"errormsg: error message displayed if expr return 1"`(: :if 1=warg'(X wres"Get or Set the question text for the TQuestion object"XXa wreswres,tcnl,"Syntax: 'object'wi'check'{expr errormsg}"XL( wi'*onClick'('wi"*:value"2  ',wi'*onClick')LXnA TQuestion B;C;D;E;F;G;H;I;J;K;L;M;N;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfXXo CC,tcnl,wi'*onAction' inherit from TFormXX$c Zwi'*.bnOK.onClick'('wi"*:value"1  ',wi'*.bnOK.onClick')_X0D wreswi'*.edQst.text'086 wi'.edQst.type'(2warg)N8 ? :end   :end \ 9 wreswres,tcnl,"boolean: 1=password field 0=normal edit field"\\h wres"Get or set the check property on the TQuestion Edit control"\Tt wreswres,tcnl,"Syntax: 'object'wi'password'boolean"CTpI wself(A,'.edQst')wi'*New' 'TEdit'('wherelc' '>' '=''>'3)('attach'1 4 3 4)('*order'1)p(y :if 1=wargue( T@ :else h :endt (,c JA,'.lQst'((c :case'?selection'((x :case'selection'(X(i wreswi'*' default processingXL wreswres,tcnl,"Syntax: 'object'wi'GetAnswer'"L$ :case'password'$ P :case'type' xW wself(A,'.bnCancel')wi'*New' 'TCancelButton'('wherelc' '>' '=' )('attach'3 2 3 2)('*order'12)x v :endZ $P :case'?check''$H> wreswres,tcnl,"chars: a character string"HX@ wreswres,tcnl,"Syntax: 'object'wi'question'questiontext"X($ :if 1=wargue(P0 wreswres,tcnl,"Syntax: 'object'wi'type'{type}"%P`4Y wres"Get or set the allowed property on the TQuestion Edit control"`| wreswres,tcnl,"expr: APL expression involving the variable and returning boolean")|$|B :case'?allowed'$lD Zwi'*.edQst.Create' 'TEdit'('wherelc' '>' '=''>'3)('attach'1 4 3 4)('*order'1)l(R :case'?GetAnswer'((- :case'GetAnswer''(`| wreswres,tcnl,"Same as the APL+Win Edit control selection property"`T4 wreswres,tcnl,"Syntax: 'object'wi'aplname'varname""TT wi'*.esc.onClick'('wi"*:value"2  ',wi'*.esc.onClick')T8t6 wi'*caption'(wi'apptitle')g)88h A TQuestion B -- TQuestion Object'8\A wres"Get or set the type property on the TQuestion Edit control"\(b D2warg (P J wi'*where'((J wi'*where')-(13H)0(-13H)0)P`Tc Zwi'*.bnCancel.onClick'('wi"*:value"2  ',wi'*.bnCancel.onClick') `H8 Z(A,'.edQst')wi'ChStyle'(1281 1[1+D=1])HD wreswres,tcnl,"Returns TCESC if user exited dialog by pressing Esc or hitting the Cancel button""L4 wi'*Draw'('Icon'((wi'installdir'),'aplwin.ico')5 5)LT wreswres,tcnl,"Example: 'ff.ed1'wi'allowed' '0123'"'T\ wreswres,tcnl,"questiontext: character string (the question)"\(R D1warg(`x wself(A,'.lQst')wi'*New' 'TLabel'('wherelc'100 5 '>')('attach'1 4 3 4)`H8 wres"Get the result of the TQuestion dialog"H@M wreswres,tcnl,"int1,int2: integers"@lP< Zwi'*.bnOK.Create' 'TOKButton'('wherelc'5 '<'  )('attach'3 2 3 2)('*order'11)l@W wres(wi'*.edQst.allowed')~0@l@ Zwi'*.lQst.Create' 'TLabel'('wherelc'100 5 '>')('attach'1 4 3 4)('*caption' '')l r :else *caption $ c(="6 4$T BBLCD=BDB W :8 ST4qabcdefghijklmnopqrstuvwxyz44$ ]:endwhile$$  U t/ U`$  debugrty  A1 Methods L 9 ] ]:,:1$ <>" P$4" # ] ],  ] S, S4D 1 S0J S:,: SD,li s S  ty',(ix ' R Z, S~ S(   94 $ S% :~ 444 # u s89pD: ]4$  u t/ u$ `]:case' 4 # u s89O: S4$% Propertiesh$ :endife H 8E|OJIK W :8 sH k:endfor $ ]:endrepeat8$$o ]:endselectB$ Po]:untile D 0 S) \3 s) \3,, t DLL>>Lm, Form4 ""6x~"64(  0"6((  z"6((* $}@"6($  ܉+ 9$ p*..size ( @"6(  '( {@"6(,  X , ,( {2($|Y *..suppress$(im r X 69(D2FormDim r* + x \, t|),  1 D$im r 9$ Y L 9 v V u t S s U Y,  "6L(  "6S(  '(T5 *..limitwhereK@(( |}"6($ "6 $ J*onMove ( 0+~2($$  u, 9s$ Check $ @~1$#<  ~1(5 *..limitwhere(>#  ~1 < T  ' ,1 <>Lb. T d1b.<> 7  1<8>>Ls 1 #< gw s  1gw>#  D1< 9  Ԉ1 1 <>Lb. T Ѐ1b.<> $@9 W@99gw#9 #99|<&9 s &99 J*onMove  Ё1=LL 1 = T$ \1$ |1> @L>99]>9 X  ă1( T2WL(>>9s >LL(L x2w.s(>L Lw s 1w>>L 1>> ($ $@2(>L $>99W>9 gw s x1gw>>  YCombo D ) s\  t, u,' HD$b. T R U, U$ G*onMove H  1(>9]>LL H*where D^ ) SȪ  t, u,'WLDB  1L Lw s 솹1w=LL $1= LY  \1]#< X  1( ؇2(=LL>L9_>LLs ,1L= Lw s 1w s 1> @># Y   '] DX )쀹$@\x2^L D$ <1R  Ȋ1Lw s 1w<>L 1<>  pStatus ܔ  Ы1Dpq - Y  t, u, 'ܔD,  1>>L @ 1<  4Hl(DxT`ؑ$؏P+̛ؔԨtT,4+l+\D,ԧtlT4Ԧ22,$  Y UjsniU,D$ /D u"78 UD, X R86, 9,  h,   $Y *..suppress$ 1   SMDIForm  `1> @D - Uહ  t, u, ' [D(`[  Y"6((  R Z, Y, Y(Z  01(\ \؎2\( $a  , 9$ *hwnd` *..where ( y2(l=LL @ y1 y1,   Y,  q /f $ l1(4cApplyStyleSheet($ 1(xcDecimalSeparator($ t1(fEnumChildWindows( ?caption , X"6 ,9,D + U u"7 PD 41(m SetWindowLong((  @"6( S*..class 0f  D1(Lf GetBitmapSizeW(tf  T1(fGetCommandLine(f   's(e GetWindowLongW((  YԒ"6(just," ؠ, Y, Y, h D Y $Є *onActionh$0h $,+ Q86 30@i  +1(TLabel"Action"er($ countries$\k K     v V u t S s U Y,,  <"6\,*:currentcontrol, 1(  쓹"6 v(=L9l  1  (P*clipsiblings"($  ClipSiblings$l>L9>#Ln  x1(n 蘹,2(<> $ GWL_STYLEo$ P1 1 Ĭ1$ܔ  u, 9$ |`*..size 0pq p"6 u+ 90 ̝1  1 ହ1r  P1> @D ) Ud  t, u,'sDsDHs  1 $ 1$>#Lim r 1( yd2}(>L  L}*where  x1#LLW  1im=LL(9 H 2(=L >LL  $=LLW>LLgw=#.:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 {d  |  $ CountryIndex$,{ "6 X,.4 #Х R86L ^]W4( ؚԜ2(=L ( 2}(>L   1 #L h1( D"6 P(( "69(, #< @( ࣹ2(  |eFrame  <1> @D ) Y|  t, u,'gw.sb.tTD=LL$=L , "6 R9,  p*:gaps  1 1 @D| ) S  t, u,'w.sb.tTimerD=LL  9( y", 9}(\just    $i clipsiblings$y   T'(mTObject"Action"( $   Q $ԃ clipsiblings$$ GWL_STYLEngs$, "6੹"6,0\ L"6"60 Џ*class ( H, t(8># @(  Z r R((<> @D +yġ"6   + 9Timer$D,|  R4"6,0    U"60, "6 x\w,@, "6, Y,  d u ${ Control2Var$ *self W=L gw s |1Dgw s) s쫹  t, u,'$D$  , 9$ p*wherec *scale $ *wherelc$D / Y U U,4 vVutSsUYD$$ VT_Dispatch$ *..scale $h VT_Variant$ Џ*..sizee $ WhwndOwner$ units MDIForm Xworkarea Action classl $caption h?just apldirne aplname 4apptitle xattachX caption checke Dcountry enabled ̓handlers inifilee Tsuffixll wherel ܔwherelc  Ansi2Avm dAv2Ansi Check Children 0ChStylek tRedim TextSize XClassn $  SmgrHandles$$p SsColumnsFr$ L}*..font $ *:margins$ `*fontard $, EnumFontsve$$ FileExistter$W2CdDJJ<>=#LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL9999999999 tTd$ SessionFocus$,*:currentcontrol5@,Z  @ ,< @, ##hh>> @<>L@`P ,*:currentcontrol,VTID$T GetWorkArea$0  V s,8, , t0   Y9 ?0`  v S,Э, W, u0   U9?D %  Y86, 9tion'  TT~'&'D B*selfV $  ] vVut$ *where( 0' $賹86 SsW0, @"6 ]г, 9,0  v V u tܮ"604 $` , UY4Xs E`\Ȱ("78 4X, h"6 ] , 9, *where' ((th(SPI_GETWORKAREA(,SystemParametersInfo,C workarea $9 GetWorkArean$ @*where8 (  9(D ' U Y s :8B UY+ sD( 8@"6(Y   9(X*modalresult(0  Y:86 u00   Y:86 U0$ *mustset{$4 $ , UY4H\+ 6|tӹ86D"6, SsWR(H units  Pߑ$X#$r' "6 VT$ 8:*FMV .ed1_lab T5 C"6|Ĺ"6,{0̷D$"6 V,86T :*cot00 [ ̺ ( $ :*toindices$0  0Ĺ"60  :*cot00 (| L"6, 9(4 ! " Z4(  Txй"6(0  wȹ"60,0 ," YTQ,0P  Q亹Ⱥ"600  Qh"600  Q"60(  Q8ù"6(0@ L w Y,/00D  w|"60,:f1.cbSubSec.*value,$ "6 ws$ *caption ( r "6($  Y U/ Y$    4 $Ĺ Z, ," Q4$@  Z,9 $ :*cot 0    8.0(  R .($ V Y$$  u U/ u$( @"6(0  l Y:86 s0,!:f1.cbSection.*value,( :*jobindices((| :*jobindices(H 5H Y:86 U:+ sH(*modalresult(  ( D"6, 9(   4 $ *modified$ $  P" P$$ $"6 49<$(  P, P(( 4 P, P( :end<$$:else tree( wself),first,/Ttree<(  P, P(D **:if 0=treewi"*children"  tree, wselfD(@  P, P(   /R 4 $ CheckClose$$ *aplname$$ Control2Var$Xh??treeT object -- Return family tree descending from an objectX$   Pl$( treeT wself(DD ( Ϲ, ",Ĺ"7  = = =DP7,  W r, r,C   " $ q :*jobfile$0  "!,900  ,"890   r 4 0 Ϲ W\ W, /.W0 =   W D" % \ , r, rDD % \ , r, r(D$  FindClose$  9     "69 D` 0 !ŹdŹй8 r, r"DD ) !ѹ ѹؾ8 r, rT!D     $ *:okbutton$ |0Children 2*must $ "6 Y$(  ] r, r(   W r   %9$0  $, 9$D % WDӹ W, , + W D0  Ź"740,:f1.cbSection.*list,4 !Թ\۹"7 , 040  "7Ϲ0    |0*Close ( ׹ (( :f1.edName.*text($ ù 86$ L:*cot h W_Mem ,de g !<Ź"7 !, 4$D  GlobalFreeer$(GetOpenFileName(4 !4ƹ@"6 !, !44lm o!ƹ@"6 !, !474pq s!ƹ@"6 !, !4D2C0tu w Pɹ"6 !, !0DD2C4 p !ɹ@"6 !, !T f4D2CD ' ,0ǹ, 4h*D     L ȹ1" ǹ1W2C  ǹ1$ WhwndOwner$=  ȹ1$= VT_Variant$ `ȹ1$= VT_Dispatch$4VTWait, ȹ1E ȹ1(UpdateControls(4 !ɹ@"6 !, !4D2C0|}  4ʹ"6 !, !0W2CW2C0  ʹ"6 !, !00  ʹ"6 !, !0D2C4 ! ˹@"6 !, !4DD2C4 !l˹@"6 !, !4D2C0  ˹"6 !, !0D2C0  ̹"6 !, !00D2C0  X̹"6 !, !0|D2C4 !̹@"6 !, !4D2C4 !D@"6 !, !4D2C0  p"6 !, !0@D2C4 !t@"6 !, !4D\] _) ,8͹, 4D(( ,@   4 $й"6"6 !, !4$p  , 9$ *owner $ ͹"6 4$D ) ,`ι, 4PD((    $  , 9$ 'readonly ($ 86 r(H?A0  ۹"60$ 6 , 9$  findexly 0vi i ܹ"6on0T!R1 &owner 0  ڹ"6 !, !0$t GlobalUnlock$,:f1.cbSubSec.*list,L ;     ,3 ", LCt=\D '3,, ,  R8.D  09D %\ 4"7 D0  $Pչ ,hչ.0D * ۹ӹ"7   ,D4 "  , , , , 4  | ! D *  (ӹ "@,ܹ"7 PD(  = ", (hEp\B $subsecnoB SUBSEC$ @ Subsection  AA, SECR ȿ:if secno>AR  secnoA SECR P:if 0=wself' d> MISC R= quanity description item (material cost) shop field (other cost)dLo kmr qq%%!q%%%'*+qq./11qq56789:;<=>?ABqDqqqqqqKLMPQqqTUWWqZ[\]^_`abcdfgqijqqqqqqqFI/*DAUPjf   CC, FACs' :if facno>Cs' 4facnoC FACR x BB, SUBSEC @e ALL OTHER: (i.e. AIR DIST, MISC, EQUP)t@d4 10/19/01 Note: Class numbers to be changed to 100, 200, ... etc.67d' Factorsn@' :endFACF1 F2P============================================================Pl t(LN (GJobindices) (wi':*cot') (wi':*toindices') R) fappend HJOB 08/29/01)EHlPl funtie fnums,xfnums release all files 08/30/01P(̠A B C freplace HJOB,9(Hq Takeoff dat filing order: 5 element nested array...H(3Rsecno subsecno facno(XpW ((duct class) (material) (duct type) (duct wrap) (duct lining)] 0Xhh DSIZE GParseData R D = [sizeqty] [size] [implied count] item [count] ...hD`9 File resulting data in the component followingDD9 U(fm,'.fHistory.scHistory') wi 'value'DDܧ === End of the takeoff data Input routine =======DLXb Note: The validity of R must be checked before callinggLX T(wi':*cot'),wi':*toindices' 09/08/01 current indicesX<[ 3 GPutFactors 1 100 100 1 100 100 Mis-match. set defaults jobindices for section CA ShnrU  XRw)))))))))))))))))))))))))))*---00088888888;<P>?@PPDEPHIPKLMPPPRRUUUV[[[[[\]fffffffffghllllmX ?;FDLHdss |b)( <* (-(-D'  / @! 8 8 Llp\\#l(!Č ! "'#"$`%ں&"'/(),*@+#,-.$/"0<ߺ1H#2.344#56&78|'9l-:;;)<=d>*>Tۺ?|@'AB)B`C*DtE)ExF+GH,H+I*Jl KhL@)MN OPQR S)T#Ul"V W`XhںY Z [\ ]^D_` abc&d e"fX g(d 2 GPutFactors 1 100 100 1 100 100 Mis-match. set defaults jobindices for section[{b)P-4\T-(!!   ! x! <`4!4X@ !"# $%&'(x)!3READJOBFILE(6C,C must be a vector(TZ HRDJOB 9 (sections) (subsecions) (factors)Td  x0(}(A B C)fread HJOB,9(T} Note: Job indices reference data stored it jobfile component 9TK4 Currently displayed parameters '4' SectionLȃ XXXf History onChange event has been suppressed[L(l Job parameter on file(d<L t D fappend HJOB file sorted and accumulated dataL4 {secno subsecno facno}GJobsetup4@ (section subsection (typical shop field) @Lx : Y :, " : P6L@4 and accumulate total count for each item.@:endH8 Note: History to be not implimented JWG-10/31/01H=2X P(1+LN) GFmtPrompt T Line number for new takeoff datanXDV(/NV SS '.edS')/NV Factor edit objectsDD9 Append new checked takeoff input to the jobfile D`G 3. CLASS OF TAKEOFF: - 1-duct 2-air distribution 3-miscellaneous 4-equipment`HdN AIR DIST R= size [size] item [count] item [count]H:endH (EdObjects) wi '*text' '' 09/01/01HXB SQUARE R= size size [implied count] item [count] item [count]Xx:endrnH$ wi'..*edobject' (EdObjects) 08/30/01H8[ 2. Jobsetup: 3 element nested arrayN8Tx C "H Y Y/ YST}RDJOBFILE90 : K(2G) I,J0@ t  fappend HJOB for extensions@<4x Only execute when called by GFileData''<c~b)#ZԦ%SP $ t @% $ ((&hc /H%X_d X,h|& l)!H"H# $D%&H&'(h%)$*>+c,%-$.`/Q/$041|2Q3%456 78%8p$94:D};%<=Q>`g?p@4A$B@ C $DH$E*F(Gp&+H܆IRJK LMNOcPaQ(RnShSTTUVWfXlY(/Z[*[|\t]^_< `ںabcd4'e5f$g)hi j\'k(0l @F2(1 100 100(fi(V[3+3])wi '.*text'))@0X IK/K 0===---P>d>6:>4:>6:0SUBSECwi':f1.cbSubSec.*text'0l:endH8  Rev 08/30/01 of objects 3.6 Release 28(TNVwi':f1.*children'(-0KFKKK KP^O $ReadJobFileData lReadJobfileData H\ (cot) Class of takeoff; (toc) Type of takeoffHH 09/01/01 is cksize used in the revised system??H8< File sections ,subsections , factors8$0YF8] 4. TAKEOFF INDICES: (i.e. toindices8 `GSecSubSection 8Y display new line number in prompt8_ df :else (^ :end9(($ :end ($ II/I secno$(^ :else ([ 8Awi'*text' $a D'SubSection't$,h I(1H) A ,(b:if 1wself ss'Sub'((L :if 0=( A)B($_ :else$ :orif 0=A~' ' $d# :return$0Hs K(2G) I,J0 xa D'Section' (,a :select 1warg( e :endselect 4`j the raw input data filed above./4(i GWSize'Shade'(f :if R=1,f (shield) (sealing),(f :else (  f :return $f:if 1=wi':*cot'er$P- {not implimented} or insert existing (edited) takeoff datalWP(i:elseif 2=wi':*cot'(TwGFileData R;factors;sections;subsections;D;FOS;LN;LPI;P;SIZE;T;VT,c DUCT: toindices...,$g5`1pv84Oz ,[<uTZlGj kThJL8p,LixJ8he DXl9(d l'|p\H 4  edPrP_<(8xPпMh d4 @,@pI< (T$y/x\dP-<}&Dbs|dL47~86d0oNtLH4,hm7V$3d#tL`LThH<800ȿKQldz|`H|o4<   x` Hw4  CP 4Ct{EfXx| <Й$ܾt\?$H 4 0m24x ",H`L>(TMP8.)|dPp\4HL4  MYIZl^`U? ,,x/MOptB<vXԀ6$e} 8(8L-8F$p `DrmdEy|EvkiX@1(cqalNT@7(uR9`r|fPx3l,']L+'\P"t|4`p&l/G[s\?tH,wjT%'ltD\VT:@,P(_(o]0 ?'()*+,pE8WT,`9<%I .($/^aT@,AjY|d_T#H,Zx.8mH|&dJL\4violP2< ( lQt`HV, KsW6T|{hFTH<M(zwy]cf0HLߴ|hP8C=d;~phX@(OPpKX<  BgU|d[Lb8 - xxH\H4  @tLHSX@D87LTk$@,ܿȿ^xdP<l|(  4Ժ`H(ԻrXHPQܽԼ ph0tp\X@N(Gd H,ķXp%P/Tn<' +p9ĵh;4}<<lq D?(MAX5l صP,$F8PTV-ԶR̸]عE_(40 \hNLaQ<DPdRԴx"o$X̳2Jfp̾xX<@ħU|6H`*0ܦZGpx\D,ȥ|hT@(Фl48r j˿أ($Ht^dBx`H~0P0H\p+Ƞ,l%XD=0CП|[hT<'<. $= ܞĞ|T3d5LF >4$z/Н x9p6<OX1UT ̜3#2\@(?7ț^N()k`8SLX4?;Ԛ0P`l[Jn|4̙wd,0Lu4!ؘlĘQeE"tȡ|`@ ($:̗|ycpY\I]@9Жf-xm< @*t({PdDĕMGxH@\3,pԔ`!r,VdԠHz)ГKA|hT~8 |\CВ< }nԑkpv8^"T,А$ĕ@t,NjhPR4|: CԎLؕ L`W8o$_qaԏ$pH ,h4Z(Ѝ@X8L$p\s\@(TЌ@#Oh,@TȋF d08H Ċ $&t*`iL8L#ԉBpX -0.D܈Ĉ0&,\ 6|M<Fȇ'|/\߾HH 43$PBІJ|k`H?t(Pm&x8ą;؅1U|9XP4Z ؄d+xH$ KX`D>07%jԃa!tT2um4y"{{_tnTy(ԀRuty),{bz@Hu|A{g$|!T4cx{tz|||ԁM,}}(Sd|~~D|l|h~htqluN}\\v8vvv wx0wExixW@z}dxxpwV~d\~}|~vy5z@x|vwwwb}t4~oww:8~}L}^Tuvytz{yPu(ulz0xu tftTDtx`L{zԂtyvLy4 xT0drPr0ryrqsssslsTs8RlN}NN3hNLNNi4NNDMMMolMdAL0x71 l<xhXlKD00  1(2lU5FtD@OU.< 0|!&#dQL;  X)DX($@<%tt"9,hU0q8\ ~X;8_C7/@-<ttHb0 ]h'g^hwd#e8SdI =mxR WH+`4k`  pYXd$HHdohEd|LHvdlP((dx@x;|G4+ T9Td@ts,t37Cж0.?Xkrt`90vtxp0rZTnhfsHdgg  6$Di|}rtFhĴM |B}\ `0xh Գ4JlDye[[@M8D[4؟90h.~H"i!{HpۺVL"c,"lX`4da`33333+Dfb8xxTlt~PDebugTrace[7] GMarkID[4] NonEditKeyPress[290]GDataKeyPress[16] l@\$aY=\0c@atgH]$ȷXI@0ttgc|=0dDwVxFcc|=ddg`a[(aI(c=|U,HdK`adhw(aI(c=|U,<HdbugTaK] h$| gw.fSQ.b17$Ls  !"#$%&'()*+,-./0123LdlԛķdW`O޷ YWܷ d,d:|UhJdhбWܷ d,dh p!c 0 {}_3`Y,0 \Button [%%`abcTt 4~RdJobfileData h v])DЦt T$\0 h(ZRdJobfileData NO;C;G (PL\ PYtcnLTIEJOBFILE$ StyleSheett$ H*where $I2CNh+C((C)1 0 0 0)/C1501fsize jobfile[2] compnents with user's takeoff datah\. NO: 1=Line number 2=jobindices 3=class 4=toindices 5=user's takeoff data\T (LNjobindicesclasstoindicestakeoff data)RdJobfileData NOes TP|1ZNOFREAD jobfile[2],C Nested vector of jobindices P bBwi'*list' lA(  , 9($`Y   , 9$D % R R,+  f fD(   Rf(   +9 $0*  , 9$ `Y  "9   /i *text $ *selections$(  R診"6(x5  e0  R,"60$M ĩ $l `2$d  L" =$(py  R86 L(|r  Ȭ1( ($b L H$    $  I$ 0i*text j     L"9 L[  M"9 $  H 9e$ d*text 0$  R86 M0$Hg  M" a$$  I 9=$ f  r Lq$   ,9=$ О   SQUARE ,$D 8ں $ *SIZE1 +aplname ( $"69(M 1 M (  (  论, 9(  Ȯ/|   R D"SQUARE Dk *  R, R"6aD\\`$Xh ..*edobject$ 8hShadeg i    3 (?  ֺ, 9((Ԃ HϺ"6, 9(C,  Y\ R86J,( ú"6 V( Z:*cotn D )ȱ R86 ͺ: 3PCD(on "6 V R($ "6 V$ DE:*FMV (8 ௺"6, 9=(DTE i%8"6ز"6,{0 R" TObject"ActioDD -"6"6,{0챺"6D 4*Focus (  3/ Y(   ú9 $$| *kwparams $,J..ed1_lab.*caption@, Ԃ:*cot $xc :*toindices$(].lDesc.*caption(T cA ,   ij  :, R s:86 cT \:*cot $F  w, 9$ @F   D ' ^ ] W  VjsniFniD `    $gw f䳺 , 9$ `I*where $ V R$$  R Z Z $$o mh x, 9Aet$$r  \, 9H$,elxelx  skip,,  V ^]W,D % R s:86 D     ,  Z V x\w, *where 4Function called by BEEP:..4 d2 "1 (r   UY( cShadei $ m *childrenD.b$, ๺ V 86, " X/|  V  $ *attachJ$(4J |"6 PJ(,  U Yؽ"6>,T B s s:86 :~   tT\ K s:86 Z:+ R R/ R, 9\( 8"69($m x"6 s$ \*:gaps (  s r6 9(0 "6 s+ 90 \*size T ] B s  s:86 :~   ST0  t S, u u/ 0(\ @"7( $lSelector c*Show $ *hcentermer$4" $bDa,bܵ4( 컺"(   V $ m MessageBeep$$   w/$ l*Close 4 " :86  w4D|d /@ V  ~:86 D( ں"6, 9(He( 躺 86 L(c?0 l N86 R=04r $ R 8, 94$  *children$ l:*opened (  R+, 9(l, X"6 R~ Rz, aClose 4 D#  R:86 ؼz4D0 % R R:86 / Rz 4D *opened k*size :*FMV $l*visible k*class a..*self NewClass $ "6 R$ \:*cot  x/| $xc :*toindices$$^ *vcenterCT$($n ú"6, 9(D 3 R, Y:8  / 3.D$ ..*edobject$( v "6(0S  $º R:86 Y0qEditH--*** gwsys is not set for the HVAC system *** @H ROUNDr 0 0 8 *color X KeyDown |*text D 3ɺ@ :86 `ĺD SRoundT S:*cot hT*OpenV T*class 8 ..self T*class ,re 2 Nº"6 9a,(ba r@"6(th(xYDual Wall Round ((DDual Wall Square((:8 R,:  H(  R,, 4( lֺ"6 RD($x  9$ EQUIPpic 0  Ӻ"6dͺ  >0,    ^ou,(\ Һ"6ͺ, 9(LOVAL d :*cot= tQTY \aplname $| ..*kwparams$("   .R($" غ"6 R$ *textn $ d պ, 9$$_ ..*edobject$$ ..*kwparams$(  +, 9 ( P*text = $|? ..*kwparams$    r ,t..*fKws.*children,, Ӻ"6غ ,D 3 , Hպ R86cD$c  Rc$  *color , f .f,4 $ R ,,xٺ"640  R ,/`pӺ"60B D 4ٺ`ٺ, , r<ۺPں, ,.rD \*textn $  , 9$(  , r R (L f; :~  ~,, + L$  + 9$(  ,9(\AL 0SIZE137 Dp (  :8    D(m  R ,/: r9( P aplname (  Ӻ"6(   r 0  RDԺ"6p׺T0$T ..*kwparams$| SIZE2 M  4 4 #غ"6 غ׺94@$ *selection$$  + 9$ܙ *caption wherelce l:*cot1? g``4 wi '..ed1_lab.*caption' Pp4(c :if I((d toindices=0no((0 ٺ"6ۺ((wi'*caption'=(TRs R2Rd T((T wi '*style')<4096)/T Delete read only edit object JWG-10/30/01Pdlh[)0HH     ߺ @t`X``$< .!"ߺ#$%|&d'()P*+|,-./01234H5$6lۺ7p8؈9:; <=>? @8AhBߺC\DpEXFGHIJ`KL,M4NOߺPQ$R l\X wi':cksize' ((0 0 0) 0) Clear size check flag. Called by TOInput.\   :endQ :case 'KeyUp' $  wi'*text' Tmer$ :case'KeyPress' $ :endmer$  #'case KeyPress' $@#:case 'MouseDown'er$  wres0 Q $ :return$D I((I=0)/T),I JWG-10/30/011DD I1+T wself JWG-10/30/01 DD BEEP wi'..*Close' 07/05/01MD H:case 'KeyDown' $h :elseer$ :select wevent $  :endmer$D V('gw.f1' wi'*children') wi '*class' DD| Allow windows default action to handle characterUD l! :endQ @combo_Handlert ! :else 'case Keyup'Q $GInfo 'MouseDown 'r$X JWG-10/30/01 TT,T(V( 'Combo'), 'Edit')/'gw.f1' wi'*children'] 0X:endselect$  GSecSubSectionr$(wres2 reset hold(T 0 0wcall 'SendMessage' (wi'hwnd') 'CB_ShowDropDown' 1 0ngT,p (T[I]) wi'*Focus',x:end  wres0   wi'*Focus'  FOOQ p:return :if 13=wargQ $ Twi'*text'mer$Dļ GErrorMsg' Need Tab key handler'DX ROUND R= size [implied count] item [count] item [count]X\ GWScrollOne LAST write last line of takeoff to the history area\\XRGJobindices;end;facno;if;secno;subsecno;A;B;C;FAC;F1;F2;NV;SEC;SUBSEC;V \xDZ C((C)1 0 0 0)/C1501fsize jobfile[2] compnents with user's takeoff dataxH T(V( 'Combo'), 'Edit')/'gw.f1'wi'*children'Hx C((C)1 0 0 0)/C1501fsize jobfile[2] compnents with user's takeoff dataindxTD HRDJOB 9 (sections) (subsecions) (factors)TD@$ I((I>I)/1),I JWG-10/30/01D0 GInfo 'KeyUp {Esc and Tab}'80( AV character codes.(4':case KeyPress' ('warg=' warg)4(P wi':*ERR' 0( H 'case KeyDown' $8 :endmer$D I1+T wself JWG-10/30/01D\ SUVRw5TT TTTTTTTTTT%'*TT-TT01334667:::<>D@ADDDTTTTTTTTNOPQRTTT'-*D<ST( SOUNDe( :return4| 'Shift+Tab 15 1 1 0 0 1 9'4(( :if warg[7]27 9(4| :if 0=(wi'*text')~' '4LLq Called on and Enter key exit from an takeoff data editwLt̾ 2 GPutFactors 1 100 100 1 100 100 install default factors in Sec and Sub sectionst<lF1(1 100 100(fi(V[3])wi '.*text'))1<@ LNGNLN Next takeoff line number 1@Pp=============================================================P$xi SIZER C$<Lg 3 GPutFactors KH<,combo_Handlert;I;T;V;WARG,aWdff@<ԅ wres2 suppress default action'<xs@ ( 1 2 (------- 3 -------)a@(H 6 7(L8 Open and install in GWEdit before Action after debuggingL(r :if 0=( A)Bor(du :else4G append two empty componendts4 HP<8m New Section: Set Default factorso<, UCSTOPd$d :elseer$8d:if /33 34=1warg PageUp PageDown8 @GSecSubSectionC <$k t  fappend HJOB reserved1<<o :if 51=1fsize jobfile[2]<0h 'TAB=15 1 0 0 0 1 9'0( :return(P$ Upper/lower case plus '.' av[io+8 32,46,(47+10),(64+26)]1P$@8l1 wi'*style' 0 left adjust text8(H :if 27=1warg((Ћ 'WARG=' WARG (:return(P :if 9=warg[7](@t Tab key handler for the Setup area'@<p 3 GPutFactors KH<<to K1G[I] facno <0 wi'*selection' ((T),0)00 wi'*text' ''08| :if warg[3] ShiftTab 8P2 XXX U[2]LN  (fm,'.fHistory.scHistory') wi 'value' UP<q :if 51=1fsize jobfile[2])/C<<g K1G[I] facno <L FOS50 jobfile offset to 1st data component 8/11/99LД:end1HO 1-Line number 2-Jobsetup 3-cot 4-toindices 5-dataH8 wres2 block default action84===============================4 :else@` Some virtual key codes and not valid for AV@(,H II/I subsecno ((] :end C (<l File raw takeoff data with parameters<0 IK/K 250s fassers R2R0n R1Rs Ks] K P:end8ȍ SOUND wi'..*Close'8(! :returnj 09/04/01(TObject"Action"(i :end$t borderstyle"$\CommandP)DX  |   H\l  4 (H0G Reads data from GWSDOC FILE0lHHHH9G0   ," P0,L   8.,K?(M  9(LM P M si$  , 9 CN$   4" GWSDOC <ܕ (result)RDDOC (component number or '?')<(\ Created JWG-10/30/01((7:if jobfile[2]xfnums(FUNTIE tn RDDOC 4|ZRDJOB CNO4tW (jobfile) xftie jobfile[2]4 fall thru@KOO  SEL= @ , D + 9,  $H  $$   r $(  r, 9$$em lT"6 4 $\  \1@*D &  , , )ַD  D 4 $ ..*idparams$ *textb p2!" $| *selection$$X "6 $4 !   "6޸4$ *selection$$ "6 $ *texta$ D %  +   L D 8class ( <, 9(  (!"&((8(H X r, 9(D +"6 ~ 9D X*texta %   r *textb $ ..*idparams$N G9 $  $ ..*idparams$$ a"6  $ \*textb \*texta $ ..*idparams$4N !"6, 940h,0$~ "6 $ \*SELs .H 7"6, l"6, ,9H$ 4"6 $  D *\"6 X <: D(M  "6($T  '$ *text  2 85  r  1 2M 1= h1l  $1l  1(@Xkm($l  <2 2   (M  3(D *"6 X 4: D4 !   "6F4,  R + , w,`#<'$0 *selection$0  R,"60(  R@ "6(ID(,;  R+ w(D| ) w w,+ RѸPϸD aplname $|  R0S9$ e ,  , w, R, *textu D -  ,  ,.D0   , 90$T  r+ 9$ prShade SIZE1   /| (_   , 9((  , 9g($W ..*edobject$ LShade D * "6  + 9θ7D(   , 9((   , 9(   r naplname (fR . , 9((   "6($f    + 9$ Dy*text (" 4  86 D(      r $  R ,"9$,j h "6", 9,D w/  ,  , eD u*textn ([  t"6c(  n 4 hh*textnn   /| *text ( |/:df(,  9,.D + ,  ,,9DD %"6 + 9@ʸԥD g  , 9 ( "6,9((  "6, 9(( ("6, 9(8HQTY$  /, 9$ WSIZE2 (И(,M  49,$ c '$  (  ~ c( $  R ,"+ 9$T  LG@ T  4   4/| LQTY =g .| R  1 2   4 $ "6 $ uaplname u*text7 ,M  T, 9,@ SIZE1w Shade H  $ ..*edobject${gw f e0 l2D ,t,, (Ļ,,2,D8  x1 rs 4 4 ( » , 9($  B,9$   +9f $$(4  "6(D % R R,+  b.tTD$ H"6 $ &*color $ ..edobject$$& ..*kwparams$DG 3"6 :  , 9DD %  ,+   g D(p  X w(p:if '?'=CNO(  w .X#4V(%   (x..fKws.*children(, ๻"6", 9.l,,   R, V, $4   , 9$$ ? "+ 9$$> MouseDown$$ G  , 9i$ (MouseUp $ .w$ - ( ǻ"6A, 9((  X"6((  "6(( @"6(0  ,"60$ ("6 $ }*SEL\ D c&  , , RlcTcD(.    f(?  }*text7 $} *selection $(й    }(    4 $ *selection$$q ..*idparams$ ( C  N, (h  1L! H 7  :8 :  H(  +, 9($  , 9$ D*text n_jfound$$  , R$$  , 9$$  R0S9$0  R,p"600:else$  *selection$ hK*text@@ (  R"6(   R 9 $T   , 9$ hKaplname $D  9q$ hK*textn ,D  , / ,P  eD ) R R,+ RD(c  "6\J9($0 *selection$$   , 9$:end 9(  Rd"6(0  R,8"60( %"6D , 9(,\Z  X+9,ė    r $  .X$ w*visible $v ..*kwparams$H k7  :8 :  0H(N  , R(L ; :~  ~,, + Z L(s  Z ,9 ((..fIds.sc.*value((@..lDesc.*caption(D ,t#"6L :  9D4 $  ,/` , 4$  , R$(p  + ($  /i rp$0q  R,$"60(  R'"6($px ..*idparams$4 !  , + 940s  Z ,.0 =   $܆ ..*kwparams$  (Hk..fIds.*children($ L&"6 X$  *color $\ *selection$$  , 9$ :*cot 0lz $"6+900 &"6 0D ,  ,, + D4 $  ,  7, 94$pt ..*idparams$ "  +  $h ..*idparams$(  7 .(    $h ..*idparams$(f   .X ((  X&"6(   r $v ..*idparams$$  $ |]*caption Pt*text D , , ' 86D, \$"6 ,$  9$H 8 , , $ 86H4< $  , / ""64  | 8 $v ..*idparams$$ )"6 X$$  .X$,   ,, ,0h  XL'"6 *0,M   , / 7,(f   .X (H f7 , , +   86H( [ R, 9 ( X  r *color $ +"6 X$,(  X+9,(   , R, R(   R $p *selection$  -"6 $p ..*kwparams$4 ! R,,/"644 ! R,,+"640 c *"60(  R/"6c((\  , 9(  D .  , , !"6! dD$  "6 X$ *visible $4 |1"6 X$ X*Focus 4 $  , /6"64H 8 , , L0 86HH 7 , , + X- 86H$  9$D , , 4 86  D0  X4"6@/0(   .X(ȵ$  .Xe$ T*text67 $ 46"+9ds$ Ȼ*SEL D .  , , T5"6|5  D$  .X$ $*color $ 81"6 X$(@  7 .(4" $  ,  7, 94,   ,, ,   +  $ ..*idparams$  | 8 $| ..*idparams$,   , / 7,D 2  , w, ,.D4 $  , w,94,1  R w+ , w,,  Z , w,9,$  w, 9$$  V.w$(RD fd4 V.w(( 3 w V($l  R"9$( (7"6, 9(LF0   w $ ..*idparams$$(  5 9$4 $  P6, , 94,  RH9,Xи "   $| ..*idparams$$  $ *caption (6  X3"6((   .Xcl((`..fIds.sc.*value(LFL ; :~  ~,, + ZL4 #T"6 R R,  R4LA`LL 9  H7"6 1,, T, rL($..lDesc.*caption(   /S9& , K"6 , :*cot ,TextSize (  3(  L1(ApplyStyleSheet( 'Children < apptitle $ countries$ 7TextSize 40# $ ,/` "94 <1 8 caption $ clipsiblings$,T+ControlFromAplname, DemoShow 0T  , 3,90$ XI1 l*where $ commonform$ G1 country $( windowsdir$$T  , R$ J1,  K9,f  71 Bcheckn $ resources$ 9 ?1D % R R,+ ,D attach l*text  71$  *selection$D + t;"6C"6 1oeBD E1$  R0S9$ <*text@@ $X  installdir$`  H>1  enabled $D CheckClose$ 8=1 0#suffix $F Control2Var$ B1( A1 T;1 xI1( EnumChildWindows(f  I1 0ontopn $P ClipSiblings$ =1M 71$ <9$ phandlers  !  C1(- GetBitmapSize!( ?1(-GetCommandLine( Esysmenu 0  ,B"60=  81 XM1 SChStyle $@A SessionFocus$4D $  ,  "94 N1$9 *selection$gw s F1(  , 9(f  TG1 Saplname $0' GetWorkArea$im r @1 Scalei $B SsColumns7$( A"6M+ 9(D2C D1(f 9C2 (ansi  $84 SmgrHandles$  E1(DecimalSeparator( '*text $2 GetAplNames$ ( TextSize  0A1  :1 H?1 ShowDemo D & ,,@"6D TextSize $7 SetAplNames$  xB1 common $J StyleSheet$ A1 881(h MS Sans Serif( Fwheren $e CountryIndex$4 ! s U U,@M U4 wherelc  \D1Hgw s81 UCenter $lf DateCheck$   t 4  $dI EnumFonts$[  91 |D1 1  :1  =1  E1 ( ?Textize  xE1 DIAnsi2Av ܅  p?1   /6 $  ..*idparams$ :1hjusthI2C 81<Font1DATA4mustLA@   "9 0     ,L \Q"6, g Q/| Show($ O"6, 9(,  5 5,  w, @:*cot $`  V.w$,H  X,S S86,$0 .w $$<# 4Q"6 R$ *class T-*color Dw f& O R86D(`  w .X(0gw f O R:86 Y0(g (W S86 X(DRD f& RZ Y / Rt;D Shade  (l..fKws.*children($ ..*edobject$(T_ :if I(($ :return(D 1 Y ,, w w,   PD$  V  $(8  V V/ V(   73 7 ( Process SubSection (0   w T, R00   ]  70$  "; w$$ ..*kwparams$   5+9 0   ], ]V ],  50D (W ]  /.]ZD$  T R Q$,5  T, )+ w ,D@A C+ V 7, V 7, YopqrstuvwDD + w, w:+ VD$  V 7 7$$  w, 9$D= - s s Z, w w/.] *D$  5"= T$DD ' 5 5  : 5t d DD > 4 Y Q"; Q Q, :8B \Y$, ]D0d   ]  V0$  V  $,ti n Y"; " Y,,  s s, )/ s,,  s Z, Z,̋(  ] Z(03$P  ..*kwparams$4 ! T R, YSE4( Y V.](,  w w+ ., 1E(  w W (0d  s s, + s0(  w", 9(P LF $  6 w s$,P  6 w+  w+  ],08  ] ], 3 60,  ] ], ],(  5lX, 5( ?(  ], ](0  5" w w+ / V0,  5 5,   ], ,HFILE takoff data=e, K*textr &*mode T-Labeln   R $?  r9$   R R $O  r9$DX 4] R:86  /  rD   $ r r, 9$ R*text| R*text T   'D )`"6 Xl   wD\)  T_2D & R R " +  / T8.sb.tTD$ fb"6'$ @ g r $  w9 $ @*text DTW '^"6+ +9nf $VD  w9(  X,Z,/-(HL$ < r,a r,Xo,, XLHL--*** gwsys is not set for the HVAC system *** ?H0 ["6~, 90$tW ..*kwparams$($  r/dLt(M 1Xic :return  K r<> $K$$> ] I H$0  _1( T [d>(]HVAC0f  ^ _+ /" f00im r   8.0  @o P \  R $0 ..*idparams$, b_ Hϸ,l>$) :return$$n  '$ bROUND (  R r(  da  4 #c"6 R R,  R4l$ :*cot   L"9 L&  H Z9 L   T'0  R,f"60(<  Re"6(0  L~|+ T90 g1  c1  '( i", 9 (    Q $  r, 9>$ A*text. l?count $ dd"6 4$$  , 9$ *count 0  , 3, 90    (M [ R86 L($"  L" ZE$   r ,   ,  w,(\Q |f"6 ",9>( H*text$@ 0  ,"904 $ ,/` , R4(  w"9($  ", 9$ count$@ $X *selection$   r   o1 *text  }14 "k"6k,i"644 " r r " + / r4 4Pcountn 4P= !o"6~ r rN4H D )po"6f"6/, r, r<@D( l"6di9(D & R R,   "9¸D :*cot ,  g9 ,HAX>  x1( h"6, 9(ID  *textݸ $ *selection$4( $  ,i"64@  x1 $w10=  x w, 90$  '$ N*textaH 0= $j"6~, 90 @ x1(p <, 9( `K*SEL 0'   ,"90 0*SELظ ( ,"6o, 9( hx1( <, 9(     4 "on"6 44P  _  (f 4k"6, 9(C aplname >  T$p n"6 $ p   9  "$ m"6 $$c n"6 $ *textb   4 $ ..*idparams$   4 ` Nxxy,,(y@y,,Xyy,,o,d} 9` *texta *SEL97 \  $ ..*idparams$(8v<$ *selection$,TP,H Action$@ $ $$ ..*kwparams$,  X+9,G  '(X py"6lp, 9($  '$  ot |1  y1 Dz1$  (u,9$ 4P*text  s r $ p"6 X$$O  r, 9$$?  },9$4PJ #u"6 r r,  r4  sL} 9   }1 |}1`K  4}1( y} ,9E( }1T3  |T  |( %'((s[ ] x"6pu, 9(( <`Z"6(0  0~ Ps, 90(  3e(F  ( :.sc.*tabstopH( (  v9 4 ! R  Hv"6 4(PJ w@"6(,XY [  0<*textnn   R $ H~ r, 9c$ ;aplname    P $7 ..*edobject$$ag h r, 9?$ ,9*text $  r, 9nt$$  r, 9D.b$ ;KeyUpn $L h"6"9$(E @Z"6"+ 9((D  , 9((@ ,{"6|9($ J {"6"9$ ,9OTHERN HG H 4$4sNew`F-$4F PKeyUp hCPCHe ROUND $  R9$ xOTHER $$  9$ aplname $W  " Rv$ :*cot \   /, K*textren $  /, 9$ :*cotn (w [ "9(,\ 䁻 ,XOe   "9 M  ' $ :*toindices$(d ~"6~9(   r  e   R9  DM &x"6"6, XYZDId   P (c  r, 9( 1K$K p *color x:*FMV P *color x*class ,}*textr $~ ..*edobject$0lkERROR (^\TCNLDM)/DM0hC ,=  d+ 9,   ,M "6", 9,XO  $ case: KeyUp$,  P䃻,  wself= (  X"6.s((  w .Xw.s( <:*cot7 H 8 Ԉ L"6:86 H( D@"6(  e( |t"6($ L"6 3$ :*FMV (| "6, 9($ "6 X $D,z % R R,+ [D( "6 Vw4[((l 䆻"6/ R(,$  V"6 3er, <*text   +9s $< ..*idparams$Dl ,$"6p :  9 DD(  X w#($  /, 9$ caption (  X"6((  w .X($ .w$  *limit $\- :*toindices$$ .w,$ *color $(  *idparams$  w 9 $\- '$(b A"6؇ 9($ "6 4A$D 1 R R:8  + / RD(  X w(  R$/|T 0 A , "6A0  *textwn $\- MouseDownt$( "6 ",9(( l"6 ,9(   r $ *properties$(  |л"6(H386w|$*|$&E"f]fMEEEEfEfEfE fT$&fT$&~EfT$&lM^} }"([c( fT$&U]:ת*Ëظ  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~H *text (@A C ~ YZ[(.scH 7įܯ$,, ,, 9HDd 'ܕ̑,x,ت 94[TD( @ 9(0M ,"6+90,$ "6,, 9,x{/($  T, 9($0$.0`$$8  R , $ @A C  $  /` $  |/:   4 $h ..*kwparams$4P %&'(#$4$ P"6 T$  textn c  .s ( f  "6((&..*fKws.children(DQ +Ԩ , < ,,9cwcD$c  9$,  ~, 9f., @L 9  ,Ē, ,"+ ",9LD *| ,, , RinD$ "6"9$,  `9,l/$ "6 R$D . yL",8 Y D  d y $ ..*kwparams$ hm*text $   "9$D & ,",l,9zDD , x R:86 8D$  , 9$ L*color $$ d"6 Xs$ : "6  裻"6 $t Ж"6 $ 0 *text 4P %&'(4$0$ %'$(  , 9(H'?Xc(V P 9((M t 9(H 6p R"A,,, rH$  R"$ \%*Show H*text7 D %0"6t"6,{0 ^$$D01  R,"600  R R8.0$4% 3l+ 9$$% D"6 R$  T"6 t  (d'  Rd"6((^ RDT B 䧻ĩ@%, T4 "  ̮8,/ P4$  , 9$D )4"6 R R, 3+ / R.tTimer$D$ ..*edobject$$`  , 9$ l *count $T *idparams$(L  d"6( T  r $\- *selection$,  8, + 9,uD *h@ "6:86 m`DD *@ 螻"6:86 83D 5 H"6' $9 ..*idparams$D . ܛl2 D@SHOP(  9(|4COST("  @"6((>..b11.*enabled=( waplname <*enabled $A *selection$D *$@ "6:86 D (@..fIds.*enabled( C*textn D -"6 Р|9xD,$;..fIds.sc.enabled8,`  1  1(>..fIds.*children( w*enabled $tB :*jobfile$(  @"6((^QTY NEQUIPo  (>..fIds.*children( D?..*BNV $d? :*toindices$$ t"6 R$  D*class w*stylen ( @"6(h OV$ L"6 4$ <OTHERnn $  , 9$ 8]*textn $"  w, 9$(Hz ܢ"6, 9(cDESC0\Q  x R:86 Y0 PCFIELDme 4 r"0"64"6y4$  9$J  L1 졻1   / $lo onExitError$DL 3 w, @ R86D(x  w w Vv(EDATAD & R Y / R\D hJ*textn  xaplname $O  Rer$ ,@*color ( "6, 9(Dx '( S86 w]\(yD 1 "..*ShowD DQ , T R:86 \QD(T.fIds.*children((8T.lDesc.*caption(D %@ R:86 V[VD$V "6 R$ V*text 0  ul"6ws0 0Q*Focus ]:*cot 8]aplname X]apldir (  "6 V (C SQ(0^ D"6, 9 (hEditDx * u, :86 \(yDDb. T/ R@ Y:8  / r<`D$0b *children`$ x]onResize 0  R:86 Y0  (dq..fKws.*children( MouseUp (  89(pDWOV i  9 $0b :*toindices$ :*cot ( 䦻 R86 R((^ID@,  VL"6 R,{  V+9(a..fIds.*children($ t"6 R$ V*color`W (..fKws.*children(( @"6(mDWRD$ C V,9$ :*cot 0 Gط"6 $TvP$(  R86 3Ha(m.ed, 䭻"6 N R,4$  V, 9 $ V*enabled $ "6 V$ ~:*FMV $ X"6 N$aDWSQ0m r,"6 "6 V0    , @(D u,{$L} *aplname${($ @"6(gw s  gw s/| ( |ر"6(r( "6, 9((x  ̂"6w( 4vMouseUp $Tv *edobject$ s  9 $`t :*toindices$ ~:*cotp $$s$ `onMove lGSIZE2  x*enabled wSIZE1n (dq4A1,P<[>I6,<]>(  xLabeln s1 ..*self sA(zz0z0{n{ `{/x{ 0{_Xc/x{ o49  »$hĹ4D0캻d( (ĸ|0p\ûĽd@ػ$Hx̵8X<22t  »1 `1 t*textren (L ̲"6H(m' w 10 T1 l 佻1x5 |Henabled X9attache $ aplnamet$$L} *selection$;   T' 8   Q $ A"6 4$  KeyUp1 $49 debugtrace$0 DB", /?0(1 Դ"6t, 9nd(05just ̺1( wi'aplname'=n( t1(XIApplyStyleSheet( 8KeyDown P:*cotp ~Shade $ clipsiblings$ Jchecked ̴   'D 1  TC1  /, $88 countriesel$ =Actionup ( xC", 9H($ hû"6 4$ wself= $  FileExist$ D warg= $d GetWorkArea$  wres= $ SessionFocus$(GetCommandLine( wevent= $x9 CountryIndex$$t Control2Var$ z:*FMVp ..*Open (  L, 98($  ^,9$  C' ' $, SmgrHandles$ apptitle   '(, GetBitmapSize(4ay t$ʻ"6" ^û8, L4$4  9[7$ T=====jTV (1 +", 9V(8D2Ce s,?VTlp *text0 d [ 8R 䶻 ,, \,, P,bA,b/, Pd$49 windowsdir$ D(, :.sc.*tabstopUp( PMouseUp $p SsColumns$ 9MouseUp $XH StyleSheet$ 0>countip ,   R, V, ZZ7 $  resources$(, @"6(must,  Q P3/ P,y KeyPress $# installdirin$08  Q, /0(  Y Q+ P(l I2Ct Iapldir $ ClipSiblings$ Pcaptionc $ EnumFonts$ DCAnsi2Av \?countp classle GW2Cd ;wherelcd New GTypical JAv2Ansi ` O  w | 8,  8D R` OChildren DE / » :8  / w] :D$,' m\Ļ"6 3$ O*text  dƻ  $F  , 9$ OK2F4.2 Redim Kinifile $H VT_Dispatch$ 8Hhandlers $K VT_Variant$ 1(IDecimalSeparator(f  1(EnumChildWindows( aplname country DCheck Ksuffix $K WhwndOwner$ @whereds \LXClasst D, .   @Ļ  (e' Ի", 9(Q.edS PMNewClass $lv :*jobfile$ GChStyle , Ż"6", 9S,Pr*F8.2(  < 89(I3  ,   R, V,/MI3(xT :f1.*children(D , Ż Y:86  fD(" .X($ "6 Y $ '*color dS*Focus H '8$  S:86  "  TH$   R V$ *text ,0 4Ż V R86 ,0/  L,Pǻ"6 0(_  Lһ"6re(0\dddd0Hch c8λ < S:86  "  QH p (1 1  \  9 $ l *selectionTV$ 1  <ӻ ' 4:*cot DI o Ah9$98\ A8X88@7@7˻˻H7lջ\˻˻d @ֻ@`@ѻ@@ @@?ʻ?ӻ??@һ`?λ@? ??λ>>>02er l  T' (y (߻", 9 (type  '$ H߻1  ߻1p E1  TB1V  x1 @ʻ1 $s*text  $ɻ1$ ?labelwidth$ ׾1  ׾1  @A1 >1(ApplyStyleSheeto( I E ѻ1(,DecimalSeparator(w ( л1(pEnumChildWindows( |̻1( GetBitmapSizeand(~  `>1(GetCommandLinea (ob l @>1'* h  1le e  >1&  1$ ?modalresult$$  "6 4$ : n =1 =1pp '  ߻1  'as e Hѻ1 0λ1 \л1 =1 L1  =1 <1D  1et '  T' 0f?caps  >1$ e "6 4$  *texterA $ countriesC$   Q $ installdir$( t ", 9(4DemoXA  '  `=1 @=1\   =1 @ϻ1Ĉ  =1`  <1$ л"6 4$ class $  , 9$ 0f*type Д  1   Q $ modalresult$( \ϻ", 9(caps    $X ?Document$  Q' L`Combo $x CheckCloseme$D R   $  resources$$  ^,9'F$ dS*textfj ('( c L, 9`(4 l$L"6" ^û8, L4" ׻1ؚ   T'(PD > R< `< ,Ի R:86 /һ SP$ windowsdir$ 4   $ debugcommon$a A  ;1 :1E? :1$ *childrename$Edit(4 ӻ", 9(typeTLATD C`Ի:86: Ի ,ѻ , w/ R R, RT$U EnumFontseld$$ *children$D , Rջ@< R:86 , / RwD4 !5<׻ "7 Q: c4Dȥ *p ջֻ86:86 w襵D0 A"6 UY+ 90 `A1 6gw.f1 $ CountryIndex$New  `׻ Y $R sndPlaySound$0||386w|$cd$J|$_fD$f\$fL$2EEE7EEE6ffEfEfE0fEHfT$_ %vfT$_rl$J}u+Cett u](M,M(ˉ]NMRE4E5M@M8E70fT$_rl$JD$Z D$$D$[|$<+l$Vl$RՃt^t$[L$N< tD$VD$ZD$ZD$Z <u D$VD$[JuD$Z< uO;|$>XhL4 D e D ,= dxH` 4  t<Lpcx p4 t| t!l"$d#$r< %@o&' (lPڻ?kں@ApٻB} 4 :if 3=+/OS=OSV4{  :) A0@ID`jxbD . Y hYT tX [T X  b XL|iX?n4srJr[(t|TpYAĉ,?tC @!/"#$C$T%q&(Y'((HY)**+,-X./0\1|2g3X4'5X/67$8p(97:;L_<_$=^>?m@A ;BMCTDOEFG4aHFI;Jt$L$OY= O0(y148@H̅ Z87\8R,DX\Olf)m\g'|f`ܦ^^8MHDLM.^P|\8 -)|lQ`)`*p,WTP`M2DPmt@i<*(<0dX xm@@\\Op |i@@_DO x`  x l vhPH4 L;) x O.?8<D` !`"#h$a%`&'(t)*tF+p,d?-P-y. /i012p/3|}3344y45D6c748@909$ 9: : :4;)<<l<p-== =8>$f?@ ZAȁB \BBT'CYC CDE`EEFMFF`GLH8I4JK`LM\N(OPNQdjR DST#UV܄Wl~Xp}YZ[(\vk]$^\_(,k`ab$clSdH@ejf_ghTh?ijd1klm n[doupqrzs|ttu8[HvHw<x)y\[,zx{x|}x~jؐX=[xn"3p([\y@8p ( A8o n 6.)4\l|lhd4?Ծ@XA B@CtD,D0D8pEEEܯE\E FG\yG@kGH(PI JKXL`M4NN!OO{PQRRp#SSTUPpVWXYxEZ\bH[O\]q^_)`a,b(ccd\tePJfg0:hi iiȺi!jbkxk`l\lDmHWn,op|tqrlNs}tX,u[vDNwxyPLzl3{| }Ԫ~N[,;GHKe|DPh()[Ys0 `^8^rD8h<پ<^LJ4hlI9̨ #x0@HIgLxpgpggx|4]+|tDwL{8|xt&|T {`2p-vĩ qGL$I@t)GvXDT $ JdL:/ܦx PܪX(`@vTFH0UG@|E/7$FTsR p t 6  4  <ܯPܒd`~hLH| KlE |!l"dk#$z%$0&';(0)*+:,0-.̹/J0-123J4d+5 67L ?C@$LAB5CKDܢEFJG H{IPJxKLMLؿN:OPQtRMST$UjVMWXDX܃Xp2XlY ZpZw[@[T\\V]`^_/`{abcd%e|frg Nh\/i@jP klNlMmLn(o0Vp qrtstu@vwpx/yzL{x|D6}$~$l67v$r}AFN`?D@ <H 8Y`Dt>X>`TDo|<8dx,>$|e:'X+)욾@t/x\thPxPWx[pdm8w@tO؍(P8 LbԘdT|d^b <u-=pl9h$ =0Fxc\FHpr\ 0$LE`\9pC,X4(H`r(\ص %̛$dV!ܞp\>D>4 D|PFD65  E   ̹ < 40 6/< |pȹ=dPln<4pD!P\|H !"@#$t$h=%{% &&P=''r(T(=)**++`&+p,,L,8=-~- =-|..<#.;.$l/T/ // 0011i22؆3Ll45>678L8;9b9:`:; l;D<==>>>>S??H?|@w@p@0AxA`xA6AmBBDBTfBUCCDDD2EF ,G(qHMIؾJMK]LM|FN MO(PLQ0]RDSpLTU0VWXYHZtZZ8LZZZxB[(\\]X^^^,__8_`` aLb b:cKd-epFfgܶ~h@Qi(i ;jTjkk0l`l\lplhzmhX\n(zopptpH{qdq|qd;r.s Ftt;u(DvywCx y@z`{{@|ظ|}+}0!~w@\\>pT&hП\FL+Py`(`0ĘБ'ptAT$ lT(| 8xuPl Cu! @8`!X$)~{H ``$ h$K$$xL MMpQ$a+,0A&$tvzܟ0P 0@d4$Hht<D4/@l+'Bh Dl,+L?$,uphp|Pe@d|y0| <((? uH< d@   п x 4 lH< `D8>81t>    >!y"X#$\%TV?(@|PABl|C0DEFsGHIJKL<Mp1NOp'P0QRS*TUVĆWLXY\=Z<[h\T(]^V_,``xabpDcIcĞcdVe(fh=gxVhL ikiki<j(jTujjJjkVlmn0?op2qvr̮stI䲹u vxIw2xx8lx8ypyeyHzI{f|@W}`~0h00|< ԉ jtXad4Tff8X0t}8T԰@DD} piP~`(̩(}|O$D~?X :(]$}7D@Yda2X ț1ld@$.lHGP<$00XT<@ht\>0< <t'Z|-h/lGD>Eh/܂~CA@(DxĈZdaPh4l3DC8\wX     JHw k_ c=?H8Хh l!?"L#t$Ĕ%P&XY'(k)d<*Y+DH,x,,-x!-@6.#/0@12H[34h{ 5ؾ6Z7 8X9̿:;<=؜>#?@x8AwB*C$%Dh`EtF8GH|4I05JD K.L0M'N ]O`+P8QQ/QR\ST5UXVxW>X@YLZZuZw[\=]ا]t]!^0_`ؚaaa0a4bfb bxccvcddd$efg<hhhth +i$+ihijjpjkkĺklmlnnno%pqdr!rtr-stluvvwx<yz{ <l|@}};~L+wP0td&4hPd%<D(t#vh<. 83d^aH ,f>+ `W4s`\B\<|[p|(14Alp,Ȥ]hx"`ľ0ྸ$t(й %'Ls {)Ml(,:P| `g s Ԙ pXC`T =hZ@i@TAV|`AD$8?gpjD,{8W A8Lhttt8 !ؤt6H*@VZ*0Hl4u Ⱦ  $  0sV0uh@((-9HL4UT d!"#P$U%Н&$'( g)*<+n,Ȯ-j./t0P1e2P34`5`6||7\789<:u; `<L=膾>A?DA@؁AtBwCtD<E;FHwGH\DI BJXKRL|PMUNtUOPH\QTR STUYV$(WHWsXX&XpY\ZwZx3[Ԙ\V]Q^|_q`PabTcde fogĥh`hhihjhekDlPmfnn(n&nnlopq4rsp t8u$<vw<x HyԮzdZ{h|s}~`p=8ڿ4+`,,= --hXtsyO>lPx|S=CLH|[ؑl}hLYSTU$COOl`AKAD@pF,A\>$'>*@@@?l?\D<\> pM?!T@?"Ĉ# ?$@%@%s%+%(?%&l'(0)*|L+M,-$./D)0|1 2034(N5d67089<:;d<=>V?T@dAHBCQD(E@FGHI yJK(,LMlNtOPQ|DR(S@VTTU.VLWXYXZ1[\H]]^^P__ `dR`a,abbcPcdlde8efHrfgXsghhci i(j)jhkk|lXmn`/op/hqr(Ks8ItXu v,wT.x`xy.zY{$|L}G~x8!|l\XL̯-P,HGvt& gh0 \`xh<\lwp0sLy0CE(H (}H (]`Īi~@ p=42 8K|\8,@* ;|KK`D(H `^\SPtDp8| tտ̆`\;nhDV(Dp',EHUr@t0UU C,\BШ'D DX ( , 4(x | X    0 h Q  t  В X P W l P.  (9 ;  \R   (U > l  \ A h@ ` V! L" ~# $ % ]& ' ( p) * + t, - . p/ H0 1 l2 3 4 @5 dA6 HF7 @8 9 A: {; < <= 8> ? =@ A _B C iLD qKE DdLE @{E F h%@LF %KG 8KH  DHI `HJI I /J LK L &M FN eO 0P LHQ %IR XtGR rR S `PGS  GT EU ıEV |GW xIW LW X `Y dZ {[ `\ ] s^ H_ P` Ya b c `jd L e sf f 4f xf g g {h 4*h h h H h 8\h Юh i *i i j j ,j X}k k k yl l Dl m pBn n ?n ~o Lտp Xp d"p =q q Sq %r r Er @s lXTt t tt HBu tv $w x y z ܴ{ | h} ~ Ē @ (d , G c  L 8L  Xx    T X TJ (   ,\ ؿ l @  |  X l  dK   \* h_ t O  #,    T       @#   \ | \ !   0 @ `  !$  D    l, x X     (  @ D t     *   $ D E   P  *| '  *` LDx 0Mdx (5w w Čtw v  ,  t     (U H  l H lU  U  t     H  X      0y 8  P $:  l4 L  * y y d  y $+ @ ]  h   \ پ  (  d 4 E <  @ l  $M d@ %     O  А    ! ," X# $ <% ,8& H& p& q& 0m' ( l) (* + , h8- . / @0 1 ж? ?@ \A B C D lpE \F pHG DH I @J @K L @yM N DO DP PQ R S ȕT U V ,W <X Y Z 4[ tq\ ] c^ $_ p,` a b c d H%e f %g ph i 2j k l ,m n o ]p %q D7r s t u v w x y `z <{ 4| } @~       L+  l l , P p  h 4/ $     l Q l p 0R  ,  0<  D  (? 8d `M  ܖ   hO         ,; l  T  dP   $   ĕ " X ,  d  0  4  $n | D/ d   0 HnD  $S   g Hd   @ "  . x   x 0    ln4  < . Д  l  ؒ `     {|  :),кp[X" ! ?m@HAB(CxDE\F<G H(IJKTLMNO P\QRSxTpUPEVtWPXdeYZ[d\d9]^_`tab|cdԚefg$hliljk olm@no0Upq,orstuvwDnx yz{|};~j|5d0-n|Ȝ\$  #xT & ̢x|!h)HP]Sh@(0ԄXL `Hn\nȿpn`,)@aWTo~|0tZX >4?@0)ABACPD,SEFX>GH=IXJdK^LMhNOPTQ$Rl&S$T0U< VHWXFY5Z<[$\]L(^4_@`l&aFbd6c;dde3f({gDNh izjHkl+mܿn8opyq3rstujvw@xpyz{| }`c~h\lzLcHPH8cbP l"ld[aبX\ DV VVhܑ20 t0؞4z$ | ( <J@\Oh4lXhX8ha}}R@~8T~$H $_@($bL p$S t*`h8| a4hHLbo@[pbwЁ:P  L  L 8nDLZ "8\ 4 2!H"s#,$%d&'T(")$Y*?+@`,,-.l/T0j123X4@56@7:89<: \;l<=z>d?y@ABCWDعE F(GH5I!JKL`MȲNO`PQHyR<STtxUTVWXYZ[ \$R]^_Lv`dcabcTIde@f4ghtij0kL0lm,nopq,rsthsuTvw\|xyz{|xC}~(th5īd0h,pPP?` |XVDPZ8d 3\ $p|]oXn !84,G{?L&@YA4B)CND^EԿFGUHIJl K(L&MN|O>P<QLRSȅTUVWXP.YZ[X\`¿]4O^v_`abcde0jf0g{hDitTjXkl mln؆opqLrstxuvw8xy bz{l|t}~hF,ĭԁ^ (DQT<,yP ;zdЇԜ̪&@NtN PDl\_$]hmЊLX(  P$&4c[H`X$6\p@tw8hԋ`gD`܀<W$8DL0`]8rkN  jlAܐS (p!"#$m%d&'&(x);*P+!,t-̑./04&0l!0P&12340'44L'56"708h'8L8%9D:;%<X= >?l@4A\:BЀCDwEFGxH,ISJhK@LLMtN#OTPwQhRS\ T|UuVW XYZ.[\]v^_`abЈc̓d|efluguhiJjk<8lmbn0oplq4rsqtup|vw3x yԺz̔{df|}~%& p0qH8i`̕tHv\@pZU0p,<TԖ0ܼ|`$,t$x лHHԗTg$@\[XĪĘ8Ȩ8T5 p `y<4п)4=Hĭ\p5 ؙt((Ȣ<\ݿ.(P P d Tc D Ě0xlLԱP;$\`8: L!"#\$%$&T'(()hv*<+ ,P-0.d/e0x12w3456d7898:x;<=d>?<@zAHBCDERF\GܣHIJKԟLMNOvPQ4RS{TUDVW eXYYZ̠[\]^_8R`<ap#bcTdT eȡf-gܡhijklD*mln o8pqr>st ~u4vxw<xyz{|}X~,v,00D\@0ăx"0D[ lthL3(L`<< PYdp<(0pD@_l+xl' -x(PD|аP ȼT;$}8hܳ8vy)<{xppXPPX 0\   t 0 LȵPp`x|зDx<@ ! "#Ђ$%& '()*\+h=,(-x4./0Ի12L3~4`56t7X8l9:Т;%<<%=D>?De@ABCDļE F&GؼH(I@J4KLMNOPxQRxSTHUVWP5XY8Z@[d\x]x^_D`aPb<c8&deZfghȾiT~jܾkHlmt~nopql rs,t,uLv@wx:y4zT{ |h}}~||X;0=44X .ح0|z@d^p0`` pt tDpxp}< a@aw,@ Ttyh D<0D4XC$|8^اdD.xl`*4 ,L@\r!A̩T D a,<Xt9a(Zxp4cx X    cE(lЬLLH萿!D!0j i!"#@$%X%&'d(P) *(+, -.4/041 23 45Pw6789;:;u<=>^?|@A@B#CDEFGH(IJKLM(N6N8O<PeQd RS8T0TUxVȮWHXܮYZ[\]f^$_`Dia,bLc@dfefTghihjHgk|lmngopq%rhst@u̯vLwxiyxz{H|}x~ԌP|j0`SD8X?Ll@m0ԊаX" th C4pH\8p~g[d[P8TlLm~` tX !ln0pH!\hxhX(4HD`$X%տ,l$\ȳ\ܳ T%T`Ladv8 hx| oܷopr$<rP1  t x $ [8< L|}`^0AT$hli\ `^!<"@#$%|&'4($)|*+,:-ԏ./0$1283@;456Ļ7x8L9X :^;<ػ=>P?;@AXzBCDHE(F;GTHIJKLdMNxO`OPQ tR STL(UVW7XY(Z)[t\@]^ _d`(a4bcde,fg@hti8jTk]lom@n oXrpq̽r st8uuh!vwxyzd {B|}~00DX L2l T8 !4t2H \p5<$D ~ $8`oB4~}4L`8 tdp|x`:nؿh:D$ } B(a$T#(\|<0P|d|@ODx|q q4H1@}4T(Կx$PR|pX1,x @  D| T '  h  W , | Lx      tR  px s 0  D   l `|  p h  f! ~" # 0$ % L& p' ( ı) * L+ , $1- . s/ 0 0 "1 $2 W2 3 84 t4 5 L6 7 p{8 `9 R: ; t< ӿ= > ? @ (A B l+C ,D lE @F <G TH I hJ K |L LM N O P Q tӿR S \T U V lW 8X Y Z $[ "\ ] ^ k_ ` a Јb c Dd hRe ,f g h i lj k l $m An 8o 8p Lq r s ȷt pu Xlv w x ey l`z p{ `| x} `~   pa   ( D\ a H a F c  c  $d 0f 8d  d x d p  @e <  Te y  he tf |e   e f f L f  f h \ g | g  4g  g 8o c  g f g t Lh 4 `h \ th  h , i   i Tj , d p (i  q? @ ؞A qB C qD E qF G qH I qJ K rL $M |rN HO rP Q sR dS sT ^U 0sV W DsX Y Z Xs[ \ ] D<^ 8 _ ls` Ea Xb >c d |e f g ih )i lcj k l m ,n o p q Tr s t Pu $v w <x hy @Ez (s{ ls| ' h( hw) |* w+ , - ܩ. / 0 I1 d2 3  4 5 0 6 T7 D 8 9 : X ; 4I< \= $> ? 8@ $A B ~C ĜD htE F G (H I J K L >M pN hO ĚP lQ ؚR $S hT U V ,}W X Y Z [ \ 0] t^ _ ,` a b c :d hze f wg 0h i pyj lk l wm D+n o p <q r 轿s kt tu kv w kx y oz @{ o| P} @o~ $ To І ho l j  hh t |h X h + h $t  h b  m s s <    ) m  Q ,m < @m  Tm & hm  |m  d  `  DV 0B   К .  L% # 8 D  L 5 ̋ + p  H< ,t 4q xq  p |  H T     $ ( m  C h l `  І  xm l @j  j  q D h  e 0. 0f k  Z (* 0  [ t. } n  xY  l d hW . S xn  d4 / , | T8  B hH  l9   $^ ؊   l hE @  lA 4L @  ? +  || 0| ` p xy  0 6  p|   pʿ \ x4   ! T" # XK$ (% H<& ' <( ) L* + (J, B- . / 00 K1 D2 B3 \4 i5 p6 X7 `8 9 : K; < = \> K? @ A HB CC pD xE x|< wreswres,tcnl,"value: a value"<6 c g QTYUsStuVvW]^XrZRw\xPtu &%!      '()*+,-./02 b b b #!##%'(),,,./01245679:A=AAACDEFGHIb b L2OOb b Sb b Xb b b b b abcefgukunuusuuvb b b }}b b b b b xb b =jVf]VARI>>..''b b b b b b b b b  b b b b b b b b b !b b b &'()b rb ./0126789>?DBDDvFGHIJPUVYY\\]`ccffgjjmmnqttwwx{{~~~|zwb b b nb gjb b b b [b TWb b b b Pb 7Lb FF?b b b b .b b '*b b b b "b b b b b b  b b b b b b    b b b b b b b !b b &b )b b b b /b b 4588b b b b ?@b Cb Fb b b KLb b Qb b b VWb b \]``abcb b b hb b b nopqrstb ab yz|}{zb lnfhb b b b Zb DVb MGKGb b b Ab 7=b b b b 2b *.b b b b &b "b b b b b b b b b b b b b b b b b b b b   b b b b b $%&()*,3/03334568:==86@b CFFHMKMMb QQSYWYYd]]_`cc]Qb b b jb {b oprstuvwxyz{|~b b b wb isb nb b b b bb L^b UOSOb b b Hb 3Db A>9b b b b      b b &$&&'(*,,-555556>>>>>?[[[G[[[[P[S[V[[[[\xxxdxxxxmxpxsxxxx\z{|l~vtrpgTe^\ZXFOMKIDA>;731/-&$"          2 "#$ 2222./22235K89:;<=?@A=KKKKKKMPPPQSVVVW\\\\b b b abb b b b ijb mnopqstuqb b z{b }~b b zb `lib b b b b ]b 0Wb OQb b b b >?AAwwFwwKLNPPSSVVww[\^``ccffwwkwwpqwwuwwb b {b ~~b b {b xb b vb sb b pb lb b ib eb b bb ^b b Yb 7Gb b B:b b b b 2b ,)$b b b b b  b b b "#$%b ()*+,-./012345799b b =>?b BCb b b b Ib b b OPQRSTUVWXYZb ~]^aabcdehjkfffopqttuvwxy|b b xb sb b nb Y\bb b b b Tb 3b b 0b *b b %b b b b b b b b b b b b b b b b    b b  b b b  b  b        b b " # $ % & ' ( ) * + , - . / 0 1 3 4 5 7 7 8 9 : @ > @ @ A B b E b b b b K L M N b b b T U b X Y Z b b ^ _ ` a b d b i i j b b b b b s t b w x b b b b~ b ~b |b zb xb vb tb rb pb nb lb jb hb fb b b b `b S X b b < b  $ 3 0 b b b b b b  b b b   b b  b  b b b   b        ! # # b b ' ( ) b , - . / 0 2 4 5 6 7 8 : : @ > @ @ A B C D E F G I J K L M N O P R R T U V W X Y Z [ ] ] ^ _ e b e e e j j j k l b b b q b t u v w b b { | b u } b b b q b b k b b b W b - K E B ? < 4 1 . b & b #b b b  b b  b  b b b b b  b b b b   b     b b  b      b b  b b b b " b b & ' ( ) b , - . / 1 4 4 / / b b : b b b @ A B C D b G H I N N N Q Q R T U W W b b [ \ ] b ` a b b b b h b b b n o p q b t u v w b b { | } ~  b \ g h cb b b b N b D Jb b b b b + b " %b b b b  b   b b b   b b  b b b b b b  b b b   b b  b   b  b b b ! b $ b b ( ) * + , - . b b 3 b 6 b b b b < = > ? @ b C b b G H I b L N L b b S T U b X Y Z b b ] b b ` b b jn jjkkkkkjnnnnnnnnnnnnoooooon~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(&%$#"!  ~}|{zyxwvutsrqponmlkjhgedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFECBA@?>=<;:9876543210/.-,+*('&%ab b Qb ]d Hb i b b C D E 68Y :caselist'>L ' '>LL'8,:)ȸ;8 j K (5 8A H  T Df`,0||\ G!<"t#X$%\9& '5(4)m*H +t ?@Ad`BpCD7E9F yGHIXIdJ,K,LYMSN"O<PQ|R8 STt{UبVdTW8XFYZؗ[$\]^_,`h;a(b [cdddeT9fg>h2i@"jk,lmh4nboRpqsrȿsls(8txuv$w4xdyXzP{|8h})~ЮHxv\YD 0  ((UX$n<L,4nUXxiD tU|" 29wz# L` :DL<Xh mp\#$,44bhDFp?4"|}('B<x'Ex X:dh~pl4,;l0@V, P-`xVzT1<=1~$ ;; j70-Hx88 |(q!xII7PP īlN< d D ؋ 3 ̑ Ьt:,j`-<PJ,dJp !"0<#4:#8$%4]&'(H) *$+,x-h.\]/l001(623X4]5<6<789-:;09<=Do>p?@5AEBC "DEEFGtHIJ IK LLP2MNzOmPpcPqQdRSTllU V̊WT5XYZh[[\] >^_D#_,`H#a\b@[c"de~fg :hij kllpbmnܢopdq1rDasdtP uTDv|:wx{yMz\{:|}hw~d0:`p"x],z8&(J`z{̬@Q K0 O,T={PpW>yt@PP%Lya)`Dy1@ L 8x0|1܈1 0,d`a|z$ d/4 Hz$ p(ȝ\ H4M ,K_<-\22 (axfG,Hr F23+(2F)2wi'*:charwidth'HD:)D+fTs, $  s 4 `t x "H8܎غ"Pp 0 !"df#($x%&?H*@dAlB\CP"D0iE8sF$GxHTICJKlLM(NĪOjPPpPXQR`-SdTXUtxV@oWpX<"YZ[\ ^]^D_^`^a<bcdef_ghPiZj k=l=mthn4o<p qDrTs8?t#ugviwqx("yVz"{<|_}~LH_dCxh<$p?8 hCVntLST_Lu% Bh`U\lA@H 9HHn}a0X\`:,IoLx`p\lq`&%hȇ4r(qxH4H\ sP8r `gc`|ԫ\20 P"?`w@eAHBC*DE%FD|GT)H0I\VJK\L)M`bNOddOlPLQ$RDgS8TEUV_W@XY\9Z0_[\'\<]d(^`:_`|&a4bcde f<gj?@+ALxBCD(ECFGH{IJ\KBLhM8Np{OjPXQ R\{S8T0U VlVWXYPZ[(\ԁ]l ^_̥`Eaubcpd`efP8gphH{iFj.klm(nokpqrts4{tu {vw {x$bytz{|}k~z@\\?BDBtxDHl Called GWEquip by the onKeyDown and onKeyUp handlersH8 :)P DЦV \$TGN   l @   8kDm #mL0ؙ̽Pxл H^!(" #r$r%4_&']()*+$,[-.D/V04C1$2xQ3d45,678lf9:`;<=9>po?`Q@ABYCPyDE4RFVG@HINJ$KL(MNO@PeQh RST>TUVpWXNY$jZ[\\]h?^Д_f`haUb,Qc0dXe$f|Yg8hi8juklX$mnPopq?@ABCDPPPPPPPPPPPPRRSTUVWXYZ[]]__fffffffghijklnnpprrttzzzzzz{|}~       !"#$)))))++.../0224466999:;<=>?@ABCDEFGQQQQQQQQQQSSVVVWXYZ[\]^_`abcdeqqqqqqqqqqqqssvvvwxyz{|}~               """""$$&&000000000012666678<<<<=>@@FFFFFFGHJJLLRRRRRRSTVVXX[[[\]^_`acceejjjjjllmooqqssvvv}}}}}}}~     !!!!!##(((((**,,666666666688=====??AAFFFFFHHPPPPPPPPQRSUUWWZZZ\\]^``bbceekkkkkkmmnpprrttvvwyy{{|~~      !##''''++++////01234577;;;;????AAIIIIIIIIJKMMOORRRSTVVWYY[[aaaaaabcdffhhoooooooqqssuuwwyy{{|}            !"#$%&'()*+,-./11244::::::;<>>@@BBDDEFGHIJKLMNOPQRVVVVXXY[[\^^eeeeeeeggiikkppppprrxxxxxxzz||         ""$$%&'(**,,-./0123466789;;<=??@ACCEEGGHIJKMMNOPQRSTUVWXY[[]]__`bbuuuuuuuuuuuuuuuuuuuwwyy|||}~                             " " # % % & ( ( * * , , 2 2 2 2 2 2 3 4 5 7 7 9 9 @ @ @ @ @ @ @ B B C E E F H H I K K Q Q Q Q Q Q S S U U W W Y Y [ [ ] ] _ _ a a c c e e k k k k k k l m o o p q s s u u | | | | | | | ~ ~                             " " $ $ % ' ' , , , , , . . 3 3 3 3 3 6 6 6 7 8 : : < < C C C C C C C D E F G H I J L L Q Q Q Q Q S S U U X X X Z Z \ \ ^ ^ ` ` b b d d f f h h j j l l n n v v v v v v v v w x y z { | } ~                              # # # # ' ' ' ' ) ) - - - - / / 1 1 5 5 5 5 7 7 ; ; ; ; = = A A A A E E E E G G I I L L L M N O Q Q S S U U X X X Y [ [ ] ] _ _ a a c c d f f i i i j k m m o o u u u u u u v w x y z { | }                         ! " $ $ % & ( ( * * , , . . 0 0 2 2 3 5 5 : : : : : < < > > @ @ B B D D G G G H I J K M M O O Q Q X X X X X X X Y Z [ ] ] ^ a a a b d d e 1hJ HH, "RX" execute field validation expressionhP0 0wi'.ed3.Create' 'TEdit' ('wherelc'('=ff.ed1') '>'  60 0 '>Age') ('caption' 'Age')('attach'3 2 3 2)('aplname' 'AGE')('type' 'integer')8c R=0 Continue in calling function8:)_hhȁ _ܵha 0 ,  88 /cii_x8j`ȆaP%XD@ !"#d$|%a&t'D()z*,W+P,p- .L/h1014`2`3405s678439l:L0;<4e=$E>?,a@iAaBP9CDdEjFGHIJKL<9MLfNHFO OP:Q&RTS?T0U4:VW\_XhYZh[@\@]|_]<^__p>`labpc8deKfsg\hiӿjxskhlJlm0KnPKopq rLsGtLudsvPsw xky\z|M{K|,}~lKr|  hHL&q(i t-q2E  H`JqP(q(=q<lq<4pLXqLlXH $`hMdm|kL|\$LMD^Hy LX|P"|4NP4TOLD||P0OO d`4Rl .PH\81\`\  h x       ȍX4(Xg,\RDiXp,RR XS!"#$(W%S&b&0',k(T)x]*TT+L],f-./0,1023]4X]5\6a7T8HU9:x;<\=c>?@4A\AQBUCDlEhFDG*HTI$J<K[KQLM~NO̅PQ[R`SVTMUPRU@BVWXDYZD [a\л\xA]T^V_!`HaHDbcdPevfqghiܱjqkkL@lTmXn$o\tpXXqbrs,atsuvvww<xxdyzl{|(}"~$tt\DRWl]  ?,@HAhBvCQDhvEFG{HI J`KL>M QNzOP\QROSpTUVWXOY Z$v[u\u]@^<LG wreswres,tcnl,' PAPERLENGTH' <  :)p|GL}P(\X[4   4  (ȅ4diDh p[H;0 |!"#8$ܨ%p&'()* +q,-L.ă/L0861T2 3g4586p708n9,:;<<x=l>?<|@TQAtBhCDEFGH,UIJ8KnLnMĞN`OPP0QQRxQSDSHqSTU4#VdWXYZt[\]z^_Z`ԎaDwbwcLdefvgȂhijHkHlm8on6o$yppqr<~sЗtuT'vLuwvxy0zzD{w|Xz}6~d,(x<HxtyTPP}|{t \3?p@A8}BTCDE5Fh{G4G0 H|IJpKL8M3N̠OP0Q~R5STt TUlVDWXY4Z[\]L^_7`8abcdje(fhghijk,l`m\<no#ptqPrsAtsu(vw xy`z{X|xE}~ tH0T@,$1?4\Ā pXXh  P?P>0)q>br|q>=<`<tGDP,~pqu8~$L`<Hnp4ov<e}\0ul|6hlxtp`(m|@<`qhq4u};|)$!ht0l{(<a0l\px `/(.,)'x& e&vHX l~ 4 0 p   }(\ 8ܺt|DH p| @!X"#$ "%&'d()F*(+H,P|-. /0tk1X2$k34@56(@7\{8$A9:x ;<==S> ?@lABC,D4.EPAFX G$H$IJ$KdL.M N O:PQSQ R S4TlUlVkWgXxpYtZ![X\]@[^Z_r`a b c dDe,fTg]h ip^jLkl{m0n o,dp qr sltsu@vd(wxuyz{z|}p~0h,\hltjP%dXPD GEquipScrollIds 07/10/01XLen e[XM QYUsStuVvW]^XrZRw\xP  tu %T &  WW%&'(WW-./0WWWWW7<:<<>@ABFFFFHIJKLNOPQST[W[[[]^_`abcWWfLhWWlWWqWWWWmWz{|}zwurWWWeiWWW)VBRIB->5**    WWWWWWWw#$%&ww+,1/1134567www=wwBCFFIIJwMPPSSTWWZZ[w^aaddehhkklwwwwuwwxWWW~WWWWwzWWWWasWmmWWWZ]WWWWHRWWKKWWWEWWBWW?WW4;W8WWWWW'0W,WWWW #WWWWWWWWWW WW  WWWWW WWWW'()WWWWWW234WWWW;BBBBCDEFGHIJKWWWWRSUVWXYZ[\]^_eabceeWWWWlmrrrsuwwyWWWWWznnndd^\ZUSQJ2HECA?<964-+(&$"                  !#KKKK,KKK23K6K9K<=>KABKKKKKKLNU[\_befgjkrstvyz}uwo^`\ZXTN=?;970," WWWWW     WWWWW"#WWW+WW0WW5WW8WW=WWWABWWGWWWWWNOPQRSTUVWZZW]^_`WWWWhiknnqqWWWwxyW{WWW_cWWWWLPWWWWWCWW7WWW*,,W"   WW !"WWWW)WW-WW33456WW:;<=>?@ABCFFGHJLLWWTRTTUVWXYZ[]]^_`abWWfgWWWmnoWWstuvwWW{WWWW|WW6lhhTIC;;WWW3WW-WW$'WWWWWW WW WWWWWWW      WWWWWW"WWW'**WW.5555WW:;W=WWWWDWGWWWWMWWQWWTWWW[1~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[YXWVUTSQPONMLKJIHGFEDCBA@?>=<:986543210/.-,+*)('&%$#"!  5 zW Wrwarg [217] 07/24/01 :andif vi teL@ 1:HELP_CONTEXT - Display help for a context@$wself'gw.fRD.ed1'$T  :)x 7ICPT4\ :if iI 09/06/01wi':*toc' 44x  :caselist'p>\\?\M@@ApMBCMD@E FG0HI+JK,XLMM<Nd[OTP0Q<}RScT$U X Note: When in the Edit mode Left curor is handled by the KeyUp EventVXd type((50>' means use remaining space to right edge of form"p & wreswres,tcnl," '>#otherform' for a form means: center the form horizontally between right of otherform and right of screen",:)]$$<ܕDNCJJ (   lxK 66@0<p\0  <!"#$%@& &'()*ش+@,!-F.8/+0T123p456h7@8U9:;<=l|4=8>5?Tf@6AMX3B43Cp84Dt4E`s3FGHIJ3K 3L2M4D2N2OHPp<QdR42SLFT,UVĮWXqYpZp2[\T]^b_`ab c\D2dpT1eJfܘghPipjpkl1mxnp\1nD0o40ptqPrțsttu$qvDqwxP 1x@W0yfl0yt(0yh,5z<(5{|4}~LF.Hy8.H߾-P8{q.(t -4 Dax-\/ /`"./q/|p\,+l<4,Ph3d+$Q<+pa,T,<5 ,Ԏ+q+ttj*+8* ,0 GTurnOffIds0d:if warg[7]8 13 32,(47+10),(95+10),(64+26),110 added number pad 08/12/01d :)Xx tL0Dx!  t HW i ha^ O\9iL14*<6 ą d!"#$%H&#'(&)0X*0+ ,t-./0 123\4(5h\6hi7`8\9L:X;T[<S=h>x?@A0B#CDt$EضFG,HIJMK7K`K$K\%K[L`MȕN OTtP0QR SlTEU $VWXX@%Y Zy[^\$y]$^Lq_Y`8MapFbc+dx%eh-fܥghzij4Jkl(mpn8{ohpqDrstL]uv w#xytz{|#}q~|LD$<%qL{{L%{dq$px{N\k `48|pdr\HKp| #Zph8P Y4I$ghmp ^@)t]vHPԯ,[ċRxg`UhtEcTDhv403[L<ؖ|H \WPgTZ\Hd00x4vY(x_cX(chc$LXldct84q d>Xd\H L  j  |a  ̰ `Z,[`gP0;tZ|<^ !d"9#D$%&' (l)*|+`,T-.N/2013$L2#34l5677859l:P;ԏ<=D@>t'?X@MAH,Bff'  '=ff' )('ontop'1)'*Show' 'SessionFocus'hD 'r:)\a?@DABxCTlDEHFWGxHؐIJKLܶMNOhPHPwP Q<~RStT`UVxWTwXlYLZ[e\\]|^p-_y`ambc<d_ehfgsh<0i$djku?0@XwApBHCD|E/E8FGоHIJtKtL<M8NhOPQQRS(T UVbWXlYHZPm[\\v]X`^h_`TaܼbXc |d}e\fLjg?hl}ivjT kl,?mpn|o$p q[rus8t@uTvd@wLx,jyXz`{|h}m~z{qt}uppu(M|vHqXr@dogHz88h$<@n$pdlXp|r\$},, d:č m@yk4'm tpgD=$<{l$xdvqlf|8o Dk!rBr4hzԀh|rtP 4, *\XX jTp# ` #l (s@ \s`Thu0u#|   ht  "||! |UД$T4wv0 \t~" !"5#@$% &'(x) *d+u,-< .b/0 12 34|5V67Pb8T9d:;<=>$?@ ABHDX$ ids(~/idsss '.sc')/ids drop scroll object is anyX 07/09/01per0:)lya5Y4m<pl T     L|bl%xi[܅D e!"h# g$[%X&l'b(D)'*M+@,-.$/Xc0B11(24Z345-67 [8L9TZ:;\<l=c>Pd?@@NABCDADEF%GRHhIJtK\LSMyN\OPkQdRSlTUtVfWX8Y$ZD[@5\]ԕ^|_D`dab cfdefT[gThitTjk4elm no`p@]qrpesNt@u v{wx\)ytz4{|f}dg~H<ex <(gt^\3]@h4hx|<dpjh@lht?@@,Ad4B CĎD\EFpF6GX8HIJKPLMHNlO 6PQpRDSTUVWXDYYZ<[\]@V^+,_48d`ػabg pD* :if 112wi'..*kwparams' 3/23/00DXXj'Function called by BEEP:..' (si[3SI;]) temp during debugingghXPd wherelc also allows to extend an object so that it extendsPPh0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  '@10 14')P@ G(AY(E wi '*hcenter')~0)E@PLN GFmtPrompt (wi':*cot'),wi':*toindices' (class, type {.i.e sub-class}((CV),'_lab') wi'*caption' N":)0C1423l4`56 789M:P; <c<3췹= и>?H@PABPXCĶD E8,dFG)HlcIxJKL4MNLODP@Q R4SPT UVlW XYDZ  [\\ C]D?^_pȵ`̘LabTcldXeflgXhTpiTjgklBdm| 0(B M[I;1]'' flag item rows0< :if 0=TEXT TEXT'A SPACE'  :end<x\  CC,211 212 213 214 215 44 217 218 219 220 221 222 125 168 185 224 189 241 168 140 132 131 179 181exFT use all remaining space to the bottom and right edge of the form THb IdsHnd is fired by the item label's onMouseDown eventHpt wres'#'wi'*countries' this property is set in the TObject New method p(S'ff.pp'wi'*value'20 j(P490 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '>'    12)P@ F(AX(E wi '*vcenter')~0)EC@D RA=0 Toggle CapLock key and keyboard light offD<d2 (OS SV IDV DESC F RC)wi'*idparams'<0:case 1005 Dual wall square0 :else4  wi'*.e1.suppress'14(T Fexec C(  HL+F-Q:case'must', CLASS'DUAL WALL ROUND',L :end1,d (0=nc'free')/0 P;,X Hwcall'FindFirstFile'(2warg)(((114)+max_path+14)tcnul)XD  Type of class (toc)TD$ :andif 2SV$$l:)0E܍L 8$<=8n 8Y (C[i]) wi'*caption' (KWV[i])8  E_}rRXw^N |+||||'|++,..123||6:;==@A||FFHHJJKLMNPPSTUZZZZZ[||b||efgh||ppr||uvwx||F~||xx||||+|| |))2|| || |||| || ||   |||| !"#''()*,,||111||6689<<<=>@AB||E||NOPQR||XYZ[\]||fgh||||p||stvxyz{||||||gd||||5C||||||/|| ||||    ||||$$$$&'||+,-./||cc56 8!:;<=||AABCD||GHccc"NOP||c#UVWX||\]^_||ccfgkkkklnow$rstuww||{{|&|8'+|61AF|J   UQbYlftpx $3'K6H8A:SOcVsw 0T@ :andif (2SV)^1=+/SV0pf:)pp$X <,Q    p  |4 (NV[i]) wi'.l1.*caption' R44\ wi'*SEL' (wi'*selection')e;C4@L2 before moving to another edit object.@4HZ :orif (T)=wi'*SEL'4hP E~0DC wi '*aplname' find which children have an aplnameh08 'object'wi'caption'string0Z:) П/\pH  tQ <  t PPT(1<H|/tM/|6 !"#$%&$'0(T)ܫ*H+0,+-.X/0dW1E2,3H4,(5X.6ܸ7\89\:G;w<p=4K>K?@VAGBHCdDEFoGH,IJ:KL]MLNO^P<QR\ST(UV|XWH;X$YZhV[t\t]8^ _`ddabбcd8fefghhiL1j0*k,ldmEnP4n wi'ChangeStyle'0 1284P created one should have a wherelc 2nd argument such as as:[11PADD NEW|6 wreswres,tcnl," margins  (top margin)(right margin)(bottom margin)(left margin)"|L1:|H wreswres,tcnl," '' leave unchanged or for a TLabel: use exact caption width"nto|HX wi'*text'((wi'*texta'),wi'*textb')Hdț wreswres,tcnl,"type: the value type to be set (or which is returned)"_dt@ AP6(AW wi '*wherelc'), 0 0 extra gap between centered objects1]tL wi'Delete' delete formLt q d qdm 1 101 CLASS 1 201 MATERIAL 1 102 TYPES 1 103 DUCT WRAP 1 104 DUCT LINItsdl [6L<[ Create three frames H1, H2 and H3 for the edit objectsL0d:if ( 'next')wi'*properties'0'ff.ed'wi'font' Use this instruction to call the Windows Font Common Dialog to let the user change the font- 4 M :if wselfV[I] 4dl rYV^Rw !##)&)))*+,-.2245778<=>BBEEEGGRRRRRRRRRYYYYYYYZ\\`_`ggggghjjmmwpwstwwwjy{|ian2!R5g`ym{ <Q If a number there must be only oneg<P3 wi'*onAction' (a,tcnl,wi':*onAction') 07/03/01V [Ples:)p |Ht  ` 0 ?[@ĹAXAlBC$ȶD:E0FGH IJKpLTĭMDN4O|xPQt1R3STTU6hVW,WXhY Zb$[ \]4諻^xv\_r$`a ऻbc8d0eذf$ghpi `j klmnFo8 pxqTrstHOtL4Ot9PuPPu(XOvOwxPxPy1 Pz{|LT}젻~4L 0,Dqtl.$x<H@PTd-TX\w/ sXq̞8 <$d4<9ܗHܔlq<.t$XX< p H7ELbd0q  x$ PDHla 4 ccc ccc 123 456 70=4x wself('..ed3') wi'*Create' 'GWToData' ('wherelc' '=' '>'  '&80 80') ('handlers' 'data_Handlers')_Hxls [lmurrdw I3(I1)~I1 Index of column without a 2nd row framelldmatevTra0+ Called by data_Handlers>0:) Xw(\Dx|D | `ta Hh\ (\ (8\\l-D`0xshz&p(T0v  T!"v# $$%ls&D'|x()<*+,,--./d01D2!34564"78H9D:;|<,x]=|&>a?1@lAB԰CDCCACC HT:)@l(4((-<  ɶ $,ɶ \x,ʶ  ʶ xɶXɶ0%DȶuvǶ,`ƶhƶ,U\Wl2Ŷ0cȶ"Ƕ`Ƕ <!|"D#$%x%@x%%<& '( )6*+,C-/.`//000123t45u67d8D69:;<(=>!?@TvA8B C0DETFtGGxH1IhEJDKLL(ML-N+OP@Q$RSTT.UV$EW-XY\2Z 6[\]^#_d`4.a:bcde07fg,hW3i\<jk\lm0no Qp-qrs"ttu0vzwdx2y({zT{7|y}}~$J/<@1d+D\dl htDt. @5`Db(,P~|w԰0E $-Xs\YH@p Lht T0 BEEP SOUND00 0wi'.like2.Create' 'TCheck' ('wherelc' '=' '>' '=') ('*caption' 'Sport')('aplname' 'SPORT')('must'0)ee<$wi'where' C position form;L<D;ST Keyboard light does not toggle onorr 07/07/01D@@ :select AC(,O)[(,O)O3D]an@L:) x]LOft3    t T it [i0\wdd(i[, <!d!"#$8%&'()*+,-g./0j1f2dj3?4V5`6L7d8}9:h; Z<0=<> ?@AHBdCDEF8 G<HIPJwKtL\ M(N/OP/QL R,STRU$ VWXY Z/[\']^5_h#`abcd(eTmfghliиjTkl mnorpq'rdLstuYv$wexhEyz{D'|\}K~<hrԬhI` Y T%xY0T dP|KIYHXz <I4lX$p?PUPc@BALBCxDElFFFtGHIVJHWKLMBN9OPUQRSTxBUV4Wx X\Yp Z[\]^_`adBbcXdePfEg9hiTjtkH|lmnxoPBplq|rssst bar on space to the right.r<` rcwcall'W_DestroyFilter'fp {*:error (^\dmtcnl)/dm}`4 :caselist'=L ' '=LL'4 :end ]$Xs:if 1=wi':*cot' @$$:) (PxhϺ  ̺  ,9t̺  xx6 n@9˺ 7(̺ yߵHxd (y!4"m#V#$H% &ܾD&d'l?@A0BDCDDlEp,úFG^HI؅JH $H  (CV[i]) wi '*color' (toattrs[1+SV[OS+i]])H,* GTurnOffIds,&o<:)$臿߾Q<(   X < Ͽ s8$@x<Idd!Lx_@a _!<`"Ta#T$0D%&' f(X̪)* + u,4-HO.T/Ŀ012h3456t7|89y:;x<=N>y?4@AlB(CD̲EFG\#HI,J!| KL M"`NOpY[PL\QR#ZSdT!8bT|$dTUobV|XbWnfXPZYZ,[ \D]^$Q_u`rabkܩctdoezfs0ghPi|jk@lvpmnop|qrs*Pt䫺uv\wxyĹz`F{ |x}~<d,,G4Y4`P@% #9` 4\i`|EF <0 % Zwi'*moveable'C0h< wi'*style' 2 4 16384 right, multi, don't select on re-entryh:){45|4\ %   (  t Tv ` 4`p,xk/<(0<5x6 xu!("#a$p%& ='&(<)*L+,-@u./(081P}23L456c7@{89|c:Ԁ;p<L=>?c@@`AuBCaC0D}ElFPGLH\aIxJKL MXuNIOPmPtQER|RlST`8UVWyXYZ+[0\@] |^_{`abJcHde8fg`hi\jklmn0opqrxs؊t$uvwxy|z{n|p}L~4K\``\4x( L(?5@,PX4o'215  80)('*caption' 'Option 2')('just' 'right')E (t :elseDdJ GTurnOffIds turn off hi=lightsdXl1?/@A|B(CHDEFPGHI(`JKtkLMN OP<$Q(R(S$TܛU0V8W0X@^YXZl[\Q]<^0_h=`<aHkab`c d`e9f(g]h(ij<kelm,mn opqerHstuxsx[d?pҵ?GPҵ@ѵA0ҵAF\еA<еBѵCеD8B|еETUεFϵG͵H͵IϵJ8ϵK εL4εM`̵Nl̵OAPQpRSTTUXVPzWX,UYnZ[\]^h_R`|pabtFc XFdpeff gohs˵iӵj(e@̵kb˵l˵mdnXȵotopNqdɵqwxȵrxɵsܵ4˵t<Euxg0ɵv`|ǵwl4ȵxOǵyhcǵzʵ{Ldɵ{slʵ{ (ʵ{]ɵ|HX`Ƶ}(Ƶ~XnƵPI0ĵlL Pŵdŵĵ(Dõ0`|EDnDĵxõõµ_(µ04xн m$Xk8\Ծlml,X?܃lp?<_K0\`J  ,  x w <P0  8X D/dE  0xhclassesclasses, 'TEditSpin'0d Note: use SetWindowPos rather than 'style'16 for a form since the latterd,2 debug0st $SXYUw  !##yp `p (D E F G)C wi'*where' where property of mother form53`(Hwcall'MessageBeep'1ss (` HH, " :if 0D  R0  :end" allow empty input in any case e`` idparams[2] marked items: 0=normal 1=hi-light 2=bright (red)`HT Handle char input without check a valid item.cH :)Phd,:L6\ K d  h 8?8A@l5ABDC6C,DxJE F,GtHtIJ!KзL8ML#NP~OLkPxQܣR$S4}T$,UP V <2 :if 0=CheckSize TEXT 3/6/00<0d? :end default object0T0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '<'  ) TLR:)$Xf P p @ o ԣ`pPp;hԄ||l/ g!"#t#hs$+$%\@&G'`()l>*A+,-. /?0q12r3r45Xk6s78k9 ?4@0AB%C4 D\Ex#FȹGX5HDIJtKLM0kNLL: H'X1,',(A),'A1,X',(A)+S-3 SIZELLh First Style Sheets may be defined at the control levelL4ؙ wi'value'(exec C) 4(< Fexec C(0 :else M5@ HH, " (R err)'R err ',hookfn,' Z'" @,t :case'TListview' ,l' '='  200)('caption' 'Country')` BEEP;AHK BD CHDIR A Could error here; we'll still report?HL  A TFlexGrid object is another spreadsheet control moreL@$r'ff'wi'TextSize' 'This is a rather long text'@h0 0'ff.bnOK'wi'*Create' 'TOKButton'('wherelc' '=ff.ff' '>'  0 10)('attach'3 2 3 2)h 0 0'ff.ff.cbWrap'wi'*Create' 'TCombo'('wherelc' '>' '=ff.ff.edName'200 300)('caption' 'Wrap:')('attach'1 2 3 2)pt Z00 0'ff.ff.lab.bn5'wi'*Create' 'TFlatButton'(( 'bitmaps'),5 2aaa)('wherelc' '=' '>' '=' '=')('onClick' '''Button 5 Clicked''') Xt wres1 can close by default2 1XX8 Ewi'Children' find all form childrenPX@0 D(2Z)+D-AO/AT\@HW:)FHuj<`%lL@$L@f,'\(p  | $ 0V l  ,f x# ( POT! !s#p#8X&S <` Ded`lP$E$ `! )"X'#(#p)$L%%&8R'())*+4R,-,&-0p&.P$. | .4&/'01p'2dl3'4<*5R6h(7`89XD(:o;$(<=> ?@d(()@tL)@)@|AD)B`,CADENFlGHIJKLM\NOD4-Pl QRFStT 44 RGMarkIds (char string or '')94L :if 0(C2warg)wi'*self' form name(L@0 0wi'Place' 'sub' 'Various Table Options'@x' CC,125 125 44 44 44 44 44 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 46 210x  :else $0 H(Ctcnl)$ T :endif $t H[io+0,7+H]1er$ h" :endif $" C2warger$*̒< :if(C2warg)'#'wi'*countries'<d (27D)C WS_CLIPSIBLINGS  67108864  2*26d  :case 3 $:case'windowsdir'er$   :else $, :if 1=Dmer$ P :endH $p :andif 1=Dr$ :case'Av2Ansi' $ :selectDer$,x\ :if~0Hwi'*hwnd',P wreswres,tcnl,"Syntax: 'object'wi'next'{object}"TPh Space key entered. Put full keyword, right adjusted, in the edit object h`:)L$LlJ,  x ! x # :3\d(J82 DH !"4T#$ %&'T()*$*|*LA+T++d,-<./d0|1L2d345TL6O7̴8@9:;<8=> ?(6@A`B C(D`2E5FG4H I>J|2KL BM4B`4  move this following code4x BNVBNV, wselfwi('..b',(i),'.Create') 'GWButton' ('wherelc' '=' '>' '=' '=') ('*caption' (i))ax2] Equda wreswres,tcnl,"Syntax: 'object'wi'just'{justification {position}}" d$_Haah m(4 :case'<>L'(dz sizes26 12 14 16 18 20 24 30 36 40 44 48 temp sizes for texting-wrdLP wi'SessionFocus' create a workbook with 3 worksheetsL@ Normalize facenames in LOGFONT structures@(8 'ff'wi'progress'35 'e(4 wi'*..suppress'14< :if 0=(wi'*text')~' ' 07/10/01<(D Ttexta,U(:)tvG/8P*4 h%  @t <  ULAk`L;p  B.xZ>@;d #!#"0 #1$X$%&'$(P) T*+`,8-$R./|\080@1423H425t6h7b8D9:;L<m=>?T@A BC,=D\EDFDGtH0IhJDKLMNLO"PQR@STUQVWWXdY$Z$Z[[\](^p_\`+a!bc\'d9efg|!h|i j`!klmnopqxqqؗq(rsPtuvvwx$y$z<{||D}}} ~\tdLXxp<,8d,P$Ld[1h[\XkLpZ<\ 0D\DD_|dh)5`d8Pv3aa8ptl$(F$K0#wX0L T de|,0\cPxe|`4 +42``L[TX6K(ȯ: L0$bHT8WО|:H V 8  L7 HTlXJd$H C> @1!6"#$%H&'()`*+l,`-./01c23b4Ԣ5|6D7`89d:};D<=XI>h?|@BAALBCD\ EC,F GHXI0JxKLMNOPQD+RSTU VWXlYtY$YYZ[\l[]^_P`ФD wi'*onAction'(A,'"Action"',tcnl,B,'"Action"')D\ Kwi'*:modalresult' did it trigger onClose?\D Note: assumes WSELF is set to the form name01D,d :select wi'class' ,8S :if 0I1+T wselfa8`|:)l@mdD   dz Xu (  K T̪8H6xNL4uXN84y l!"#d $% &ؖ'@(dW)}*H+l,̸-E./501$2D3hA4X5(6@7Ԩ8xt9Ȧ: ;@<D}=>E?D@$:AB81Ch D2EFGxH\7Ih}JȡK,~LtM4 N2OTPQlR4SD/TSUVWX-< wi'*selection' (wi'*SEL')<4з :if /16 17 18 201wargx4$$:if 1=+/'.'=wself$:)dPL  ` 0 pȨ c< cج( ,^t  8X+x|r  0!g"讷#$T 4  Do nothing fall thru.4H:if ~Twi'..*self' shoulD always be the same?Hl̘ (D E F)IC (expression) (errormessage) (controlname)l0 wreswi'*wherelc' s0rsrh :case'< ' processed later in this propertyh wreswres,tcnl," '>#otherform' for a form means: center the form vertically between bottom of otherform and bottom of screen"8- E wi'*caption'F18 #&Y^rZ\@3%&?$G# !"' !!"#$%&'()*---./0444456<<<=>?@ABCDEFIIIKKLMNOPQRVVVVWXY[[^^^_ffffhhijklmpppqrttwwwxyz}}}~1      !!"8a<f!(  :else0HX Cdef"RA N B" "R'B',A,'1(',A,'/),B'"idH L:)||p3vL  p? x&  4?8rЁH5L=v4ZZhv@s[u,t8.2 !"#$ %4s&2v't(x)$*+,-.)/u\q001$2384\v5@u6w7t8\?s9:;)r<e`r=@s>pR??>@AHBhC|HDEnFDGlHIqJ@pKHLD#MxM*HMĻM\&M(N@ ĻOLĻP؉QypRST(U\V(W`XLY< Z[\]xp^_G@q`oatb8c3`nd8$e0Hfg@nh9i"jFk<l\mn1o(pqd3|r-stDbu@vw/xy$z`{h|X},k~܍XD''Ԁ#$7"T1$N 8Tw6|\Lh6THH5$q0Xm)P<4Ԭ4]1t>\>8N&  mq\ <pTp8r,0f4a`d,0 Pjjig|s[`F ,ؼr4l`6ȞĺLD\ lX8fxfW(< rg[krZ#\Rrd H+HRǻ `*TDd"l(l @9  * Ds ( h  \(r8* 8p&ƻkZƻ\h",$ H Ā!8O"#_$%&'X"(")|*A+[,x -Z.h/"0h1X}23du4 5'6Ht7\89T:";<M<(=">@?"@[A~B~  8` wi'..*edobject'(EdObjects)8$0 0'ff'wi'Show'P$Dd therefore the > that follows, refers to ff.ed1)'DDz TClock T:)|PqP1`  N L $ ($j4  jCPCxT6i,.iЊh: !8"X5#xi$ \%4&'()[*8+D,L-.(/h0(1j2344X~5R6789h:4\classesclasses, 'TNonVisualClass'4\ :endxD0 0'ff'wi'*Create' 'TForm'('*caption' 'THelpMenu Example')('*size'400 500)('handlers' 'ff_Handlers')xD0 0wi'Place' ''(' Eric Lescasse' 'August 1999')gDD 0/0 0wi'VAlign' 'cen' 'top' 'cen' 'bottom' 'middle'D []par 'Here is a short introductory paragraph, which should wrap over two lines at most. Sometimes it will fit.'l-0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' '=' '=')('attach'3 2 3 2)xflt0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '=ff.ed1' '>'  '=ff.ed2' 0 '>10+Age')('caption' 'Age')t8'ado'wi'Exec' 'select * from shippers'8 :ENDIF :endL,0 0'ff'wi'*Create' 'TForm'('*caption' 'TEdit Example')L4 wi'bitmap'(Fexec C)4( wi'*suppress'0(P :else :end6,2  RQTYUwV  d$ wreswres,tcnl,"vert,horz: gaps in pixels (integer) defined as 2gaps"d :)h/lB>>L?t4?R \N $Q  dB tH X? CAStCR0S(8`RXtI '!"(E#$S%̥&PP'S()'*DS+|,S-?./W0=1DT2L43/4lS55678?9>:T;<Ђ=hT>7?$P@T@TABTClLD"ETFG{HTIJKTLMUNdN>ORPQ̼RܻSVTZQURVDWdXzYEZA[\A] 0^ _`ȴa4b.c]dSePfg0hhAiMjPk$lom8 ndoopoqL]rpst8UutvV\Fwxx@y<z|{|<}~  htB?<  ,X L HPq$t؄OAU`1,h8 HImX\X-/2d 98N\q8\k8`/ 3l4g@ 3XgTNAlo|_hy(@0PCl?_vnB5 L;HaItxT$ B@2-$hpyTwH4L1 tHX(ܪu  (4U 8@ : H| '(TForm)'('(',A,')')('(',B,')')('(',warg,')')H<| hilight full and partial keywords<d8tcff -------------------------------------------------------------------------g'd\f0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')tf\<@DL+N+Zh49:)4&;dMhdmcurrentindices(wi':*cot') (wi':*toindices') Save values for possible canceld8pVsplit lib'' select all jobfiles918119:)8stE؏g`Ja#ԥfa   g  @.|gPo\3||دJftH!l?@A|B}CDRE|FDG HI JaKLMLNgOnPQR S(T UXVxd W` XYZ,[\M@]^j_`ianb456~789`:;i<=>e?@ABCFDhEF|GH_HhHI|J KLM@,N\O,P|QR0S0TUTV\W4EXYZ[\]X^@_h`a,b,c0Xd %efg h\injhklmnopq8rsdtPuvwHxypz{ԁ|}p~dDJD0 8lěP;7=p\7~T  `S0 \= =\'0l~l|zL\<5`6ܷx<(Lt0%|,dA M "dN]p>дhd^ N ?X,0T8QTH94< D, tXD>hĴb,b̡v\~D$$<xPXdfl9 ̴ `  \  XN ZM`' >`TC@pSDYSLv lS!,"4#D$%`&'Dr(l)R*`6+H),`F-|h.XO/%0 1t23p>40~5(6R7H8 9:x::(s;\< =R> &??@_AABC\CPCNDxEFGH@I7JDKL|RM?NOP\+Q(RSSSkThRU`VXMWHRX\UYTRZx[\4]0^-_`,abcxdEefRghi(jkkk0lQmnop0q`r"slvt(u|vQw0xTyz+{|:|<}~ S6R O`TlQtOQoL&Lh$~XH@HQ\EM ĥQR4QM<\O b Q4POPHQ(PPOԪ|pPa0Pd`@Dy$p:tP Note: a control validation expression should involve the APLPl\q0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')('just' 'left'90)1lؾD.5L-FI@BEEP;A  :end 8 rRHIZTXLM "MM&'(MM,-MM1MM56MM====>MMBMMMMMMMMMOOPRSTWW]]b`bbgghnknnntqtttu{x{{{~zi*&dRgܴtxhlwself(FM,'.ed1') wi'*Create' 'GWSize' ('wherelc' 5 78 ,S ) ('caption' ((4V2[NO]),' [9999]'))x(:)x|o=ts { &  ? `/7( tp0 \aX 4  (!L"g#$3%h&s'L (|)xh*"+4@,-D.e/0@1/2x34b516l 7L}8987:;4{<P= >x<?p@AThBC_CdC&CDEāE\FP.GHhhI|hJ.KLMdNO|P5QDRSMTUxXVW|XxYzZ[\P]L^_`T>8abp(4 wi'..lDesc.*caption' T4hL wi( 'wherelc'),(2wi'*wherelc'),(2wi'*where')2'#'wi'units'h< wself2EdObjects 08/03/01<@ :IF ((IDV)-/RC)HH8v !"`# $%R&'(( ʿ)t*+|@+T,m-̸.T/o/0o0,1` 2 340h t wi'aplname' 'FIELD'0@D, R0 07/10/01@TB(0 :if~'.'C (X attachR"0,HB '#'wi'*inifile'C,,T (A,'_lab')wi'*Delete' ,XA TForm B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfwX:)ė@X(\ ^D]d3X pL޻ @\޻ u޻  fݻ  (m Zxݻ`lݻH"p_FtD|\ I@9D\:XDx/> ,DD!B"@#,$%:ܻ&S'p(1)@*T[+,8-./;0*1LR2xxx3(4xNܻ5ePݻ6 V4ݻ7dZ8<9Uݻ:;K<1=Uܻ>0V?H=@A<LBHCeDcۻEFL*GUۻHIJxfKLHM]NOۻPQaKbYcdJefug$hl]D̻iDjkal\(m(̻n@[o`p,q r+sHtc ̻uvwPxtyN˻zY{D|,v}~l`MX˻hS&',0 0 0 18) ('caption' (V1[NO],' data')) ('handlers' 'equip_Handlers')x :)G 1sX ` "S $|T LHT OlS vRH8S,Ԁ@^pROԧhP$P O+!O!pOD,O ܊!N" @D#8D$|dE%T@&4'$@?(S?)>*>+,-7l.:/800t71,l23d4x75Xb56]`678؝X9h:;h<|=,>r?8s@ A|BC@Dr\E(FNGpAHhI<=J@Kk<L MhN@ORPDQSR,ScTUVPW00X-Y Z [0\p6]d^XL_`TfaF|ҶbИc d@ef~ѶgDhV˶i̶j0˶k|@˶lxULʶmeʶn oLp0 ֶqƶrgXĶsBt(Ķuvtw X¶xyaܽzho{||$O}{~Xg\T`[XD"< << Д&$oTTatxa4`̝x\dM(a|ХԛLadؤ`qaqH,bؠ,虶7pL phOlf@b/d x{ 8TbU4hbD ԕ,D n`N@58I4|44 |3dT3h,3L02`2H,g0t/~`-̌-D.`Y-h-\y /I/}d,+g@+I\*})l<)T)'}&(&S&\%h}x$<$T$YT#Ȁ"m0"/X"@gg'  '=gg'  10)('ontop'1)'*Show' 'SessionFocus'ol(t facename0r((o wi'Center'(<xK The wherelc 5th 6th 7th and 8th arguments<XXj find where appstate was assigned two install id code 9/5/00anX$wi'..*kwparams' P$`u windowfTI wreswres,tcnl,"Example: 'ff'wi'R2A'44 24  'X44'"EQnTL :endhK l(i wreswres,tcnl," '>>' means use remaining space to bottom of form"l wreswres,tcnl," '#F!!$$&'))++0123556;;;=>@HHHHHHINNNNNOssTsssssss``a cdhhijklssssstuvxxr} |}&}r lT F5,,,  !$&;1>HH@m`hc|< Change the content of the Age field to 49<p :if~0(C D)wi'*check' (APL validation expression) (errormessage)p(H iV wi'..*self'on(\X S'SP'('WM_SYSCOMMAND'('''',A,'''TForm''SystemMenu.Click'''));\D]  Zwcall'AppendMenu'K'MF_SEPARATOR'0 0jD0a(3256)'cf'wi'ShowDialog' must be called on a separate line (returns empty matrix if closed by Esc)1A hX E~0DC wi '*aplname' find which children have an aplnamehp  Create a form ii with same top position and height as ff, 10 pixels to the right of form ff pxD0 0'ff.e2'wi'*Create' 'TMaskEdit'('wherelc' '>' '='  '=')('caption' 'Month/Year')('attach' 1 2 3 2)nxE0 0'ff.list1'wi'*Create' 'TList'('wherelc'5 60 300 160)('caption' 'Functions')('list'(nl 3))('attach'1 2 3 4) Th0 0'ff.l3'wi'*Create' 'TLabel'('wherelc' '>' '='  '=')('*caption' 'Label n3 (right justified)')('just' 'right')<' '>')('attach'1 2 3 4)('*imagelist' 'images')('*style'8 16 32 128)08|0 0wi'CellWidths'(-4 1 1 1 1)0dtcff -------------------------------------------------------------------------s'd@ The wherelc property for Controls (continued)@4Z 0 0wi'.ed5.type' 'integer''d4$0@ ns XrRQZTYw[#P rr"#$:&'()::,-./0234:6::::<???@ADDDEGHITLMNOTQRTTZZZZZZ]]]^_`cccdiiiiijpmppprrs&"?<QM$4?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy|||}~qnxx@< that match the first (1n-1) chars in ID.'@pt0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('margins'20 20 20 20)p W[QTYUsStuVvW]^XrZRw\xP3 ####$ZZZ)+Z.Z124456789;;<=>ZZZZZZZZZZZZZZZZZZZZZUZZXZZA.x{ 00 5=Ignore, 6=Yes, 7=No0 :)WL@\N/ǿ0D `  X ئ uv~(|p>pdT<H$[  Xo!PA"H#8$%& %'H5()c*P+6, 4 wi'*selection' ((T),0)4Show|X0 0'ff'wi'*Create' 'TForm'('*caption' 'TVLine Example')('*size'350 180)('ontop'1)'Show' 'SessionFocus')|:if U[1] S ;:)(K*F(v4dqʿ ̇ XH r  )Q̕y8Qd0ypH{,dvXF !v"H#Q$y%&<{'Tu(=)z*Z+,-.T/l0123R45Э6Э7z889|v:t>;xG<=v>?@SA̱BC\RDSEиF$GHUItJCK,?L4TM]NO8PwQLRS0]TSUXV0 W(<X`"YZ`[ e\]^T_`Ha0b c dSeXfXgohpipj\kUlzmn[o4-pql1rsstu0 1. galvinized0( :if( D)G'( aplnamefrw L1, wresRd:)U a (<  l @ d  tx |( P$ xt $ 4 !"Th#$%& 'TW(dt)*p}+X ,j-@ .P / 01,|2345P678,94:;<$ <Lj T(wi'*texta'),' ',wi'*textb'<0j wi'*modalresult'00  TNavigator f 0 0'fmYesNo'wi'*Create' 'TMsgBox'('text' 'Do you like OOP?')('title'('oo'wi'apptitle'))('buttons' 'YN')('icon' '?')('mode' 'T')ftwself'fmMdi'wi'*Create' 'TMDIForm'('*caption' 'TMDIForm Example')('childclass' 'TChildForm')('handlers' 'TMDIForm_Handlers')('bitmap'(('oo'wi'installdir'),'writing.bmp'))'DemoShow'FlXi 0 0wi'.bnCancel.Create' 'TCancelButton'('wherelc' '>' '='  )edXP Zwcall'keybd_event'I 0'KEYEVENTF_KEYUP'0IP0text(' ','R',r),('C',c)text0PLi wreswres,tcnl,"Syntax: 'object'wi'PaintDesktop'"1P0` z|R  !##$'''()*,,///0133458889:<<>>?@BBCFFFGHJJLLMNOQQRUUUWWXZZ\\]^``acceefhhkkklmoopwwwwwwwxy{{guw 0\Y wreswres,tcnl,"Note: value must be expressed in pixels except:"\d wres'Applies the Redim method and the Center before displaying the form'd\h Zwcall'SetWindowPos'(wi'*hwnd')D 0 0 0 0'SWP_NOMOVE SWP_NOSIZE'e\ c:case'common' $c :if 1=wargmer$ c:case'country' $d :endmer$ $d :else $Dd :endmer$ Ĭ :endH $ :if 1=wargmer$T Set duct properties to match the class and material selectionsTe wreswres,tcnl," if 1, the result is the ClassId ans LicenseKey of Formula One as installed on this computer")\b ZD wi'*Set'('*laboffset'(G H-2D wi'*where'))('*labwidth'F)\ Hf :endH $hf :if 1=wargmer$ f:case'check'H $f :if 1=wargmer$ f :endH $f C2warger$ Xc :endH $xc:case'installdir'er$$< *..SetStatus$l 0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('*size'200 500)onl0 0wi'.url.Create' 'TCombo'('wherelc'('>ff.like1')'='200'>') ('caption' 'URL')('attach'1 2 3 2)('aplname' 'URL')('must' '')0)[tt0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '=ff.ed1' '>'  '=ff.ed2' 0 '>10+Age')('caption' 'Age')t V :returnH +rQYTwUV\>?sSu=7@A8BCX RH_I !!"%&(()---//2N5N7NNNNNNNNNNNNNNNNNOPRRTUbbYZbbbbbbbbceegjjjklmnpqwtvvxqqqq~qqqqgi\ !-qHHXh error"Option '#limit' not available for class ",wi'class'EDhD2I :caselist'TList' 'TListview' 'TMedia' 'TPicture' 'TProgress' 'TRichEdit' 'TScroll' 'TTrackbar' 'TTree' 'TEditList' umuwself'ff.tree'wi'*Create' 'TTree'('wherelc'  200 200 0 '>Objects')('caption' 'Objects')('attach'1 2 3 4) T( wreswres,tcnl,"Syntax: 'object'wi'ApplyStyleSheet'". T( of a TSpinner control(te 0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' 60 60 320)('caption' 'Address')('attach'1 2 3 4)('StyleSheet' 'StyleSheet1')('ChStyle'512) CKLYXrRwy'(? !%%%%&)*+,///12345678;;;?BCJJIIIIJMNOPQRSaaYZ[\JJaaacccgggijkJJooJuuun xyz |}J t JJJk JJJJJWJJJJJJ%?JJJJ555JJ1JJ*JJJJJ JJJJ JJJJJ  JJJJJJ #$JJJJJJ---.00JJ56799:;<=JJFABCFFFGJJJ A%!/,I4I?JIUMaZokuJz}JJJ'J$A6<z GInfo'MouseDown'  07/15/01< wreswres,tcnl," '#limit{width}' define control max number of characters and width as {width} numeric characters" (̄TObject"Action"((~ MS Sans Serifon"(, b\,b,\;|0] wreswi'*spy'00J :if 33=1warg)0To :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'T checkcheck, '(COUNTRY"France")^(AGE<25)AGE>60' '"Age must be between 25 and 60 for French!"' 'ff.ed5'is <г Positioning forms relative to other forms<4@ 'ff.tree'wi'RemoveCheck'1 3 4 6ge;4;slwself'fmMdi'wi'*Create' 'TMDIForm'('*caption' 'TToolBar Example')('handlers' 'TMDIForm_Handlers')('bitmap'(('oo'wi'installdir'),'writing.bmp'))('*size'300 480)('ontop'1)'Show' 'SessionFocus']DBut A Tips of the Day object for your applicationsve DDeda Allows to import Text files infto APL variablesthDx wreswres,tcnl," user changed the directory while searching for files."*x0 The Redim and Center methodsp0Tx? F wi'*dataoldvalue'(F wi'*datavalue')TLs ZZ,' ABCDEFGHIJKLMNOPQRSTUVWXYZ'[1+26 26C])VLL A TDualSelect object displays 2 list boxes side by sideL4 C wi'*suppress'0f4(0 :if 189D:;t<=@N>5?z@XnAH,BTC' 0 200 300)('ontop'1)'*Show' 'SessionFocus'shX0 :andif 0E LES9feb01 addedX8m'ado'wi'Exec' 'select * from shippers'8(X~'rr'wi'EnumKeys'bbbe(, l8 wres'Executes any file recognized by the system starting its parent application''lT5 'FIX THIS: value should never be greater than (IDV)-/RC'T4:if 1('#' wi'*children') 'ORD'4h0 0'f1'wi'*Create' 'TForm'('wherelc' '>'  200 300)('ontop'1)'*Show' 'SessionFocus'oh42 where E.IdEntite = EE.IdEntitee'4('ee'wi'Range' 'B2:G7'($Њ'ff'wi'*Delete's'$X :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'Xp\ [3] wself'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')sAp V(TO' ') TO4 D:)p|1-<<-8TND N $ LDX 4Y gRhY:Y\xYXWYXhX XTtVHXV| VLZU8 I?oR@pUA$$VBT8TC|DSExTF48RGRH`RI4TJ`KTQLe D$lr4 $l@d is slower and resets the form handle (i.e. rebuilds form system menu, etc.)l$ FHN GHistory 7$`\ wreswres,tcnl,"Example: 'ff'wi'A2R' 'D16:IV12'  16 4 12 256"` wreswres,tcnl,"  means default control height for this class of control (for a form means: half screen height)"8 Knowing how a form has been closed 8,5 :case'center' ,M 8< the Windows ChooseFont common dialog8 DCAX2C 4R 0 0wi'.ed1.aplname' 'NAME',D4X wself(F,'.op',k) wi 'New' 'Option' create a optionsXD move cursor one space to the rightD}HD` J(2H) wi':f1.cbSubSec.*text' =D< t wi'*tabstop' 0 08/29/01<@H1wself(FDUCT,'.l1') wi'*Create' 'TLabel'';@>OO0Plx  B'fm',(ts)~' ' unique form name (avoid name conflicts!)PTl48 :caselist'jGDEFGHIJKLMNPQRUWZZ[`ajefgjjjllmnqtttunwzz|}5)A9eGZl4  :if 0=RA~' ' 3/24/00 4TT} wres'Applies style sheet as defined at the form level'y'T$ Twi'.*self''$| H m ;TcwR.#  bbb2'bb,bb22224578:bbb?bbEEEE7IJKPNPPSSTUVWbb[[^_`adddeghijklbbbbbttt v xz{bb~bbe pbbhbbb F Lbbbb@bbbbbb..bb$bb bb bb bbb bbbb      !"bb%&((*-./012345bbZ:;<=bbbAbEEFGbbZKNNNORRSTZZZZZZbb^``abddugjjjlbbpprsbuwwbb||bbbbiiiee bbbbbI!@Ebb"5)#$bbbb%bbbbbbb&b'bbbb(bb)  bbbbbbbbbb&&*(bbbb+/01,3457789:>>>>?@-BCDFFbbbJKL.NObbSS/VWXbb[\^^bbbb Cr0\% )'2,5E8E;b[Kd`bv}xb bZ%Ebgplubbbb b(>/>3FCSN\W $ 'ff'wi'Document'P$pPu wreswres,tcnl," if <0, means distance in pixels from left edit control edge"p\? :caselist'TCombo' 'TComboFilter' 'TComboDrive' 'TEditList' \ :case'inifile' $ :endmer$ < (D E)warg  $\ :if 1=wargmer$  (D E F)warg $ :if 1=wargmer$ \V HL+F-Q+.5S $|V :if 1=wargmer$@t:if ( 'caption')wi'*properties' 3/6/00lf@<d2 ;G;M<l wreswres,tcnl,'2warg  and is DEVMODE structure to be modified'g1l48 and MG.IdFiliale =* E.IdEntite'4 wres"Get or set the enabled property for both the some objects such as TEdit,TCombo and their asociated labels"2]H$ Zwcall'keybd_event' 'VK_SHIFT'0'KEYEVENTF_KEYUP'0 1 Hx ёRB Common A;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;AA;AB;AC;AD;AE;AF;AG;AH;AI;AJ;AK;AL;AO;AP;AQ;AR;AS;AT;AU;AV;AW;AX;AY;AZ;BA;BB;;;exec;Hook;elx;err;X;max_path;interface;B;facename;fp;hdc;z;rc;f;BC;BD;io;BE;BF;BG;type;args0d  6. Stainless0,@ 0 0wi'Add'(0 1)data ,x  wreswres,tcnl," 256:OFN_NOVALIDATE - Allow invalid characters in the returned filename." B x\q Zwcall'CheckMenuItem'K 902'MF_BYCOMMAND MF_UNCHECKED'\dptcff -------------------------------------------------------------------------26d0@<text('(',r).,(',',c),')'dd0dtcff -------------------------------------------------------------------------med`ܖ0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')1`4P 0 0wi'.ed1.aplname' 'NAME'n '44K 0 0wi'.ed1.aplname' 'NAME'ile4L wres'Remove quoted strings from a function VR'ctLtp  Hwi'*aplname' APL variable name associated with control or 0tt> wres1(,L X C),1 {*: dm} (0 or 1 if expression failed)(error message)2)ttP wreswres,tcnl," '>NN+label' means adjust horizontal position by width of Label + NN pixels"h@" :caselist'TEdit' 'TRichEdit'umb@, ZD wi'*Create' 'TLabel'('*font'E)('*where'(G+K)(H-F+M+1)(I-8 )F)('*caption'(C))('attach'N O(NP)Q)('*order'(.5+wi'*order'))doPl+ wres('#'wi'newclasses')~wi'UsedClasses'(2warg)' PLz :else( 'WSELF=' WSELF( XRrVw d0 0'ff.se.p1'wi'*Create' 'TPage'('*caption' 'Customer')('*imageindex'169)'*Open'd0 0'ff.se'wi'*Create' 'TSelector'('wherelc'5 5 '>' '>')('attach'1 2 3 4)('*imagelist' 'images')('*style'8 16 32 128) 0 0'fmYesNo'wi'*Create' 'TMsgBox'('text' 'The files have been copied!')('title'('oo'wi'apptitle'))('buttons' 'OK')('icon' 'i')('mode' 'T')l Define limit and width in terms of number of average character widthsl9 wreswres,tcnl," '>' means use remaining space to right edge of form minus margin" 4),8` wreswi'*enabled',XP0 0'gg.bnOk'wi'*Create' 'TOKButton'('wherelc' '=gg.ed1' '>'   0 10)Xll wres"Perform all validation checks on form before it is allowed to get closed"] lh f(+/^\(mix f)tcnul)f drop trailing garbage (after NUL)hX 0 0wi'.ed1.Create' 'TEdit'('wherelc' 60  200)('caption' 'Name')X0 DC wi '*mustset'0B wreswres,tcnl," 'ff.edAge'wi'check' 'CheckAGE' 'Age must be between 30 and 50' if CheckAGE is an APL function"@k (K L)wi'*xRows' '*xCols'@  "QTYUsStuVvW]^XrZRw\xP31  !"?@ABCDGHJLOOOQRST[[Y[[`^``abcffquwv~s_jNXQIG8C6*2%!  "},0Dy with the following entries:140XT0 0'gg.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '='  ))1eXlt wreswres,tcnl,"charstrings: a char string or a nested vector of char strings"onl\{0 0wi'.ed1.Create' 'TEdit' ('wherelc' 120  100) ('caption' 'Name')('attach'1 2 3 2)('aplname' 'NAME')('must' '')@hH4Nwself(FDUCT,'.l4N') wi'*Create' 'TLabel'@ (+ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&))*40> CALL AFTER MAIN FORM IS COMPLETED4,N wi('aplname' 'DATA') ',wself(FM,'.ed2') wi'*Create' 'GWToData' ('wherelc' ('=',FM,'.ed1') '>'  '&80 80') ('handlers' 'data_Handlers')X 8:)dJH`  m j n  = @r  \ |4qм0<jX<lh?0h (!l"4#$%ԅ&T'()*4o+a,Y-./V08124k3(4 56 7>8 9@Z:8;4<=x>?$b@8ABCToD4pEF GHdIXpJKwLM NTRO|HPsQHRS4T$sUV iWX@ Y]@f^~_l`?abĻc 0N 6. ccc 123 c ccc 123 0G | wreswres,tcnl," '>object' means place this control to the right of control 'object'" -|  :else $8 'pr'wi'*Delete'er$ \ :endH $|'ff.pp'wi'fluid'1r$  :endH $'ff'wi'*Delete'mer$h :if wresHwcall'W_Const' 'INVALID_HANDLE_VALUE' Did we find something?4)hD sizes192 temp sizes for testing,DD sizes96 temp sizes for textingD0m Ewi'*children'0,'ff.ss'wi'Select'2 2 11 5,r4) *7 rwR; 6666""""&&&+++-+1124456<|:elseif 1(VSV)[OS+/RN] 07/25/01<x1 wreswres,tcnl," '=object' means use same horizontal position as object 'object'"rxd܀ wreswres,tcnl,"Note: this function may require a lot of space to run"tid0 rtBWQTY^RwZ!;#$&')*+--$/;244577;;;;????ASSSSSSSSSSSSSSSSSSWWWWXY]]]]dddddddffghkkklqqqqqss$!-)SA0:)b0k,S<g^=>M?pTj@^A WBoCD 8D elx'error(^\dmtcnl)/dm'8twself'fmMdi.tBar1'wi'*Create' 'TToolBar'('buttons'1 2 3 0 18 0 9 10 0 11 12 0 5 6 7 0 28 0 1003)t   (0free)/0H $,'ff'wi'*Delete'mer$ P :else $p'ff'wi'*Delete'mer$ \ :endif $|'ff'wi'*Delete'mer$4(  caret inside the text string4dHb wres'Applies the Redim method and the Center before displaying the form'd0) wreswi'*suffix'us04)d.;8t!RR,(DTB wi'*text')>wi'*selection'8< CV wi '*color' (toattrs[1])P<:)Ķ޿l|:[8  x  p  LPVHapT\ \\M8 p $!`"#$%L&4'7(W)W*8+,Lo-.Xl/|S0E12L345678`o9pW:G; p<dp= >86?@0AB4pCD(3EtpF$G7HlI@J]K8LlMNTrO PxaQ8Q nRlST^U4UpVWXkYZ$[`\]t^__`Ha aTabGcc4 c\cQd|efLgh{i_jkltmnoFpxqr,stuv\wmxyz {(|t}~4Pg ]\WlGXl0$fT7pH$ 4Dv desired ccc new ccc40~ :caselist 1 2s08 The 'check' property has 2 arguments:8|P wreswres,tcnl," '>' means use remaining space to bottom of form minus margin"|  :endH $ :if 4=D er$  :if F  $( wresZ~' '$ ; (E/G[;2])0  $< :case'?Redim'er$<4<(wi'modalresult')NAME FNAME AGE COUNTRY.< wrR- !...)*../02j5j8jjj=j@jjjEjjJJjMjjjSSjVjjjj]jjjbjjfjjjjlmtz c$$!.*wl bl0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')':Center'ilP0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '>' '<>'  )BPHt  An instance of TDoc called 'hh' is always available1H40 0 0wi'.ed2.aplname' 'FNAME''F48| Note: select a word in the DHTML text8('ff.st.pp'wi'*value'70(DD  Type of class (toc)DlHCU+S+TLp0 0'ff.mFile'wi'*Create' 'TFileMenu'('options' 'default')L0\ J0 0' ' @y0 0wi'Use' 'This is my first HTML APL page'@4 :caselist'>L ' '>LL' F4P̿ AL0 Redim flagPp HH, " Note: 'err' must not be localised (semi-global variable returning Error message)"pH wreswres,tcnl,"FILE_ATTRIBUTE_ARCHIVE32")H(6[1]'ff'wi'EnumFonts'(H0 F(G'ABCDEFGHIJKLMNOPQRSTUVWXYZ')/F0H|4J0 0'images'wi'*Create' 'Imagelist'('imagenames'(('oo'wi'windowsdir'),'buttons.bmp'))('imagesize'16 16)n|$,'ff'wi'*Delete'P$pt CC,139 155 147 180 186 158 174 144 138 137 150 151 248 35 177 178 160 190 159 176 125 161pD M :if~AA( AFwi'*class')'Form' 'MDIForm'DD Zwcall'DeleteMenu'K 8'MF_BYPOSITION'DD Zwcall'AppendMenu'K'MF_SEPARATOR'0 0D8 Cwcall'GetSystemDefaultLCID'8 check '(COUNTRY"USA")^(AGE<30)AGE>55' '"Age must be between 30 and 55 for Americans!"' 'ff.ed5'opep4` SE 4p~9/T,p41< zXDX8 DVeP !"6#t $ 0 Note: mix used to0` rRwQYTUXVsVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVZZ\]jjjjjjjjjjjklmnoqqrsuuvwx}nVj\}P wreswres,tcnl,"rc: return code (0 if failed)"P0} :if 'SIZE1'wi'aplname'0   +$****,-/027====xABCHFHHKKLMOOPTTVY``ccdff hijkoorr wxy{ oe  H?;! EEEE%%&'....;34567;;<=>+EEEFIJKUPPQUU[XYZ[___`eeeghk+Mstuyyz|+Xveee_ !"1# $!*$-=0=3TCVojx B%;4LIe[y| (tR delected 2/26/00(:)B\Kmhm4n p0$NT wi'onKeyUp' 'combo_Handler'04T wi'onKeyPress' 'combo_Handler'4('pr'wi'fontstrikeout'1(H C(( wi'class')'MDIForm' 'TMDIForm')/'client'Hd0 0'ff'wi'*Create' 'TForm'('wherelc'   100 )('ontop'1)'*Show' 'SessionFocus'01dp:)px X(l,m,Pz h   (! C8D&taL>>&<@i< i !`"#T$|% &'()*Ȋ+<,`-$\.(/01/234j567(8[9,:p8 wi'..*edobject'(EdObjects)80* P  AS((1AP),0)+Z+4AW wi '*where'DOCPx CC,68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98tonx g G90H $h'pr'wi'pattern'0er$ (h :endH $Hh'pr'wi'fontsize'16$  :endH $'pr'wi'EndPrint'er$  67 PN^>R 6666!!6666'6+,-./6623666('3- :) <GWsW"`W(``p`"_,_ (t_  V  JV\{V^^zL__ 0 :if /37 39=1warg0TN wreswres,tcnl,"Syntax: chars'object'wi'D2C'numeric"1T0dgg wi'*onKeyMove' 'ShowEvent'e0@X If not found use the duct default setting@4 0 0wi'.ed4.aplname' 'COUNTRY'44 A wi'*caption'D4\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name'))'\4$ :select wi'class':4,!'ee'wi'sheetname' 'Sales' ,d I6  26^rR$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%&'(**5-//033355'-5 dH wres"Returns the names of all APL+Win 3.5 Classes used by a given class"Sdd ? wreswres,tcnl,"Note: this function may require a lot of space to run"rcd0 classesclasses, 'TComboDrive'0 :)B<eX2|2Pg/1  : T0x 824 0 g l0 1(H$,DDh0 .쐹T3 3.031x(mM<2 .!<"Dh#P/$l%&'%(0)04*l.+<*,-.|x/(/012|l34-5/6738'9:;P䊹<X=0>?<@hAdDBJC# 0T7 wi'*suppress'10r wreswres,tcnl,"Example: 'ff.ed'wi'ChangeStyle'1 16 forces edit control to get a vertical scroll bar".6 L(Q>S)2PE wi'*where' left position of control to center upon or 0 if this control is parent-phk I(4~Q)+L+((N+G-+/K+N)2)+(K+N)0,1+K recompute left control positionsep| wi'legend'('January' 'February' 'March' 'April' 'May' 'June' 'July' 'August' 'September' 'October')"s|0lv:)LL`D<TF8 ، M DM H , Ġ%$x4MV8:PL І!x"\#$x%8&<'(T)8*+`,- .L/,0,1ؓ2L3J4T#5;6 7d8HL9$;:;̒<=l.>4?+@(A`BtCLDE@eEFNGHIJ0KX[L[LMNOPQR<S8ST5UV@WX*Y YZ2[ \K]^!_@K`KabLcdeܓfgdhijhk lmB"nopqtrst4uvH]wHxyz\{|Te}~h~($|dA} H,9L}lahp0<[YdB' 60 60 320)('caption' 'Address')('attach'1 2 3 4)('ChStyle'512) AL1 8t :end default object8:)dſؾxO>Į~ !} } D 6| `| 60| Pd{ (#h}p&{@{ЂTz8,z@ {zdz4wzylsh s ԉ!uu"|Xu#8$p%q&lPr'dq(L){*Ȳq+l,nt-./GXt0ı(t1X2r2{r3lr4m5(wm6n78,n9Wtm:`n;;o<=>(oLq?u@$AtnBC`yDLnEpmFG0HInJ[KoLkMNTOP0IQHZwRk(qSTPzwUV({ 0@ :if ~'SIZE1'wi'aplname'0H wres"Return the owner of the current form"itH(# :return(d wreswres,tcnl,"Example: 'ff'wi'TextSize'(split nl 3)('Arial'12 1)" dP$ wreswres,tcnl,"Syntax: space'object'wi'Packws'"1P,x[ :for i :in Le',h\:)sFz{z(}||h8 :if (0=T)^~warg46,47+108,E :if 0E2warg ,ж :elseETA TOpenFile B;C;D;E;F;G;H;I;J;K;L;M;N;P;Q;R;S;T;U;V;W;X;Y;Z;Dir;File;Filter;Ext;Flags;Title;Data;lpstrFilter;lpstrInitialDir;lpstrFile;lpstrDefExt;lpstrTitle;rc;rc2;hF;nMaxFile;lStructSize;nFilterIndex;OPENFILENAME;lpData;L;ReadOnly;M;io;nVer;fMulti;io;wselfpI0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')'Show' 'SessionFocus'tp8d'ff.bnOk'wi'wherelc' '' '<' '' ''r8\0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)e\t g0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '=ff.ed1' '>'  '=ff.ed2' 0 '>10+Age')('caption' 'Age')t:Hܿ ZZ, " hook function from EnumChildWindows"H('pr'wi'showprogress'1(@ 07/05/01< wi'*:currentcontrol'wself< 5P*QYTRwUV\>?sSu=7@A8BCXj"""""""""#%''*-/OO56;:;<O>?@ABOOFGHOOONORROOVWOOO]_`eeefiiillmOOy rstOOyyy}f O N XOORP -8885OOOO5     5%'')55556789:;>AAAB;EEIIIIOOOOO M%L5>;OH[NTROWy_plysdL wi'*text' '' insurance. some tiems text had two spaces 07/29/01dx  CC,99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122x  :endH $'rr'wi'keynums'mer$  wresz $0'rr'wi'keynames'r$ $7 C''H $D7'rr'wi'keyties'mer$p:)0,PpRHO)`PEPO< PPlDOOP 0PO   p llTplTRff' '<>ff' 100 100)('ontop'1)('ontop'1)'*Show' 'SessionFocus'xx$' Create a form gg just below form ff with same height as ff and default width (half the screen width)xH8 wreswres,tcnl,"FILE_ATTRIBUTE_DIRECTORY16"HL$ The TDates object is a non visual object which purposeL4 wi'*text'(Fexec C)4(Č :if H>L O( :elseX :return <\G:)x<-!l     /$LtM4T(cl+|q, TC<LC(A[;1]=I[1])/A[;2] C=material for I[1] classL| (lpstrFile lpstrFilter lpstrInitialDir lpstrDefExt lpstrTitle)lpData++\0,File Filter Dir Ext|:)`p40a  o r  <3d<r< process options within each frame j<PdvB(A[;2]=I[2])/A[;1] B=classes for I[2] materialPl :end4):)̎ X\`L l   ̾ pM8X Q L\,"`6h(K 6<0J !?"u# $4:case 2001 air distribution40' '=' 200 21)('attach'1 2 1 4)('fluid'1)('orient' 'vert')'|PT :return XH wres'Return nested array of available User Defined objects'sX$ U SELwi'*SEL' $@:)`P$x~   (  w , )  gg( $  ,l 7!""Y#l3$%&o'(p )`g*V+x,|-.T/k0"12"3Գ4H|56H6H7D89 :W;q<p"=LD>3?^@/ACBdC[DH1EDFlJF$ZFfGHeI/JXK|h}=~81(c(`j/<#$D<D|&`:BX/ Tx o,E  t~O14mp' '='  100)('caption' 'First Name')('*text' 'Eric')Otx\0 0'ff'wi'*Create' 'TForm'('*caption' 'TWebBrowser Example')('ontop'1) ('*size'456 652)('ontop'1)xx0D (Y Z)wi'*:gaps'0H p '.rTQYUSuVWrRw\43^v ### ###$+&N()*+,-./033345789:;>>>@@ABCDEFHKLMNOPQffffWYZ[f]^_`abffffF5llllmnorruuuvwyw{|}~voBD&&&%&&&&&&&&& && &&  && &&&&& l7]Y& " pD| Reading values from controls and setting controlsDXa0 0'gg.ed1'wi'*Create' 'TEdit'('wherelc' 70  300)('caption' 'Name')XXPm The Redim method may apply to container objects (TForm, TFrame, etc.)XL wres'Allocate Windows memory to accomodate data'tL|ܥ wres'Get or Set the list of classes which are top level classes (i.e. based on Form or MDIForm)'|x(g CC,37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67x v H,'J[Z;]'  $v'fmBm'wi'*Delete'r$ v H,'J[Z;]'  $v'ff'wi'*Delete'mer$ > H,'1003Z' $>'ff'wi'GetAnswer'r$,'Agent'wi'Merlin' 'New'D ,x\ CC,32 245 246 142 144 168 236 12 15 240 253 251 256 174 156 157 2 158 125 22 6 167 5 175 135 241x w :endH $x'ff'wi'DemoShow'er$ 4x wresR $Tx'ff'wi'*Delete'mer$ ԫ :else $'fmBm'wi'*Delete'r$\RA TObject B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;;;AA;AB;AC;AD;AE;AF;AG;AH;AI;AJ;AK;AL;AM;AN;AP;AS;AT;AU;AV;AW;AX;AY;AZ;X;io;fp;filter;type;args;interface;N;path;name;frequency;protectdate;ddeshare;data;hMem;lp;free;sz;opts;oldmode;allow;newmode;active;dlgprint;rc;h;err;facename;hdc;z;f;elx;flag;hndOpen;hndUrl;Hook;AO;list;n;exec;BA;BD;BB;BC;BE;BF;BG;elx;windows;EnumWindows_Hook;max_path< Compares available space in the edit box<@`H6Nwself(FDUCT,'.l6N') wi'*Create' 'TLabel'@`T wreswres,tcnl,"keylist: a list of keys to be sent to the control"01`DDN BEEP Signal and error.dD LYXrRwcyabzf~!"#%%&)*+,///12345678;;;?vBCIIIIJMNOPQRSaaYZ[\aaaccdffhijnnttto wxy {|~ u l v9XC &&     &&&&&&**-.00234599:;<=>@@BCFIIIZ[^_aabiiijmmmrstvvwxyz~ %#/,I4I?IUMaZnjty| X-92FCcZa_~s:)`E( (x0C D I d G  l?PԸDX?ܬ`$  @ LFMT'K2F4.2' Typical and labor formats@L CC, "C/wcall'GetWindowText'H(100tcnul)100"pL@ C,1 0wi'UsedClassesByObj'(2warg)AG@Dmut wreswres,tcnl,'(Read Only Property)'D  '3|0 0'images'wi'*Create' 'Imagelist'('imagenames'(('oo'wi'windowsdir'),'buttons.bmp'))('imagesize'16 16)h|l| wreswres,tcnl,"Return a list of 2-element vectors (1st=heights, 2nd=widths)"01lx wreswres,tcnl," '>NNN' means an NNN pixels height and redim form with margins"x< Get a far pointer to the memory.<Ph? wi'scale' 5 pixelsdP,'ff'wi'*Create' 'TForm' ,P wreswres,tcnl,"Syntax: 'object'wi'CountryIndex'"1P(X'ff.pp'wi'*value'10'e(tT0 0'ff.ck2'wi'*Create' 'TCheck'('wherelc' '>' '='  100)('*caption' 'APL+Dos')('just' 'right')t  :else $'ff'wi'*Delete'mer$ 4 :endH $Timages122 121 0 0r$  data $ 'ff'wi'*Delete'er$8 S GJQTYUsStuVvW]^XrZRw\xP3 IIIIIIIIIIIIIIIIII012II78III=>?@IIDIIGII CIXT = means: at same vertical or horizontal position as previous controleX2CCAPS C;Nd5:)8>,`9,d   , l $|d doP0' '='  '=')('caption' 'Age')s\\P Represents the vertical and horizontal default gaps separating controls]l\ beQTYUsStWuVv3dd d$%&d)*dd/024456789:;d=@@dddEFddKLddQRSTUddYd\]d_ddbddwP wres'Convert APL text from ANSI order to AV order')PL< GErrorMsg P,tcnl,'YOU ENTERED < ',(N),' >'')L wreswres,tcnl,"- or if object is a control and 'wherelc' has not been specified and has a non pixel 'scale'"Pl wi'*..limitwhere'(2wi'*..where')PD HAJ+Z+1 2wi'TextSize'((~AK)/AI)DD AYV.5(2wi'*..size')+Z-+/AX DD AYU.5(1wi'*..size')+Y-+/AX DD F23+(2F)3wi'*:charwidth'Dl '<>=#.:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 ',0l< P :d xie 7] izeunt(? OutlineBar Argument:(0` sizes336 temp sizes500d Called by the IdsHnd handler0Pl:case'New' constructorP  :select wevent ,:)x`L@8`;   $(  0`X^0?$*xGd+4 l!ԑ" #%$2%&'*(l')h*L+,Xq-./0$G1@2G302,0 GWSize'Shade'00L IDVsplit (S,1IDM)IDM 0L< TFW, 0 0 0 0 pad where vector'LH0. Retrieve toindices from a prior line of takeofff'H@8 E'MS Sans Serif'8 0'ansi'@ @:case'TextSize' $` YZ/Yer$  :selectC $ (D E F)0er$  :case 1 H $ (Z/T[;3])J$ x :case 3 H $ :if 0AXmer$(gg wi'SessionFocus'(@ K3S~( wi'*class')'Check' 'Option's@  :if F $:case'EnumFonts'mer$  :else $ :if 1=wargmer$ < :endH $\ facename0r$  :endH $:case'FileExist'mer$< wresav[,256 256 256 256,1warg]b<Da wres('#'wi'*countries')'#'wi'*country'D_ Z'fmYesNo'wi'*Create' 'TMsgBox'('parent'wself)('text'(H))('title'(wi'apptitle'))('buttons' 'OK')('mode' 'T')'Show'DU error'Check function definition failed'DX Zwcall'W_DestroyFilter'P free the pointer')XP  wreswres,tcnl,"flag: (optional) 0 or 1 [default:0]"P4 always the last created control,T4\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')de'\\0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')](\l8> wreswres,tcnl,"Example: 'ff'wi'CenterControls' 20 'ff.bnOK' 'ff.bnCancel'"4)l@ K3S~( wi'*class')'Check' 'Option'@  (E/G[;2])0  $ :if 0AYmer$  Gsplit G H $  :if'Form'H$ D C2warg $d :endmer$ T :if 0args $t:case'SessionFocus'$@ no prior lines of duct takeoff data'@tX]:)8y%@@[C\ht4 I(wi':FMV') wi'...self'4L ZZ, "class/wcall'GetClassName'h(100tcnul)100"L4 EC wi 'Control2Var'4( :return(D  :end06 :else\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')'m\H4 wreswres,tcnl,"Syntax: 'object'wi'Show'"BH(H :case'< ' (@а C(2Y)+C-AO/AT1]@\ wreswres,tcnl,"gap: distance in pixels to separate controls" \T  wres1/wcall'GetLocaleInfo'C'LOCALE_SLIST'(32' ')32T<H Data  File,Filter,Dir,Ext,Title'<0'ff'wi'title' 'APL+Win v3.6'd[0t :elseZ, :case'?PaintDesktop'PS ,(BUGTRACE RA;T;XXX;TX Х(4DC (2AV)AZAYdI4D =1 Toggles CapLock key and keyboard lignt on0(D0 :andif 7wi'*..style'0L :return 07/20/01L<< Get the extended error if any."'<PL0 wreswres,tcnl,"BMPfilename: name of a bitmap file"PL wres"Syntax: 'object'wi'VT_Variant'type args")LD% 09/01/01IX1wi':*toindices'  IX[1]NEWD:)ܦjd<,x  dඵ S { H쵵d9|+ 4Z (jobfile) xftie jobfile[2]4(E [9] Zwi'Show'(]:)l(8Op TDTO $U $   x(OAh m̠E`< Ask before erasing the users input data<HUT wi '*caption' displayed label captionsHxtaaa'cf'wi'ShowDialog' must be called on a separate line (returns empty matrix if closed by Esc)sxx5$a$da wreswres,tcnl,"NOTE: Same as the control '*where' property but moves" d8a lpTemplateName - Not used.d)8p tFM wi'.ed6.*Create' 'GWLabor' ('wherelc' '=' '>'  '#7 8') ('handlers' 'qty_Handlers')p7"d`b :caselist'TFOne' 'TSpread' 'TGrid' 'TEditList' 'TWebBrowser' d$7Q8b8% 'FIND OUT WHY THIS OCCURRED' (b8< :end rQTYUsStuVvW]^XrZRw\xP3 !!!"#$&&'(),,,-./012CCGIIPVYYYZ[\]^_dekpqw~fECG$L'ff'wi'*Delete''$(T :end (8'ff'wi'*size'(('ff'wi'*size'),300)1"8t'ee'wi'*caption' 'TExcel Object Demo' Now close the Excel window. Don't forget to then use:t = :endH $= nuntie Ter$ = :if F  $= :case'?OnTop'er$ t wreswres/C $ :case'OnTop'mer$ YZr4wR YYYYYYDYY$$&&))YY-YYY2245YY8::;<YYDDDDDDFGYJYYYYQTTUYYYYY NG\ (L M)(2(2warg),0 0)2'#'wi'units' vert and horz adjustments\ lsi[4si;] ;_h wi 'where' ((POSPOS+H1.5),PAD1,(0,PAD-16)+wi 'Draw' ('?Text' id)) hd :continue ...process next object classnd dJInfKDebHfp (H I J K)splitC wi '*where' controls where property valueseenp8  M(1tcnul=M) penclose MH'8 J0 0' ' P  wreswres,tcnl," '' leave unchanged"PL} :end 07/11/01L( :if 1Rr'(:)-d bL0` ,-L ؐ |  9 <` CNOTCNL,'CNO[1] File Identification'<,dX new APL+Win 3.6 Objects ,H0& (C D E F)(wi'GetWorkArea')42'#'wi'units'H\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')ts\|~ SIZEFM wi'.edSize1.*Create' 'GWSize'('wherelc'  70 , S,5) ('caption' ((3V2[NO]),' [9999]')))I|dH wreswres,tcnl,"properties: return documentation for properties only" ddwd (NV[wi':*toindices']) wi'*Focus' Move focus to selected type of ductdxww̫$'ff'wi'Methods'r'$04  into ExportBrandoAnnonceurent0@ OPENFILENAMEOPENFILENAME,wi'D2C'0'.@$c'ff'wi'*Delete'$PX F wi'*dataoldvalue'(F wi'*datavalue')P ԅ:case'aplname' $ :if 1=wargmer$  Fwi'value' $8 :andif H0r$ \ wi'*xRows'G  $| C12warg$  wi'*xCols'H  $ :andif H0r$H error'Check function definition failed'ssH,h, and MG.DateFin is nullD ,,'ff'wi'*Create' 'TForm'C,$'ff'wi'*Delete'$H wreswres,tcnl,"Use: 'object'wi'VV'value"H  wreswres,tcnl,"('*'('*color'255 255 255))('TEdit'('*color'0 255 255)('just' 'left')) ('TCombo'('ChStyle'4 512 8192)('*border'1))" Z~Y'Imagelist' 'TImagelist' 'Menu' 'TFileMenu' 'TFileMenuDef' 'TEditMenu' 'TViewMenu' 'TToolsMenu' 'TGoMenu' 'TWinMenu' 'THelpMenu' 8 ~'Agent'wi'Merlin' '*Play' 'Announce'F8(ct1 ct2' horizontally center this control as well as ct1 and ct2 within form"   :end $TO:)X|X)    D p <`<H`?lOXxX&PO=,O`n 8!(Z"ؠ##P$%Tz&X'(X)*8;+,Q-;./0,12384`56d78|9:;<=D>d?t@[@d ABCD9EF$< GErrorMsg'FIND OUT WHY THIS OCCURRED'<8 R  R, (1+ExtTCNUL)Ext'08( 9'nn'wi'GetLastError'd(l_ (I J)2 2Z to take into account control 3D bordersld= wres'Applies the Redim method and the Center before waiting on the form'dd$ wres"Return ActiveX licenseKey for an ActiveX identified by its classId"d<) R  R, 323 DR 424OPENFILENAME''<$'ff'wi'*Delete'r'$TtIcheck if a file exists (supports long file names and UNC names)sT$ :if 0Q er$$ X,1 0Vmer$$\ Y(V)W$$G 3 = right edge$H  BugMsg '/Invalid duct type . Better fix it'H@Е Convert flags to bits temporarily.'L@@X wi'*:currentcontrol'(Twself)@ :case'XClass' $:case'SetAplNames'r$$ wi'Center'$   :end+ $@ wi'*Show'r$  :else $:case'SmgrHandles'r$$x Designing forms$l wres'Returns the command line which launched APL, including all its parameters'ssl(o'ff'wi'SessionFocus'V(@1 wi ('wherelc' ('=',H1) ('>',H1N),S,0 55)t@4\ The wherelc property for Controls4Pl} AL0 Redim flagPLa I/1+(/V SS ID)/V index to ID's count'Ld  :ELSE  OXR  WW !W'''')//////113466799:;<>>?AABDBIIIIJLWWOPWWWWWWW'W/)I4PL4 4. ccc 1 ccc d4( gg wi'SessionFocus'nd(H0 that did not pass the additional conditional testHd  wreswres,tcnl,"Note: this function may require a lot of space to run"dL@  ZZ, "text/wcall'GetWindowText'h(100tcnul)100"L4Y(1X)[1Y],[IO-0.5]1(1Y)-Y4(  MGIH( XX[X] YFREQ X0  'T=' T( -:)PaDX U| !   ̶ ,HHD$䲿P 34(Hv Find offset for the new intense(red) hi-lighted item.H:)t^) 80]   2 x    dLQ(0 :end left button0 >D QTYUsStuVvW]^XrZRw\xP3 !!!!!!"#$&&CCCC////CC5CCCCCCC>CCACC_th85 nFileExtension - Not used.' 88! Form edges are numbered as follows:.'8x  CC,129 201 145 203 204 205 206 207 208 23 166 211 212 213 214 154 147 217 218 219 220 155 222 170x  Lfn8 $'ff'wi'*Delete'mer$ ( PNF $H'sw'wi'*Delete'mer$ 8  :case'?I2C' $X 'tt'wi'buffer'300r$X z:caselist 107 187 109 189 Handle (+) (-) keys keyboad and Number padXp5'ff'wi'*Create' 'TForm'('*caption' 'The escape property')('escape'0)('*size'300 400)'*Show'd'p8LXmsgmsg,tcnl,'and now the third one.'y8('ff'wi'progress'50 '(  Z(E,'.timer')wi'*Create' 'Timer'('interval'200)('onTimer' "wi'*..color'(wi'*..color')")x CC,90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115x , Znl 3 $L'fmMdi'wi'*Delete'$ p :else $'ff'wi'*Delete'mer$  :endH $̬'ff'wi'*Delete'mer$<L Copied from Eric's Month 14 page 43 JWG;P< " :endH $# (V T)21warg$ <# :else $\# :if 2=wargmer$ # :endH $#:case'VT_Dispatch'r$ l :else $:case'VT_Variant'er$$@9'ff'wi'*Delete'D$<ԅ Run the example with the ExecHelp method:<<lC R1 Return to edit box<L\(0 0'ff.clock'wi'*Create' 'TClock'('wherelc'  '<>'  '')L4( :caselist'TOption' 'TCheck'4(Ȓ :case'TFOne' (( :else( :end0():case'just'HDD wres'Retrieves Errors from Printer Dialogs'TH0L  :if 0Ewi'*font'0| p'(4,'fmInfo'wi'*Delete''((Q'ii'wi'Get' 'install'($S0 0'ff'wi'Show'$A :)hK$dF0NDqy<> h   ȳ   \[Tnx O$L Bl<į8jĮ=4d5t#' vertically center control between previous control and bottom of form" 7] emsX wres'Return the current default WIndows Decimal Separator'01X$| 4 = bottom edge$l wreswres,tcnl," 524288:OFN_EXPLORER - Display Windows Explorer when OFN_ALLOWMULTISELECT enabled."t :)xDeH> d ڻջ4 t0ERROR: NAME,' was not tainted'0\L wres'Make a child control use all its parent form client area').\tZ(DTB si[4si;]) ('wevent=',wevent),('wself=',wself), (' warg=',warg),' wres=' wrestdh wreswres,tcnl,"Syntax: 'object'wi'ChangeStyle'add_or_subtract style'"d8C:)G$ 80<DT[AVD] Uppercase defns0d(?@H!A8B4FCD`EF0GH I JX0 KHiLMNOPQ%R4StTULCVlWĮXȽX` XYZ[4\]^ _s `(abZcddT ef4g0Th,3\Qi jkTl\Qm\;Qn&So\Spd5ql%r(s<tl$(NuMv-wxy,3z%{ |p}FN~|u$ P) \ &$pD'g, e-HOP (-X@ l<n J wi'*where'K L M N<H(  ID(2=SV)/IDV 3/27/00 get full id)HL"0 0'ff.ok'wi'*Create' 'TOKButton'('wherelc'  '<'  )L406 wi'*selection'(0,C)4(ܮ wi'*suppress'0(Y :end0Y:if 0=R0hH :else$h :case'suffix'fm$D :elseif 35=1warg End key handlerDt\:)%%<  %t0N Copyright 1996 APL2000, Inc0<L wi'*color'(0 0 255)(255 255 255)<B:)H@(Cؒh);   | x 2 s \Ե䳶t=u( <_D(9T !|"#`$(%8௶&L'(Гį)*(+dt,4-.@CD/R0123<44q5ź?<@xA?BCDE F0G"HpI8J<KLLMWNOP Q.RSTUVWpXxźYdƺZc[$<Ⱥ\ĺ]`@^pº_$ĺ`adblX cd<e,%f.g(hi`Hjkhlmn$opp|'\qR4rLst=uX|ĺvDºwpxVylzh{|,b}~XliԿ0Kܾ(n0"ذ8TĆ H@ rcwcall'AppendMenu' hs 'MF_STRING' 902 '&Events'H<F wselfA wi'*Create'(A,'_def') F<H\ T4(C wi '*where'),2C wi '*size'BH0 - the validation expressionD0L <Br(QTYuRw31AAA" ""'''''(AA--1113357AA<<<=>?AAA5<L0L graphics to your applications0H Zwcall'keybd_event' 'VK_CONTROL'0'KEYEVENTF_KEYUP'0 H,'Agent'wi'Merlin' '*Hide',`0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')s`( or 'property'value(:) xK0F??dT??@p 0< 7 A\ |? |M L@X h@<4>jEi <jB|j;AP'x(@ؼ(@dA@5AH;4Z-K =!"@ܺ#|~$,%&,1';(|3)Cĸ*X0+B,,-,.@d/~许0~ 1į2P3 44'5&65778395:B;d<34=,5>,?,A@HA,@)BJCTDE]4FPG 0  JH[1;]  H1 0H04h SELF wi'*selection' 4t|;0 0'ff.ed'wi'*Create' 'TMaskEdit'('wherelc' 100  200)('caption' 'Month/Year')('attach' 1 2 3 2)t < :endH $\ :endselectr$  :case'Show' $ :if 0rcmer$ , :else $L wresrcmer$ VYrYVRw> @@@#$%&@@@+-./22345@89:@@@@@@ACMMFGJJJMMMUPRRUUUVWXus))$@.9@FC00 0'ee'wi'*Create' 'TEmail'e0E4x wi'*scale'(wi'*..scale')4, wi'legendpos' 'left' ,,İ wi'legendpos' 'bottom' ,@@'dd'wi'NbDaysInMonths'(200000 200100.+12)@TV :if E if failed...DTBT$X tt;wself$('ff.pp2'wi'*color'255e(8  error'Unknown TCombo command: ',B8$` E'TForm' 'TMDIForm' 'TAboutBox' 'TAPLEdit' 'TAPLSession' 'TChildForm' 'TConferenceExample' 'TCueCard' 'TDebug' 'TDisplay' 'TFormOne' 'TFormEditor' 'TFormEditorTest' 'TInfo' 'TInstall' 'TModalCall' 'T_MyForm' 'TProgressDlg' 'TTip' 'TOutlook' 'TQuestion' 'TPassword'$L select distinct AN_codann=convert(char(5), EE.IdEntite),L4X :if/AT<04( wi'*size'C D(H :else` :else :end0L; UCSTOP 08/02/01Lx(w0 0'ff.pp'wi'*Create' 'TProgress'('wherelc'20 5  200)('attach'1 2 3 2)('caption' 'Reading file...')x8L [1] wself'ff'wi'*Create' 'TForm'8X  sizes 8 10 12 14 18 20 22 24 30 temp sizes for textingX   $ :endmer$  :endH $ GSStoMAT tcnl,G $ :case'onMove' $< FSStoMAT tcnl,F $  :case'onResize' $  GSStoMAT tcnl,G $P :if 0(C2warg)wi'*self' form name1P$|S0 0'ff'wi'Show'$L$ Microsoft Agent 2.0 is delivered in the APL+Win 3.6 CDL4 :continue4( C1(/C' "')C( :else :end0(d*** NEW IN RELEASE 2d(:)<tC]BH](]\ [|[8[ T;[ X \  p\xH\p Z0(ZlZ<Z @D# (SI[1;]) ('WSELF=' WSELF) ('WARG=' WARG)@042wcall'W_Edit' 'TControlClass'0pD  Hwi'*aplname' APL variable name associated with control or 0xp\ Ewi'Children' find all form childrene\8,NAME FNAME APL SPORT SMOKING URL AGE1 8(d'pr'wi'fontunderline'0(dn0 0'ff'wi'*Create' 'TForm'('wherelc'   200 300)('ontop'1)'*Show' 'SessionFocus'd\ wreswres,tcnl,"f: horizontal position adjustment in pixels"d"\P wres(/wcall'GetWindowsDirectory'(144tcnul)144),'\'P  CD/C $  (C D)2warger$ D HD/H $d :endmer$  M0 $ :endmer$ X^ :endH $x^ C(D1D><\D)/Cmer$|'ado'wi'Exec' 'insert into shippers(ShipperID,CompanyName,Phone) values(99,''UPS'',''(503) 555-5555'')'"an|4@ wreswi'*fields'4T 7:QTYUsStuVvW]^XrZRw\xP3 9999#$%99*+,-99999499799 43T0l0 0wi'TDepth'0 0 1 2 2 2 1 g0HH} Cdef"RA N B" "R'B',A,'1(',A,'/),B'"dH`0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')1`P0 wreswres,tcnl,"Author: Franois Gaillard[17jul00]"aPX 0 0wi'.ed1.Create' 'TEdit'('wherelc' 60  )('caption' 'Name')sX8 AN_addann=substring(' ', 1, 96),g18d\ Systax: GDataMouseHnd called by data_Handlers and equip_Handlers 07/15/01~d:)܅) } ~iP8 xm m 74m m 7m Ll ,lzl@4l7H 0hTtexta,(1+textb' ')textb04 'tempform'wi'Delete'.4($ 'pp'wi'AddOption' '-'(@0:)HC]5ȏXܒ -TX _ m쉻 H    b<  hd  Ժ׺dyH $׺k4ֺkH׺* |ֺ, t_ٺRӺ hպ!H"#4$պ$Ժ%|&lӺ&<&T'P[LӺ'$Ӻ'>NNN' means an NNN pixels height and redim form with no margins"] |  :endH $0 :endmer$ T :case'?VT' $t :endmer$ ̸ :case'VT' $ C2warger$`tRTrap;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;2;3;4;5;6;7;MATRIFY;MATIOTA;MATRIFYOBJ;MATIOTAOBJ;TRAP;elx,,0 0'ftp'wi'login' '...' , :)x"@P$pZx  Z  0 B Z$EXXLpE8|?x;@-A$FB8C(DREhFFGdDHIXJ\wKLL|5MN`O`PhQlJROSTpUkVMWLX\BYKZX[4\]0^_|Y`a8 <L Increment/decrement item's count<x4w CC,123 124 255 126 127 128 30 29 232 231 7 27 25 26 244 243 235 230 150 152 153 242 20 146 237 31x  :return $'rr'wi'keyties'mer$   :endif $,'rr'wi'CloseKeys'r$ w R''  $w'rr'wi'*Delete'mer$080 0'ado'wi'*Create' 'TADO'nse0 `='ff'wi'Show'3 $ tt;Z;wself$8 StyleSheet1 is defined as follows:ve8( :if 20 0'ff'wi'SessionFocus' ,h(e :caselist'TCombo' 'TComboFilter' 'TComboDrive' 'TEdit' 'TRichEdit' 'TEditList'hxu wresF transmit error message to ExitError through wargx L :else $L'open'wi'*Delete'r$ L :endH $L'ff'wi'*Delete'mer$ D :endH $d'ff'wi'*Delete'mer$`P Z/wcall'GetPrivateProfileString' 'Install' 'Dir' ''(512' ')512 C` Z'fmYesNo'wi'*Create' 'TMsgBox'('parent'wself)('text' 'Please enter a value in this field')('title'(wi'apptitle'))('buttons' 'OK')('mode' 'T')'Show'4  wi'*...suppress'149 GN rR MMMMMMM;#$%&'(MMMMM;;MMM;;;;;;;=C?@CCCEMMHIJKMM  /4M@=IE(0j'ii'wi'Get' 'install'(|" checkcheck, '(COUNTRY"France")^(AGE<25)AGE>60' '"Age must be between 25 and 60 for French!"' 'ff.ed5'achxx0 0'ff'wi'*Create' 'TForm'('*caption' 'TFileMenu Example')('*size'300 400)('handlers' 'ff_Handlers'))xp0 0'ff.address'wi'*Create' 'TEdit'('wherelc' '>' '='  400)('caption' 'Address') ('attach'1 2 3 2) ('multiple'1)eeT wres"Return the Windows directory (read-only property)"rTP ZZ, " info(handle) (dialog id) (class) (caption)"fP@< Check new default indices before saving.'@4| 0 0wi'.ed1.aplname' 'NAME'dN4$Xwcall'W_Edit' 'ff'$Q %& ""#%%Td4 Pwcall'W_CreateFilter'('EnumChildWindows' 'RRHookwarg') T0' :if 'SIZE1'wi'aplname' F0\:)¿( ̛<TĮ@ E lC $| ̥4 `  t@LĶyL6=(?(@3 AtB`Cd D`E8FAG$HԁI.JLĉK`(LhW|M)4NX]싸O8P8L䇸QDR8WxS$TT] UHV؎W uX؁YZVd[4l\U ]T^`T_0T܃`SaHbStcTdhRe|f{gR|hQX|i8}jpQ}k~lF}m0P~nPP~oD0p|~qNrMxsXMtLu|vv8o4vwx7wxHwy|vz{(8|H-w}xy~lTz0qKqIq( &  {hKs`\nh|o$kh`hPhd=Di"e 0N Z'fmBm'wi'*Delete'0 :return0]dP :if wresHwcall'W_Const' 'INVALID_HANDLE_VALUE' is it a valid handleedXj renamed and edited (combined) qty_Handlers0814 & size_Handlers0814X8  P ('<',(R[1]),'>'),' ',R[2]8x0 0'ff'wi'*Create' 'TProgressDlg'('*caption' 'TProgressDlg Example')('ontop'1)'Show' 'SessionFocus'xX We need only to change their horizontal position and keep all other'XxD0 0'ff.ff.edRows'wi'*Create' 'TEdit'('wherelc' '=' '>' 75 0 45)('caption' 'Rows:')('attach'1 2 3 2)x< how to create, maintain and exploit forms<L8 :if 0=+/2wi'..*idparams' no items selectedLL8F wreswres,tcnl,"Syntax: 'object'wi'ShowDemo'"ceLH\ Rwcall'W_Mem'((wcall'GetCommandLine')0 255)HPB wres'Boolean may be specifid to free memory'1PPԒ wres'Returns (DEVMODE DEVNAMES) for default printer'1Pp0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')('*text' 'Lescasse')11p0d D wi'*enabled'CED0<'ff' 'f1' 'f2' 'f3' 'f4' 'f5'wi '*Delete'<00 0'ff.ed4'wi'attach'1 2 3 20('rr'wi'EnumKeys'aaa'd( V:case'KeyDown' Ĝ|:)0)1\l:17d<   hi   8 ( 04P$,H |.pdMTTȤ` t!".#$%$&{'()L.*+4,Ԫ-./0d 123<$4 56D878A|0E :andif ~vi texta,textb0| BF+/BF minimum width for each line containing centered controls[3]| Ԫ (1wres)0 $'fmYesNo'wi'Show'r$  :case'?C2W' $8'fmYesNo'wi'Show'r$  :case'C2W' $<'fmYesNo'wi'Show'r$x( CC,159 254 249 250 233 238 234 16 14 33 225 239 4 176 227 252 24 169 193 194 195 196 143 198 199x  :endH $8'ff'wi'*Delete'mer$ \ io0  $|'ff'wi'*Delete'mer$  (0P)Lfn4 $'ff'wi'*Delete'mer$@ :)4x`^@4@# Create a new empty hvac jobfile4 453 4 444444!44$%&444444./0124444p8 [7] wself'ff.bnRetry'wi'*Create' 'TButton'('wherelc' '>' '='  )('*caption' 'Retry')01sp,x> The TForm gaps property ,' :endP R'' caret not inside of an item stringP  :endH $ :endmer$  DCH $  :endmer$ 0 :case 1 $P :endmer$  :case 2 $ :ender$d|o Hwcall'FindFirstFile'(2warg) get handle (ignore structure)d dP wres'Enumerate fonts or fonts containing 'PXs0 0'ff.wb'wi'*Create' 'TWebBrowser'('wherelc'  '>ff.ss' '>ff.ok')rX@ff.bnOk ff.bnRetry ff.bnCancel'  )t  :else $'ff'wi'*Delete'mer$  :endH $ 'ff.ok'wi'*Focus'$ HL :endH $hL'ff'wi'*Delete'mer$, 0 0'ff'wi'SessionFocus' ,$ control top edge$x=0 0'ff'wi'*Create' 'TForm'('*caption' 'TEditMenu Example')('*size'300 400)('handlers' 'ff_Handlers')x8'dd'wi'MonthsAdd'(199912 200001)(1 12)8(E'pr'wi'fontitalic'0'(d#tcff -------------------------------------------------------------------------g]d` IH'wevent,'' on '',wself,',H describe event and object`d active1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0/(162)323dr oldmode[40+4]dP wreswres,tcnl,"add_or_subtract: 0=subtract, 1=add"PLT; wreswres,tcnl,"Syntax: 'object'wi'Methods'"eL0\Q0 0'ff.cc'wi'attach'3 2 3 2R0|0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '=' '<>ff.bnOk ff.bnRetry ff.bnCancel'   0 20)|< E'MS Sans Serif'8 0'ansi'<D :caselist'TProgress' 'TScroll' 'TTrackbar'D$J Twi'..*self'$\_ wres1 can close by defaulty'\x?0 0'ff.spin1'wi'*Create' 'TSpinner'('wherelc' 200  20)('caption' 'Age')('handlers' 'ff_Handlers')x8 Right justifying controls on a form1'80 0 0wi'.ed5.aplname' 'AGE'0\ 0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)n\  NwSRY  !BB&&'()*+,-BB23456789BBB=??BBBEEFGaaaaaaaaaaaaaaaaaaaaaaaaaabddefgh~jklnop~~tu~~yz~~~~{{m #/&B2rnt00 0'ff.ff.edCols'wi'*Create' 'TEdit'('wherelc' '>' '=' 75)('caption' 'Cols:')('attach'1 2 1 2)t  TC'"' $ :endmer$  :if F  $ :case'?Objects'$ <1 wreswres/C $\1 :case'Objects'r$8h Click on a non-hi-lighted keyward.8 ,:end 37rwtXV[%, '!"'''''))+66//0123466,/+4HZDebugTrace 07/11/01 TEMP4(  Right click on image(H`e wreswres,tcnl,"Syntax: 'object'wi'Show'"'H(r :case'<>L'(@! Zwcall'SetFocus'('#'wi'hwndmain')lle@Dat wres'Returns focus to the APL session'D@H5wself(FDUCT,'.l5') wi'*Create' 'TLabel't@0v 0 0wi'.ed5.aplname' 'AGE'0, Find out its properties ,X sizes 16 24 36 38 40 48 50 58 60 temp sizes for testingX 0  :andif V=1 H $P  FSStoMAT tcnl,F $ t  :if 0NN+D-R $  :if 1=wargmer$   :andif W=2 H $  :if 1=wargmer$  :if 0MM+C-Q $  :if 1=wargmer$01 Centering a form on a forme'00XF it more attractive and living00CAD1 (1C)wi'*where'0`ataL' An object to copy and paste to/from the Windows clipboardL4 ( wi'*aplname'(C2warg)4(@( GGO( :elseh( :end0  :return <tJ'ff.bnCancel'wi'wherelc' '' '<' '' '''<, 0 0wi'.ed1.must' '' ,Px( wres'charI2C int -- Convert integers to character')P(C'pr'wi'fontunderline'1($Xc0 0'ff'wi'Show'=$8 Enter new data in the form controlsT'8( Open a registry key2(dR Create a form centered in the screen but of 100 pixels high and half screen widthd4 ]demo ConferenceExample6]4('nn'wi'GetConnections'(0d 0 0wi'.ed5.aplname' 'AGE'0(gg wi'SessionFocus'(\Y check '(COUNTRY"USA")^(AGE<30)AGE>55' '"Age must be between 30 and 55 for Americans!"' 'ff.ed5'opex8 wres'Displays APL Help for the current control if an "aplhelpfile" is defined for the form' xtwself'fmMdi.tBar1'wi'*Create' 'TToolBar'('buttons'1 2 3 0 18 0 9 10 0 11 12 0 5 6 7 0 28 0 1003)t 1 P''  $1 :case'?Packws'r$ 1 W1warg H $1 :case'Packws'er$  Hwi'*hwnd'  $ :else r$p U^ ]]]]] ""#$&&(]]]..00336688]];@@@@@ACCFFPIPLMPPPCRSTUVXXYZ]]]X~RF$'ff'wi'*Delete'$0p~'ado'wi'Columns' 'shippers'e'0('nn'wi'GetConnections'(Lt wreswres,tcnl,"Syntax: 'object'wi'Nread'file"LLh wi'*selection' SEL 07/20/01Ld< HD(GE1)D eliminate up to :case'Action'rsdP` wreswres,tcnl,"b: horizontal position in pixels"}PHP@ (1rc)(+/1163 323 dr(1rc)[36+4])1rcH4:)h($,pd   . 0e   $dXH84(8e;X !;"# $%&`5'Ї0  wi'*columndisplay'C0$]'ff'wi'*Delete'$L` The following example uses a Microsoft Access 97 databaseL4 :if/AT<04( :if AU(H :end:select AR, M5@ which is a label associated with the control @4 Active Data Objects technology74\'ee'wi'Formula'(('ee'wi'CountryIndex')'=sum(C3:C7)' '=somme(C3:C7)' '')\0 0'ff.ed5'wi'*Create' 'TEdit'('wherelc' '=' '>'  94 0 '>Zip')('caption' 'Zip')('attach'3 4 3 4)('type' 'positiveinteger')('*limit'5)0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '=' '>'  100 0 '>First Name')('caption' 'First Name')('attach'3 2 3 2)(h'ff.pp2'wi'*value'50e(lp@ wreswres,tcnl,"vcenterboolean: a boolean (1=center form vertically in screen)"ld wreswres,tcnl,"columns: columns of '#'wi'xclasses' to be extracted"dX wreswres,tcnl,"Syntax: 'object'wi'EnumFonts'{facename}'"1XXm wreswres,tcnl,"Syntax: 'object'wi'DocClass' classname'"'aX< wi'*owner'(C wi'*hwnd')<,w and MG.TopSupLog = 'N' ,P\data(4/'France' 'Germany' 'UK'),[1.5](122/'Gold' 'Silver')P0 0'ff.ff.lab'wi'*Create' 'TLabel'('*where'(2 2,3 1+'ff.ff'wi'*size'))('*color'128 128 128)('*caption' '')Ї0 0'ftp'wi'*Create' 'TFTP'('domain' 'www.lescasse.com')('localfile' 'd:\aplwin\objects\nwind.mdb')('remotefile' '/ftp/lescasse/nwind.mdb')('debug'0)L wreswres,tcnl,"matrix[;2]  window captions"e'LL  User press home key in an empty edit box. He must.'L8 P BEEP 07/23/018` AFP5VTRQY6s]^7w   !"#$%&'(,,,,-.0177777789:<<=>?@ABEEE70`8V0,('ee'wi'to' 'eric@lescasse.com'00+ Data Validation (continued)e0\ wreswres,tcnl,"Example: 'ff.ss'wi'XClassLicense' 'Formula'")e\\v wreswres,tcnl,"Example: 'form'wi'StyleSheet' 'StyleSheet1'"wn\< Break parameter vector into components.he<be:)b$l,p ( # ' t |;l@LГt*|XP`lp?̦?|@A B CܜD|EFGHwIĖJ KTL2MNHOyPL{QR STT^U{VWDX8XYLZ?[]\5]p^^_0 `(6ahb$cLYd`ef%gh'h@GhijkDZlmgnEopHqqWr ssssDtu(bvwwwxy<`z{p|P}~8p@(td'<8 File data or signal and error<tN AQ0 0 flag indicating if >> used for height and widtht d HL+.5F-J H $ :ender$ :case'CenterOn' $ :if 1=Dmer$ aaa' '=bbb' 2000 0)DD'pr'wi'color'(255 255 255)(0 0 0)(128 128 128)1DD'pp'wi'Load'((wi'installdir'), '\aplwin95.ppt')D('ee'wi'Range' 'B2:G8'(\ CenterSize 320 620 center the form & size it\d|J ED wi'events' all possible events on object?d?$J00 0'ff.ed2'wi'attach'1 2 3 20 ( S3 $H :if~0H mer$ l :else $ :case'TGrid'mer$ P S0 $Q :if~0H mer$X :end LES9feb01 addedX$ :endmer$$ :if 0args$$P :case'?Wait'mer$P< wreswres,tcnl,"Syntax: 'object'wi'CheckClose'"P@ C1 168 168 187 171 169 133 8 9 10 11 156 13 14 157 182 230 231 237 145 250 243 209 191 135 136 134 28 QS ^RHO IIIIIII"#&&()*+...012III78II=>?@ABIIEFGIIJKLMNPPQR IIE#5&:7I>HT reset edit box vars for GMarkIds.H@ Check for OFN_ALLOWMULTISELECT flaga'@X4* D(/(wcall'CharUpper'(2warg))wcall'CharUpper'(C[;2]))C.X(@'ee'wi'HAlign' 'right'((  wi'*suppress'0( BEfi'0',1BB penclose(8(BD/C)wi '*wherelc')[;6] horizontal adjustments for each matrix BCBB penclose[1](BDT)[BG;] vector of matrices for groups of centered controls wherelc propertiesD T4(C wi '*where'),2C wi '*size'DXc wres1 Suppress Windows's default caret move 07/12/01XdX fpwcall'W_CreateFilter'filter {*:error (^\dmtcnl)/dm}d;CC+S+T "# """"""" "" '@\b Clear and reset material areans@ 0|:)Pth tlK\|4@ ROWS3 maximum numbers of rows.4DEDAC-F8|@ A TOpenFile B -- TOpenFile Object,B8,'Agent'wi'Merlin' 'Show'',tpG BBBA1,1BA partition vector for groups of centered controls~t  ctio0  $ JSStoMAT tcnl,J $  ZdefZH $ :if~0H mer$ ` R0 4 '' $ :if 0J er$\0K wreswres,tcnl,"Returns a nested vector of character vectors"00"\,i A more complex exampleJ ,\ H "RL X X;C;D;E;G;H;I;J;V;Z;hookfn;elx;io;wself",,';',L[;1]\ d :else $ :if C r$  :endH $ :if M r$ t :else $ :case'?Show'mer$@4 OPENFILENAMEOPENFILENAME,wi'D2C'0lfC@> dlgprint(A wi( 'I2C'),0 0 0 0 0,wcall'W_Const' 'PD_RETURNDEFAULT'),(A wi'W2C'1 1 0 0 1),A wi( 'I2C'),80@P`'ff.spin1'wi'*Set'('range'0 200)('value'123)?@0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' 60  200)('caption' 'City')('attach'1 4 3 4)('StyleSheet' 'StyleSheet1')0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '=' '>'  100 0 '>First Name')('caption' 'First Name')('attach'3 2 3 2)('StyleSheet' 'StyleSheet1')('just' 'right')X$ idparams[4] nested array of matching item descriptionsXZ'fmInfoMsg'wi'*Create' 'TMsgBox'('text' msg)('title' (wi'apptitle') )('buttons' 'OK')('mode' 'T') ('icon' '!')'Show' `2 :if K if TOKButton was clickediev`$L C2warger$$ J/FF^Er$$T :endmer$4gg wi'*onCellClick' 'ShowEvent')4(P :case'=LL' (XDD wreswres,tcnl,"Syntax: 'object'wi'ControlFromAplname'"/01XX wres"Returns the name of a control having a given 'aplname'"1X<T& TForm is one of the "APL+Win 3.6 Objects"<,č Getting Help (continued) ,@ OPENFILENAMEOPENFILENAME,wi'W2C'0f)@( wi'borderstyle'1((l& APL+Win application(X wreswres,tcnl,"Note: any window with no caption is omitted"X HH, ":if 0wi'*modified'" remove leading and trailing blanks only if modified property is 0L8 ZZ, " info(handle) (dialog id) (class) (caption)"L$GRAY192 192 192'r$4w WI'*text' (texta,textb)'4( :for I :inC(, P[2] SV( :select F(` GInfoMsg '<',TEXT,'>',P,'FOR <',CLASS,'> TAKEOFF DATA' 07/24/01Si`  wresD $ F2warger$$L :while H0r$$ :case'TextSize'$p(6 GMarkID ID Move to last items: set variablespd ED wi'events' all possible events on objectd(<X0 0'ff.ed5'wi'*Create' 'TEdit'('wherelc' '=' '>'  94 0 '>Zip')('caption' 'Zip')('attach'3 4 3 4)('type' 'positiveinteger')('*limit'5)D (C D)2(1warg), E'MS Sans Serif'8 0'ansi'D wi'*suppress'(>AZ0AX,AY) do not suppress onResize if form contains at least a centered controle'$T/'ff'wi'?Document'$P6 :for j :in I2 Second row of framestPXL :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass''XH The 2 buttons are now attached to the form right edgeH( :end  VQTYUsStuVvW]^XrZRw\xP3 s %&'-.4:;<=CHINQUX\byefghjllmnppqx{v00 :caselist'parent' 'Parent'0( gg wi'Join'11 4 2 2(@~H5Nwself(FDUCT,'.l5N') wi'*Create' 'TLabel'@44 List of all APL+Win 3.6 Objectsd4( gg wi'Join'2 3 1 3e(Hܫ ZZ, ':if 0=treewi"*children"  tree, wself'?HL (AG AH AB AC)AD AE AD AE'#'wi'workarea'tLlt[ '<>=#LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL9999999999 'ld wres"Returns the names of all APL+Win 3.5 Classes used by a given class"dt:endselectY:)0`$0PP<[    ` xX,0px file  Default filename0@ wherelc first 2 arguments for TForm objectss)@4 S The attach property (continued)se40" Get a file from an FTP Server0P@J wreswres,tcnl,"Syntax: 'object'wi'ListSeparator'"Pdt wreswres,tcnl," '=object' means same width as control object"d)h<,@ R  R, 2323 DR 452OPENFILENAME<,dConferenceExample6;checks ,X`F error'Formula One OCX not present on this computer!'xxXP wreswres,tcnl,"Syntax: int'object'wi'C2I'chars"G)P<L(wi'modalresult')NAME FNAME AGE COUNTRY'<,p<0 0'gg'wi'SessionFocus' ,Tt settings PRIOR to the mouse click. Therefor the resultrTPt wreswres,tcnl,"'ff'wi'*Create' 'TForm' 'DemoShow'"P<̢0 Remove comment to stop displaypr<$@'ff'wi'*Delete'$H Swi'..TextSize' 'MATERIAL' allow for)H R[  :)S(Q>PڵHڵHյ ص l׵ 4. 3. FG/ductboard4Li wreswres,tcnl,'matrix[;1]  window handles'e'L` :elseV@( :if 1ff.bnOk ff.bnRetry ff.bnCancel'  )t > :else $>'ff'wi'*Delete'mer$ ? wresZ $4?'pp'wi'NbSlides'er$ , :case'?D2C' $,'pp'wi'Previous'er$P wi 'onMouseDown' (D,'''Op.onMouseDown''')'P(f wi'OutlineBar'1d($0 0'ff'wi'Show'%$46 0 0wi'.ed5.type' 'integer'''4('pr'wi'fontitalic'1'($ ;<;;;#;;;;*;;;;1;;;;;;;;' $(H'ff.re1'wi'Find' 'APL'(PF wreswres,tcnl,"Syntax: 'object'wi'Properties'"0)Pd wi'*selection' (01 0+SEL) 07/14/01 Move caret one space leftdPKdKxKKKKDܱ KPQTYUsStuVvW]^XrZRw\xP3 OO"OOOO*+OO033456OOOO=>OOCOOOOOJOOMOO ( ,'fmInfo'wi'caption' ''((g0 0wi'Spread' ''mat(,K0 0'ff'wi'SessionFocus' ,< was closed through a TOKButton clickedt.n<, Supported data types are:,<Dn Using all the remaining space in a formH<,n0 0'ff'wi'SessionFocus' ,@8 OPENFILENAMEOPENFILENAME,wi'D2C'0lf0@$8'ff'wi'*Delete'J$0( A< (K L)wi'*xRows' '*xCols'J <|r SIZEFM wi'.edSize1.*Create' 'GWSize'('wherelc'  70 , S, 5) ('caption' ((3V2[NO]),' [9999]'))|[ wreswres,tcnl," '#<' horizontally center control between left of form and previous control"(P wreswres,tcnl,"Syntax: 'object'wi'SessionFocus'"PL wreswres,tcnl,"Here are the existing types:"ms'L8msg'This is the first message line'rs8(m'ff.st.pp'wi'*value'30(dDtcff -------------------------------------------------------------------------ne'dt tFM wi'.ed2.*Create' 'GWDesc' ('wherelc' '=' '>'  '&30 30') ('handlers' 'qty_Handlers')tdP :if 0opts(opts[;1]active)opts Eliminate unsupported optionsdL :else 07/10/01LHD wreswres,tcnl,"FILE_ATTRIBUTE_NORMAL128"')H(6[1]'oo'wi'EnumFonts'(|8 C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36ata|  D Q-F+T+XH $@erase'mat par' mer$ d wi':Redim'  $ 'ff'wi'*Delete'er$ t  :endH $ 'help'wi'*Delete'r$40 DESC wi '*onKeyUp' 'GDescHnd'4y[maD CFE  !"&&&***--./0123457<<<<@@@CCEE0EDxZ0 0'ff.pic'wi'*Create' 'TPicture'('bitmap' 'skating.bmp')'AdjustSize'('wherelc'5 5)('attach'1 2 3 4)x4 For the 2 first wherelc arguments4t\0 0'ff.op3'wi'*Create' 'TOption'('wherelc' '>'215  80)('*caption' 'Option 3')('just' 'right')datt\ H((~G)/C)~' ' column id starting cell\x`m0 0'ff'wi'*Create' 'TForm'('*caption' 'TViewMenu Example')('*size'408 620)('handlers' 'ff_Handlers')ext< In that case, the Style Sheet function or variable must indicate styles for each concerned classt  start: $ :case'?Nread'er$  :if 1Z $( :case'Nread'mer$ <= 0 $\= C2warger$ NTYUtsStvVXw5v uR &SS''''''''''''))*+-./082348889;>>@@BCDFF9HIKSMSSSSSFCMK> Pp wreswres,tcnl," '' leave unchanged"Pdl HH, " :if 0D  R0  :end" allow empty input in any casedH( wres'Reads an entire file as a native file'NH0@# (G H I J)wi'*where'E0p#en'(YesNo'Do you like OOP?'(h KN TRY343 ''MM""''''6666666666366689:;MM?DBDDEFGIMMMM4?8MIx wreswres,tcnl," '<>' means vertically center control in the form or frame"t'xd z[;1]split rc plug LOGFONTs back into result dT :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'T0xp'ee'wi'host' 'mail.easynet.fr'0Hl wreswres,tcnl," handle of the form, or")H9:)x6؊    d | dXDTTv <pLLЙ  X+, l! "d#X$=%&6&e&e'  4 empty file. Erase it4L`:)(`L0P V2V2,(i) wi '*children'0 EAG+.5AB-AG $ typeargs0$ FAH+.5AC-AH $  wi'Center'$ GCAG+.5AB-AG+E $H:case'WhwndOwner'er$<x, 8. Sub-contracts {future};A;<   :case'?A2R' $ 'ff'wi'*Delete'mer$   :case'A2R' $!'ff'wi'*Delete'mer$ @! DD~'$' $`!'ii'wi'sections'r$ H9 :endH $h9'ii'wi'sections'r$8 '<>ff.bnOk ff.bnRetry ff.bnCancel'/D80Ȏ0 0'ftp'wi'password' '...'e0( :end (<L1@ F(2F)2wi'*:charwidth'@x4 wreswres,tcnl," if '=control', means vertically align label with specified control"tx0@ The TForm margins property 90@lH2NWSELF(FDUCT,'.l2N') wi'*Create' 'TLabel'@0l0 0'dd'wi'*Create' 'TDates'E0| C1 168 168 187 171 169 133 8 9 10 11 156 13 14 157 182 230 231 237 145 250 243 209 191 135 136 134 28 | 9 wresZ $9'ii'wi'*Delete'mer$ 9 wresR $9'ff'wi'*Delete'mer$ S :else $S'ff'wi'*Delete'mer$HX x OR3\  ###$%&)))++,00022555888;;;>>>AAADDDGGGHMKMM,OQQ6xHr wreswres,tcnl,' newmode[;2] Current Value'H080 0'ff'wi'*Create' 'TForm'3g00H0 0'ff'wi'*Create' 'TForm'AW0hg E~0DC wi '*aplname' find which children have an aplnameh l :endn' $xD :endmer$ D :return $D wi'*nomargin'1 r$$E wi'*nomargin'1 r$ DTAGGEDBLUE RED $`h AYAX wi'*where' $d E(( F'Property: '),D,tcnl),(wi'?',1D), 'hh'wi wi'class'--d8 nVer4256wcall'GetVersion'28p0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '=ff.ed1' '>'  '=' 0 '>10+Age')('caption' 'Age')ls?pP  wres323 dr 842wcall'GetObject'H 24(24tcnul)yP0h 0 0wi'.ed5.aplname' 'AGE'0t< wreswres,tcnl,'function): a LOGFONT structure, a TEXTMETRIC structure, font type, 0'slt ) code2000042035 69500043 1960121213 612141548 574982438 39684454 307071334 411078 476614 1459654 1525190 4573030 949616624 1052741 541443942 1201274880 1425997825 1201265116 1425997826 2112936412 126 280006 440422 639915263 7111183 1300955136 1956715768 141882243 2260355 2655247 15204352 1526726656 954127 1014824960 1869574045 42682 686526464 17417089 1497759744 1879048192 981263637 45639184 609550080 528617254 2097152000 1435177197 475892504 264387244 387 492120320 47347 998047744 661929174 440 1191974144 1 16838891 84148994 151521030 218893066 286265102 353637138 421009174 488381210 555753246 623125282 690497318 757869354 825241390 892613426 959985462 1027357498 1631600446 1701077858 1768449894 1835821930 1903193966 1970566002 2037938038 1566333818 1633705822 1701077858 1768449894 1835821930 1903193966 1970566002 2037938038 2105310074 2121826434 2054913150 1987541114 1920169078 1853714556 1785425006 1801939050 1650680959 1583308898 1532714078 50462976 117835012 185207048 252579084 319951120 387323156 454695192 522067228 589439264 656811300 724183336 791555372 858927408 926299444 993671480 1061043516 1128415552 1195787588 1263159624 1330531660 1397903696 1465275732 1532647768 1600019804 1128415584 1195787588 1263159624 1330531660 1397903696 1465275732 2069518680 2138996092 2087675264 2138667634 1953855096 1886483060 1819111024 1751738983 1684366952 1616994916 1549622880 42405xK :if 1=wi':*cot' added check 08/03/01 P'IS NOT A VALID SIZE',TCNL {x S :endH $S'ff'wi'*Delete'mer$ T :endH $4T'ff'wi'*Delete'mer$  MY[1]-S+Y[3] $'fmMdi'wi'ontop'0$ MQP5VTRQY6s]^7w $$$$$*'(**+,./01237777BBBBBBBBBBBCDEGGHIJKLNNPP5] rix0 0'ff'wi'*onMouseDown' "(2^.=warg[3 4])/""'pp'wi( 'position'),2warg  'pp'wi'Popup' 'ff'"""0x0hC0 0'ff'wi'*Create' 'TForm'+F0X sizes 16 24 36 38 40 48 50 58 60 temp sizes for testingX ^ RwresH $^ C('"'=C)Cmer$ ^:case'onDelete' $_ :if 1=wargmer$ $_:case'onExit' $D_ :elseer$ P :endH $p :endmer$,h@0 0'ff'wi'SessionFocus' ,$ܭ'ff'wi'*Delete'$0x0 0'ff.ss'wi'attach'1 4 3 4de0('ii'wi'Get' 'install'(X^:elseif ~/9 13 39=1warg added 39 right arrow 07/24/01X$k :if 1sizesmer$$Xk :elseif Tsizes$ |k:for i :in V4 $k:elseif 4001=IDNOer$ :for i :in V5 $ :ender$ NQQTYUsStuVvW]^XrZRw\xP3 PPP PPP%PPPPPPPPPPPPPP789PP>?PPPDEFGPPKPPNPP JP0| :if X=3 0$?0 0'ff'wi'Show''$ DonTimer $ho I5+wi':*cot'$ oonOpen $o:if 0wi':*FMV' r$ HoonClose $o 'FIND THIS BUG'$ ( :return $j CLASS'OVAL'mer$x[ hndUrlwcall'InternetOpenUrl'hndOpen'http://www.lescasse.com' 0(67108864+4194304)0x$Tc'ff'wi'*Delete's'$<8  7. Pipe {future}< q AYAY+0,+\AX $r0 0wi'GridLines'0$ (rC P-E+T+WH $Hr0 0wi'Flow' ''par$ lr AW(AX' ') AX $r0 0wi'Style' 'H6'$  AYAY+0,+\AX $0 0wi'GridLines'1$HM Zwcall'W_Ini' '[Call]PaintDesktop=B(H)' DH(< :end (P b wres(wi'Doc' 'Methods'),wi'Doc' 'Properties'etPL7 Zwcall'W_Ini'('~[Call]DllRegisterServer',name)lidL(T'fmYesNo'wi'*Delete'(H4 wself(D,'.se')wi'*Create' 'TSelector'leHx0 0'ff.cb1'wi'*Create' 'TCombo'('wherelc' '>ff.ed4' '='  '>')('caption' 'Combo')('attach'3 4 3 4)x80 0'ff'wi'*Set' 'Show' 'SessionFocus'8@H2wself(FDUCT,'.l2')wi'*Create' 'TLabel't'@X,t0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '>'   0 50)X8M'Agent'wi'Merlin' '*Play' 'Idle1_1'018(J Close all open keyse(|  wreswres,tcnl,"right: 1 if attached to parent left edge, 3 if attached to parent right edge"*|(LHV1 V2 V3 V4 V5 T(L<< wres'Eenumerate the children of a given window'0LL Suppess Shift-17 Ctrl-17 Atl-18 Pause-19 CapsLock-20Lpf -2 r11 #%11))...../11#)4@ :if RGMoveKwLight texta,textb4T wres'Return the current default Windows List Separator'sT('pf'wi'Get' 'Ctrl+F8'(P name(1+name'.')name(/(name='\')/name)namepathPX` 0 0wi'.ed1.Create' 'TEdit'('wherelc' 60  )('caption' 'Name')dXL wres'#'wi'VT'V T set typeL4p G(-+/^\G=' ')G4( wi'*text'C(:endselect̮ R0( a right mouse click(d wres"Adjust container (form or frame) size to the controls it contains"d| wreswres,tcnl," '<>otherform' for a form means: center the form horizontally on otherform"|  R0H $ wreshMem$ < :endH $\ D1wargr$  wresR $ ZZ,Rr$@  means: Center (vertically or horizontally)'@H  Zwcall'keybd_event' 'VK_MENU'0'KEYEVENTF_KEYUP'0 'xdH(erase'aaa bbb ccc' '(<*wself'ff'wi'*Create' 'T_MyForm' 'Wait'n<,Y0 0'ff'wi'SessionFocus' ,4C 0 0wi'.ed4.aplname' 'COUNTRY'4(Ȧ'rr'wi'EnumValues'aaad($0 0'ff'wi'*Show'$('odbc'wi'DataSources'e(|[ wreswres,tcnl,"missingvalue: the value which is considered as missing data for this control"y|t>0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '=' '<>ff.bnOk ff.bnRetry ff.bnCancel'  )t  :endH $'pf'wi'*Delete'mer$ ̧ CC1 $0 0'ff'wi'Show'er$ JJJJDEJJHJJ ,L D(C ss "wi'*Create''T")C ss "WI'*Create''T"LH  F(G'abcdefghijklmnopqrstuvwxyz')/F 'HHTt E16(( 6' '),(Etcnl) E),tcnlaGH, AN_codpay=E.IdPays, ,:)00lHK4|H* 4 4  Ln 4 HGA,4<XO process option or check box<48 :elseif 'SIZE2'wi'aplname'4h$ (F G)(2P)(2'#'wi'units')*~Q size of master control')hd; Rwi':ss.New'(A[C;2]) create Formula One OCX instanced4( For the last 2 wherelc argumentse4H( wreswres,tcnl,"FILE_ATTRIBUTE_READONLY1"HL  This new object lets you Edit an APL variable or functionL4| (IU)K L M Nf4( wres(\C='\')/C(  :else :end|| NN, 'B(Z(,(<\/si=''*'')si)~''* '')B' if from function, cut name & line number|T A TMsgBox object is a Message Box object useful for displayingzTDz'ff.ed'wi'*text' '01/1999' initialize controlDwself'fmMdi.mHelp'wi'*Create' 'THelpMenu'('options' 'default')('abouticon' 'aplwin.ico')('abouttext' 'Copyright 1999 Eric Lescasse')('tipsfile'(('oo'wi'installdir'),'tips.sf'))('helpfile'(('oo'wi'apldir'),'aplgui.hlp'))'`0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')s`XL uxQTYUsStuVvW]^XrZRw\xP3wwwwwwwwwwww'))wwww01www7www<=wwwCwwwHIwwwOwwwTUwww[wwwwwwwwwwwwwwwwwwwwwwrwwuwwt'XP1 wreswres,tcnl,"Syntax: words'object'wi'C2W'chars"PL wreswres,tcnl,"Syntax: 'object'wi'LastFns'N")L$Ȋ0 0'ff'wi'Show' $PS ZZ, "text/wcall'GetWindowText'h(100tcnul)100"''PL\'ado'wi'Exec' 'delete from shippers where ShipperID = 99'L4 L.5D-Nf4(@$ :end^(( :end6D :end(|gg wi'SessionFocus'E](0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('margins'20 20 20 20)('gaps'20 20) co(l5 :if 1=wargnu(J wreswres,tcnl," '>#' horizontally center control between previous control and right of form"LD wreswres,tcnl,"Example: 'oo'wi'Files' '*.w3'"L@x Filter[(Filter'|')/Filter]TCNUL@00 0'ff.ed3'wi'attach'1 2 3 2'0L`i :if 2=warg[3] 07/15/01 added Ctrl+Home routineL8HT L(-1<+/L='\')L Single-file case8. ]`QTYUsStuVvW]^XrZRw\xP3 _______ ""________________56___<___AB___H____________________]__ t \ $X+0 0'ff'wi'Show'$ :if F @Hd (wself,'.e1')wi'*limit'(F)1]HX   !"/(-33335689;>@FFFFHKOO QT[[^^_aa cdefgkknn stu w{{|~~ lbE<8&      !!!"D&DDD,,-.5555<<<<=>DDDEHIJRMNRRYUVWXY^_aabgggijm/oLvw{{|~/Vtccc ]!"#2$ %&"*(3-6F9F<@HQkeu{w&A,KHgY{~@: (AG AH AB AC)0 0,wi'*..size'@  HL+.5F-J H $ TNonVisualClasser$   :endH $@'odbc'wi'Tables'er$ d :else $'odbc'wi'Close'mer$ ` :endH $'ff'wi'?TextSize'r$(^'ff.pp2'wi'*value'10(\ wreswres,tcnl,"Syntax: 'object'wi'EnumChildWindows'{window}"fs\(SS E'TForm' 'TMDIForm' 'TAboutBox' 'TAPLEdit' 'TAPLSession' 'TChildForm' 'TConferenceExample' 'TCueCard' 'TDebug' 'TDisplay' 'TFormOne' 'TFormEditor' 'TFormEditorTest' 'TInfo' 'TInstall' 'TModalCall' 'T_MyForm' 'TProgressDlg' 'TTip' 'TOutlook' 'TQuestion' 'TPassword'(H3 wres('#'wi'*countries')'#'wi'*country'H44X :if 1=wi'*visible''#'4(0F'pr'wi'repeattitle'1(<& HX^ TFormClass is a template object, the skeleton for a new Form objectX10 0'ff.ff.lab.bn4'wi'*Create' 'TFlatButton'(( 'bitmaps'),4 2aaa)('wherelc' '=' '>' '=' '=')('onClick' '''Button 4 Clicked''')?0 0'ff.ff.lab.bn3'wi'*Create' 'TFlatButton'(( 'bitmaps'),3 2aaa)('wherelc' '=' '>' '=' '=')('onClick' '''Button 3 Clicked''')p0 0'kk'wi'*Create' 'TForm'('wherelc' '>#ii' '=ii' '=ff' 100)('ontop'1)'*Show' 'SessionFocus'p|X BF+/BF minimum width for each line containing centered controls[3]| ` io0  $'ff'wi'*Delete'mer$  nz,1warg $'nn'wi'GetUser'mer$  GK+.5E-I H $'nn'wi'*Delete'mer$$L~'ff'wi'Properties'$(+gg wi'SessionFocus'se(t9 HH, " Note: 'err' must not be localised (semi-global variable returning Error message)"tT:)ml|$< T@ Q@T :caselist'TFOne' 'TSpread' 'TGrid' 'TWebBrowser' T$ :case'?XClass'r$$ :case'XClass'er$$( :case'XLicense'$080 0'ff.ed1'wi'attach'1 2 3 20(g'ff'wi'*limitwhere'(pH wreswres,tcnl,"aplexpression: any valid APL expression returning a boolean scalar"p@0 wi'*value'(F0 100 100exec C)/@Dt :if 0TT/T~0SE wi '*attach'DHZ Single fully selected item. paging is not active)H4T that one can type in the controlg4xxB CC,130 129 148 149 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58x |  :case'I2C' $ zzz'tt'wi'Invert'$   io0  $ 'tt'wi'buffer'3000$ B EDH $Cyyy'tt'wi'Invert'$r ,h wi'*textb' textb,8 ;>rQ ==== ##$%(==::.11256==::;<=M , :.:58(daaa(aaa,tcnl),tclf(P* wres'Convert APL text from AV order to ANSI order')P0j Centering Controls on a Formg0pM FE1610 number of rows of bitmap images to displayp< P' IS NOT A VALID QUANTITY',TCNL< $ :if P0 $D'ff'wi'*Delete'mer$ h :endH $'ff'wi'GetAnswer'r$  wresR $'ff'wi'*Delete'mer$  :else $ Show open keysmer$P wres'Convert from "A1" Excel notation to RC notation'PLV wreswres,tcnl,'Copyright 1996 APL2000, Inc.'])LtX wreswres,tcnl,"Note: if omitted, vcenterboolean and hcenterboolean are assumed to be 1"td$ wreswres,tcnl,' newmode[;1] Boolean (may be modified by applications)'dP@ (G H)wi'Check'D E form validationP ,  :endH $L  C2warger$ p  skip: $  :endmer$  :case'apldir' $  :if 1=wargmer$  DC' ' H $:case'clipsiblings'$(T'ff.ed'wi'Properties'(. R'apldir' 'apptitle' 'check' 'countries' 'country' 'handlers' 'inifile' 'installdir' 'ontop' 'resources' 'sysmenu' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Center' 'CenterOn' 'Check' 'CheckClose' 'Children' 'ChStyle' 'CountryIndex' 'DemoShow' 'D2C' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'SessionFocus' 'Show' 'ShowDemo' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'Wait' 'W2C'$0 0'ff'wi'Show'$X$x One way to solve the buttons position problem encountered in the lastX,b and E.IdTypeEntite = 10 ,$$0 0'ff'wi'Show'0:$ 4 H, ;<QT 55 55555555!"555'(55,-55125556789;; ,P|J wi'Delete' delete formPdL` wres"Return all ActiveX classes which names contain a specified string"dl`L C((~'.'C)repl E,'.'),C catenate parent if necessaryTlh '<>=#LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL9999999999 '0hT F wi'*datavalue'(F wi'*dataoldvalue')THM In Material frame. Set class and type'SH8|@ or 'Method'argument1 ... argumentN8$\1'ff'wi'*Delete'$$L0 0'ff'wi'Redim'$TOO0\ wi'*text' Tnc 0P  :V_LYXrRwy78PfT"""#$'()*---/0123456999=@A^^GGGGHKLMNOPQ__WXYZ^^___aaeeeeghi^^mm^sssp vwx z{^}~ v ^^^m ^^^^^QY^^^^^^'A^^^^777^^3^^,^^^^^ ^^^^^ ^^^^^  ^^^^^^^^^^^^^^^^^^^/034^^^^^^===>AAA^^FGHJJKLMN^^WRSTWWWX^^[^^^ ""-*G2G=^GSK_Xmis^x~{^^^^-7/^4RG P4L wresC[E[12warg,0];]4<(X(wi'modalresult')NAME FNAME AGE COUNTRY<,+0 0'ff'wi'SessionFocus' ,t$0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')('just' 'left'90)t ZE3wi'*where' $Zgg wi'*FixedCols'1$ Z :if'Label'AF $Z'ff'wi'*Delete'mer$ q AW(AX' ') AX $q0 0wi'Flow' ''par$x0 wreswres,tcnl,"1. append a country code to the list of countries set in TObject New method"x (VLw  $X;0 0'ff'wi'Show'$DPA  dir file ext title filters findex readonlypD4:)px54D)` $ X |  p!|;(܈`@`2D&%R R!h"$#d $H%T%&D'(L)H)h)d%*E+,,-[.|/01D4(erase GroupTGraphX ((z0 0wi'Spread' ''mate(8$1 nMaxCustFilter - Not used.S)8PԜ :caselist'TEdit' 'TCombo' 'TRichEdit' 'TEditList'dePH| P' LARGEST VALID NUMBER IS < ',(K),' > 'H@44 Build OPENFILENAME Data structure.fL@\0w wreswres,tcnl,"Returns a nested matrix of character vectors"A)o\8 Write the data to the block.28X0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '>'   0 50)X8'ado'wi'Exec' 'select * from shippers'8(L 'ff.st.pp'wi'*value'50(,d5 :if E'right' ,M H}AX2F @pJ0 0'ff.grid'wi'*Set'('*xRows'20)('*xCols'20)f@dt)tcff -------------------------------------------------------------------------ondp wreswres,tcnl," '>object' means place this control under control 'object'"pd wreswres,tcnl,'Assumes W_LX has been called (during LX processing)''Wd(0 0wi'Spread' ''mate(PT :caselist'&99' '&9 ' '#99' '#9 ' '@99' '@9 '1g'PL, idparams[5] 0=no scroll bar; 1=scroll bare'L8H wi'*selection' (wi'*SEL')8dD D(11+D replD),8+F replF indices to extract from VRsd `x+0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')1`@HZ and makes ff.ed1 the new Reference Controle'@4wself'Agent'wi'*Create' 'TAgent'4P :for j :in I1 Frames in the 1st rowPL wi':*toindices' (currentindices[2]) 09/07/01LX, to automatically resize it to its minimal size showing all controls01Xdtcff -------------------------------------------------------------------------rsdp0 0'jj'wi'*Create' 'TForm'('wherelc' '=ff' '#0p?4 @ AtBCԊDdEFqGHP IxGJ(K8LuM|NOPqQR<SwTh!P4:case'New' constructorPL- PQYRn')L@ wreswres,tcnl,"All Files(*.*)|*.*"C@(0 0wi'Spread' ''matde(L empty edit box and there a no matching itemsLd  wreswres,tcnl,"res: error message if expression=1, '' if expression"تd| rwR 50|[ wreswres,tcnl,"  or '<>' for a form means horizontally center form in screen client area"`er< sizes1 any size greater the zero<D  sizes96 temp sizes for textingD(gg wi'*RowSize'2 10d(t0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')('just' 'left'90)y [t ܧ :endH $'fmMdi'wi'*Delete'$   :else $@'ff.ed'wi'Methods'$ x :endH $'ff.ed'wi'?mask'er$H :elseif 36=1warg Home Key Handler)HL GMarkID ID 1Do not reset text 07/10/01LL :if ID~' ' 07/10/01L0,0 0'ff.ok'wi'attach'3 2 3 2e0, d <?QTYUsStuvW]^XrZw\xPVN #######$%&>>,,,>>2>>>>>9>><>><dX Using attach is very simple and allows all kinds of resize effectsTsX( :if 2=D+(8)NAME FNAME APL SPORT SMOKING URL AGEF80] behaves like a Cancel button0('ff'wi'progress'70 (\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')le1\\|l:)v4hD)8\ | a Ea l^ c  ^b Hb!<] ]@0[x\̃ZEZ P\z \$[l0@['fmt B<<T Called by: combo_Handler name_Handler'<x0 0'ff'wi'*Create' 'TPassword'('change'1)('question' 'Enter your password')('password' 'eric')'*Wait'x+0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('margins'20 20 20 20)('gaps'10 50)h m0e :if 'SIZE1'wi'aplname'0d ZZ, " set wres0 to end processing before all children are enumerated" edd rcwcall'W_DestroyFilter'fp {*:error (^\dmtcnl)/dm}tiod,0 0'ff'wi'SessionFocus' ,(,twcall'W_Edit' 'aaa' ($ control left edge$d GMarkID ID Move to first: set variablesd  wi':*toindices' 0 09/08/01 added 07/04/01 Only duct class, for the present, (toc) has type of classx:)L,dlXm   l  d4<84X: #D,dl4Ex< :if 4=wi':*cot' 07/24/01<  zmix zH $ :if 2=J er$ :case'Redim'H $ JSStoMAT tcnl,J $  :endH $ :if~0H mer$X :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'X<I:),4 PZL.H     l3;^|^@pH0)^R31 28 31 30 31 30 31 31 30 31 30 31 0[(113)B]+(B=2)^((1001 0 0 0),3000 0 0 0,961 0 0 0)[4001G] :caselist'TCombo' 'TComboFilter' 'TComboDrive' 'TEdit' 'TRichEdit' 'TEditList' 'TComboTree' LES22mar01 TComboTree added( :else ( :caselist'TList' 'TListview' 'TMedia' 'TPicture' 'TProgress' 'TRichEdit' 'TScroll' 'TTrackbar' 'TTree' 'TEditList' 'TEditSelect'  :caselist'TCombo' 'TComboList' 'TComboFilter' 'TList' 'TListview' 'TMedia' 'TPicture' 'TRichEdit' 'TTree' <$ Validate size for the class of takeoff<lwselfWI'..b1.*Create' 'GWButton' ('wherelc' ('>',FM,'.ed1') ('=',FF,'.f1') 18 25,0 5)l    4] Htie\[7]L :caselist'TForm' 'TMDIForm' 'TChildForm' 'TDisplay'Lh 524288:OFN_EXPLORER - Display Windows Explorer when OFN_ALLOWMULTISELECT enabled.>thd J(0,G~' ')/'' add separator if handler existsdF.f1F Z9 5T wres256,(( ''),'ABCDEFGHI').,'ABCDEFGHIJKLMNOPQRSTUVWXYZ'Tp Z~Y'Imagelist' 'TImagelist' 'Menu' 'TFileMenu' 'TFileMenuDef' 'TEditMenu' 'TViewMenu' 'TToolsMenu' 'TGoMenu' 'TWinMenu' 'THelpMenu'D Rwcall'W_Mem'((wcall'GetCommandLine')0 255)DD  ZZ, " hook function from EnumChildWindows"D< Let's move them to the right by 50 pixels<,T0 0'ff'wi'SessionFocus' ,LLMM,M@MTMFH 09/01/01 C SetSelections fread HIDS,11 9/18/99H$'#'wi'newclasses'$0J0 0'ff.wb'wi'attach'1 2 3 4g0$tn'ff'wi'*Delete'e$  GBOOFIX;wself 4|)6:OUT 'Is ',J,B,' (Was ',K,C,')' 4$`'ff'wi'*Delete'$\ wreswres,tcnl,"Syntax: 'object'wi'ChStyle'additionalstyles""\|a-d@) wreswres,tcnl," '=' means same height as last control"d)*c8C 0 0 wcall 'GlobalUnlock' hFb8Lb8b3d (S T)K LZ fmCueCard size in line/columnsd7hh wres"Document all properties and methods for specified user defined class" h BCBB penclose[1](BDT)[BG;] vector of matrices for groups of centered controls wherelc propertiesckK H< BEEP`B :caselist'TCombo' 'TComboFilter' 'TComboDrive' 'TEditList'`( wreswres,tcnl,"  means default control width for this class of control (for a form means: half screen width)"( 'ff.jpg'wi'ZoomRedim'1(<T up to another object existing on the form<,wcall'W_Edit' 'T_MyForm' ,x0)/C boolean vector of styles to be added)elLԙ Z4 12'RANK ERROR VALUE ERROR WS FULL DOMAIN ERROR'L< Keeping some wherelc elements unchanged''<,J0 0'ff'wi'*size'400 600',p :if~0(C D)wi'*check' (APL validation expression) (errormessage)p *-3VwR  , $$$$&'()*,, ,,&( :case'clipsiblings'( wreswres,tcnl,"result: a 4-column matrix of (child handle) (child id) (child class) (child text)"'` wreswres,tcnl," '<>' vertically center within form"'"`Th wreswres,tcnl,"Example: 'ff'wi'A2R' 'X44'  44 24"yTT wreswres,"Example: avtext'object'wi'Ansi2Av'ansitext"T\̧txt2{chars} DTB txt1 -- Delete trailing blanks {chars} from mat or vec6\\ wselfC wi'New' 'Form' 'Hide' create form and close it \T wreswres,"Example: ansitext'object'wi'Av2Ansi'avtext"1T\( wi'font' 'MS Sans Serif' .8 necessary for Windows 3.1 \`\ wreswres,tcnl," '<>' horizontally center within form"``H (U V)'#'wi'size' screen size in line/columns`\ wselfF(C,'.fObs',j) wi 'New' 'Frame' create a framec\TD wreswres,tcnl,"vert: vertical adjustment in pixels"'T\ (E F)( G)replE F keep only these children\ 4 :else $T :case'SendKeys'$ x :endif $ :if S r$  :case'?W2C' $ :if C r$  :endr' :)̾>0L  н\4 wi 'size' ((20+1.5131ids),PAD+1wi'Draw' ('?Text' ids ))\\ wi'font' 'MS Sans Serif' .8 necessary for Windows 3.1 \\ :if j1 2 Events for Class and Material options\\ wi 'where' ((POSPOS+H),PAD1,wi 'Draw' ('?Text' id))\TX wreswres,tcnl,"horz: horizontal adjustment in pixels"T\ W[;4]T[;2]W[;4] Select larger of captions or ids \` (L M)(2(2warg),0 0)2'#'wi'units' vert and horz adjustments`\h (NV[j]) wi'where' (V2[I2j],H2[I2j],2(NV[j]) wi'where')')\$@'ff'wi'*Delete'$P< GInfoMsg 'Defaults for <',(T[U]),'> DUCT FILED''PLT C wi 'new' ((T=1)REPLT) convert to integersLx (M N)(23Y)+M N-I J fmCueCard position below control in line/columns)]xP| enable or gray the options to match the class and)PLD wi':*cot' (currentindices[1]) 09/07/01L< Convert flags back to decimal.)F<\l ZZ, 'treeT object -- Return family tree descending from an object'\  :end $ wi'ontop'1$  :endH $ wi'Redim'r$  :endH $ wi'*Show'r$`( wres'Horizontally center one or more controls over a given control')`\ HOS4+/+/0 1 0 1/NV[5 7] WI 'where' Horz offset to button columna\t wreswres,tcnl,"(i.e. the entire screen less the Microsoft Office bar, Task bar, etc.)" t\D8 (NV[1])wi':*Open' frame (parent) must be openet\\ wreswres,tcnl,"Syntax: 'object'wi'UpdateControls'container")1\\ Hwcall'GetWindow'H'GW_CHILD' intermediate MDI window\X ERROR(fp=0)/'WIN FILTER ERROR: Invalid filter specification'd3X\hJ wreswres,tcnl,"Example: 'ff'wi'UpdateControls' 'ff.se.p5'")01\`\ wi'*style'(2S) and put it backtF`TP HH, ":if 2=nc'D'  :andif 3=nc hookfnD,'_CheckHook'")dTT (G H)wi'Check'D E form validationTT Ltxt2DEB txt1 -- Delete extraneous blanks from char vec or matd TT`6 (27D)C WS_CLIPSIBLINGS  67108864  2*26)edT` wres'Evaluates validation expression and expression result (boolean)'`` wreswres,tcnl,"Syntax: 'object'wi'Check'expression errormessage"C``8 (E F)( G)replE F keep only these children"`\| wreswres,tcnl,"Returns a nested vector of character vectors""s\\ Cwcall'GetWindow'H'GW_CHILD' eliminate icon windowst\(0 0wi'GridLines'1 0 0(\, wreswres,tcnl,"classname: an APL+Win 3.5 Object class name"cts\\ Hwcall'GetWindow'H'GW_CHILD' first editing window)t\P|+ wres'Changes the style for WSELF by adding styles A'Pdu wres'fpname W_CreateFilter filter -- Create a callback filter procedure'd< wi'*selection' ((texta,textb),0)<  :endH $ :if C0 mer$  :case'?top' $0:case'SsColumns'mer$ T :case'top' $t:case'StyleSheet'er$ " :else $" D4D,(D)Emer$X :end LES9feb01 addedX$T :selectCer$$ :case 1 mer$$ :case 3 mer$,,'classesclasses, 'TList'w,t BBBA1,1BA partition vector for groups of centered controlst  H,'1003Z' $ :case'TList'mer$  :endselect $ :if 0J er$ l wresE/C $ :if 2=J er$X` Pwcall'W_CreateFilter'('EnumChildWindows' 'RRHookwarg')gXXDa wres1/wcall'GetLocaleInfo'C'LOCALE_SDECIMAL'(32' ')323XH Reset text box to its initial state6HL| Items selected. Must check the items again')L ; :caselist'TCombo' 'TComboFilter' 'TComboDrive' 'TEdit' 'TRichEdit' 'TEditList' 'TComboTree' LES22mar01 TComboTree addedtL fpwcall'W_CreateFilter'('EnumFonts' 'zz, wargwres1') {*:error (^\dmtcnl)/dm}t<  wi ('wherelc' ('>',H3N) ('=',H3N), S)<ddM (H I J K)4(wi'*where'),wi'*size' where property of wself form dx+tb2]2]jesD T[(AV'a')+0,25]'ABCDEFGHIJKLMNOPQRSTUVWXYZ'O)D,D'ee'wi'FontName' 'Arial'Z,P F wi'*datavalue'(F wi'*dataoldvalue')P  :endH $ :case'commonform'er$ 0:case'apptitle' $P:case'countries'mer$ t:case'attach' $ :if 1=wargmer$ f:case'caption' $$f :if 1=wargmer$L :end 07/20/01L\e Cwi'Children' find all form children\$0&'ff'wi'margins'rg$$ȷ'ff'wi'*Delete'r'$8do M(((2tcnul)Data)1)Data'8(@'ff'wi'progress'40 '(tJ wreswres,tcnl,"window: a window handle (if numeric) or a window name (if character)"jut('ee'wi'Range' 'C8:G8'(K UVSQTYUsStuUUU$%'(),,-./015UU9;<=>@ABEUUUUKLMPPQUUUU@ OPENFILENAMEOPENFILENAME,wi'D2C'0t'N@t HH, ":andif( wi'*class')'Edit' 'Combo'  Dwi'*text'" and if class is an Edit or Combot  :endH $ :if~0H mer$ $ H,'J[Z;]'  $D :if~0H mer$ X H,'J[Z;]'  $x :if~0H mer$\ wreswres,tcnl,"Syntax: 'object'wi'UsedClassesByObj'classname"\tK'ff'wi'*Set'('helpbutton'1)('morebutton'1)('closebutton'1)('helpfile' 'c:\aplwin36\aplgui.hlp')t  :endif $'fmYesNo'wi'Show'r$  :endH $ :endmer$ L :endH $0L FF~S,T$ PU HKQTYUsStuVvW]^XrZRw\xP3 JJJJJJJJJJJJJJJ012JJ78JJJ=>?@JJJEJJHJJ DJM:)X4"(Pп]$ھ P o p  H\Eh @$84 ERROR(0A)/'Library not found'4\ wres'Change the style of an object by "adding" or "subtracting"'"\d5d5 :if~HIG if event not already trappedTd0" Send a file to an FTP server00 0'ftp'wi'*Create' 'TFTP'('domain' 'www.lescasse.com')('localfile' 'c:\temp\docwin35.zip')('remotefile' '/ftp/lescasse/docwin35.zip')('debug'0)0 0'ff.ed1'wi'*Create' 'TEditList'('wherelc'5 60 300 260)('caption' 'Function')('report'('Function'OVER nl 3))('attach'1 2 3 4)4wcall'W_Edit' 'TFormEditorTest'EB 40teeaaaaaa, 'Files'('contra.bmp' 'contraup.bmp' 'contradn.bmp' 'contradn.bmp')('edit.bmp' 'editup.bmp' 'editdn.bmp' 'editdn.bmp')('blocn.bmp' 'blocnup.bmp' 'blocndn.bmp' 'blocndn.bmp')('table.bmp' 'tableup.bmp' 'tabledn.bmp' 'tabledn.bmp')('visa.bmp' 'visaup.bmp' 'visadn.bmp' 'visadn.bmp')0Xt wselfI LES9feb01 addedX " :endif $" H(Ctcnl)$ " :case'?VV' $# H[io+0,7+H]1er$  :case'VV' $ SC''''mer$8TI wi'*readonly'(1warg)r8('ee'wi'Range' 'B8:G8' ( TEditList0 0'ff.cb1'wi'*Create' 'TCombo'('wherelc' '>ff.ed4' '='  '>')('caption' 'Combo')('attach'3 4 3 4)('StyleSheet' 'StyleSheet2')0 0'ff.ed5'wi'*Create' 'TEdit'('wherelc' '=' '>'  94 0 '>Zip')('caption' 'Zip')('attach'3 4 3 4)('type' 'positiveinteger')('*limit'5)('StyleSheet' 'StyleSheet1')('just' 'right')(} wi'allowsortcols'1((#'ee'wi'Range' 'B2:G2'($('ff'wi'*Delete'$PV wreswres,tcnl,"nestedarray: any APL nested matrix"P wreswres,tcnl," gaps  (vertical gap between controls)(horizontal gap between controls)"< 9. Specialties {future}Do< , :case'D2C' $-'pp'wi'*Delete'mer$ <- io0  $\- Work in Progressr$ - :case'?Doc' $-'pr'wi'fontsize'8r$ g :case'Doc' $g'pr'wi'coltitles'1$L 1-class 2-material 3-type 4-wrap 5-lining 6-seal 7-shieldLH? wi':*cot' 1 09/07/01H$P'hh'wi'TNavigator'$8 lpstrFileTitle - Not used.'Xb8$;'ff'wi'*Delete'$,0 0'ff'wi'SessionFocus' ,x wreswres,tcnl," '<>' means horizontally center control in the form or frame"x`P (C D)( E)replC D keep only these children`@~ OPENFILENAMEOPENFILENAME,wi'I2C'0f.@L8 wreswres,tcnl,"FILE_ATTRIBUTE_COMPRESSED2048")Lx wreswres,tcnl," '=object' means use same vertical position as control 'object'")xLW Collecting data with Input forms: the aplname propertyL4XX :if AU1=AWIAY4(PNOTACTIVE BLUE WHITE9( :end6X :endV@(X :end(( wi'attach'1 2 3 4(,,N :if 0wi'*modified'R,Q HH, ":if 0wi'*modified'" remove leading and trailing blanks only if modified property is 0 HH, " elx'ioR1  (E F)2(dmtcnl) dm  F(HF'''')F  F(J+/^\'' ''=F)F  wi''*err''(1tcnl,E F)  err''wi''''*err''''''  0'"9::,:@:T:h: , Iwi':*toindices',,10 0'ff'wi'SessionFocus' ,x`0 0'ff'wi'*Create' 'TForm'('*caption' 'TFileMenu Example')('*size'300 400)('handlers' 'ff_Handlers')"xXRYl̒ E(( F'Method: '),D,tcnl),,wi'?',Dwi'Methods' LES23jun01 , addedlx0 0'ff'wi'*Create' 'TForm'('*caption' 'TToolsMenu Example')('*size'300 400)('handlers' 'ff_Handlers')x8DD wi'*title'(wi'apptitle')nde8t~ wi'*suppress'1 needed to change control without triggering eventst lA :if C  $A :endmer$ A GK+.5E-I H $A E,Dr$   :if D  $@ :elser$p wreswres,tcnl,"cell: a spreadsheet cell in Excel notation (example: 'A23')"etulT : wresnewmode(+/1163 323 dr newmode[36+4])newmodeeTLp wreswres,tcnl,"Syntax: 'object'wi'ShowEvent'"LtY :if 1F~E0 mark container children having an aplname propertyt (HDAH+.5AC-AH+F $HH wreswi'*'mer$ lHC1wi'*where' $Hgg wi'*HeadCols'2r$ ' '='  200)('caption' 'Country')':Center'h BEfi'0',1BB penclose(8(BD/C)wi '*wherelc')[;5] vertical adjustments for each matrix BCBB penclose[1](BDT)[BG;] vector of matrices for groups of centered controls wherelc properties H< (K L E F)(wi'GetWorkArea')42'#'wi'units'dH8 TCheck d GD wi'on',F current handler for this eventdlTtI CC,116 117 118 119 120 121 122 123 124 167 126 127 128 200 253 234 227 229 225 173 232 235 236t  wres0 $:case'CheckClose'er$  :endH $ :endmer$ PJ:case'Children' $pJ wresT wselfr$X Common'onResize' LES9feb01 addedX  :case'W2C' $0 :if M r$ T io0  $t :if D r$   :case'Wait' $@ :if S r$P wres((~S)>\SH\''N H/\S)^(~T)>\TH\''N H/\TrkPXl0 0 0wi'.ed1.Create' 'TEdit'('wherelc' 60  200)('caption' 'Name')X8 wi'*SEL' (wi'*selection')8@ wreswres,tcnl,"suppress: boolean indicating if events have to be suppressed whiule redimensioning"4?gg wi'*onCellChange' 'ShowEvent'4Pps wreswres,tcnl,"Syntax: 'object'wi'DHTMLClass'"uPH Single fully selected item. paging is not active)H4 :caselist'>L ' '>LL''4< #(SXY !"#$''''P<& ID(-1+(texta)' ')texta<  wi'ontop'1 $$:case'GetAplNames'r$ H wi'*Show' $h:case'GetWorkArea'r$  :while H0 $ 1warg,0mer$  :endH $ :if 0Cmer$tLu wreswres,tcnl,"boolean: if 0, the result is my own Formula One ClassId and LicenseKey"tth wreswres,tcnl,"filename: a file name (not necessarily with a path; may include ..)"ndotXh S(242)S styles to booleanX NO  FM's index no: 1 2 3, 4 5 6 7 8 9Td Retrieve default duct toindices for hitems.sf fileg'TT|1 Note: The result of ReadSelections "T" are the option frames'TT must be corrected to enable SetSelections to correctly'Tli Pwcall'W_CreateFilter'('EnumWindows' 'windowswindowsEnumWindows_Hookwarg')16l\H% error'Method Control2Var unsupported for class ',wi'class'''a\$B0 0'ff'wi'*Show'$Td and material selections. (There must be a better way!)gTT$ :end 07/15/01 TT :end end object loopTT :for D :in C loop per objectTTp :for F :in E loop per eventgTT :end end event loopsTT :end end object loopTT wreswres,tcnl,"Syntax: 'object'wi'tooltip'{string}"yTp(B wreswres,tcnl,"Syntax: 'object'wi'CenterControls' {gap} control1 control2 ..."(Ap`D C WI'*new' (1fread HIDS,11) same as defaults to startused?ing``| T'ROUND' 'SQUARE' 'OVAL' 'RD Dualwall' 'SQ Dualwall' 'OV Dualwall'`$L'ff'wi'*Delete''%$` C WI ('*value' ((A=1)REPLA)) convert boolean toInteger indicesnd``t ID1(V)/VT[T;] last item, last row `T$= wres"Get or Set the 'where' property for some controls"dT` GTurnOffIds turn off hi=lightser``J InpFM wi'.edInp.*Create' 'GWToData' ('.wherelc' '=' '>' ,'>',0 0 0 18)`\ wreswres,tcnl," '<' right justify within form")\` :if HIG if event already trappedths`Ta AJfi((AK^\AI' 01234567890+')/AI1H)~'+'sT`̟ S'SP'('WM_SYSCOMMAND'('''',A,'''TForm''SystemMenu.Click''')))`T wres(/wcall'GetWindowsDirectory'(144tcnul)144),'\'sTdDtcff -------------------------------------------------------------------------medp wres1(,L X C),1 {*: dm} (0 or 1 if expression failed)(error message)HVJp\ By default an APL+Win 3.6 Object is never made visible at creation timell\@@! This demo shows how to use several objectsbox@PD wi'onResize' (D,'''Resize''') onWait on formP,n :selectwarg ,80 0'ff'wi'*Set' 'Show' 'SessionFocus'88<0 0'ff'wi'*Set' 'Show' 'SessionFocus'84G wi( '*Set'),D48K0 0'ff'wi'*Set' 'Show' 'SessionFocus'8\H wreswres,tcnl,"Syntax: 'object'wi'ShellExecute' fullpathname"\`0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')s``LZ Ffi(GC'0123456789')/C line number starting cell)`4,O :case'Frame')48pO0 0'ff'wi'*Set' 'Show' 'SessionFocus'8\L\ CD2warg in pixels or columns\`4 ONE column id of ending column`\D wreswres,tcnl,"both the associated caption and suffix as well"\h 'Done!' TButton9 TAPLEdit|upw255 fx 'Done!'u entirelyu ExamplevNAME'Eric'$vNAME'Eric'@v integer\v TAboutBoxh TAgent8xpw255 Tx 'Done!'hpw255 T E(( F'Method: '),D,tcnl),wi'?',Dwi'Methods'.ThJ toindices1fread HIDS,11 nested vector of default class selection indices'h\ rcmix z[;1] get LOGFONTs as matrix)\Tx wreswres,tcnl,"Example: 'oo'wi'DocClass' 'TCheck'")1'TT frc[;14] get face names1ThE if the selected file already exists. The user must confirm>nhht wreswres,tcnl,"- if object is a form and 'wherelc' has not been specified"2h4 (2AV)AZAYi4\ wreswres,tcnl,"by 'object'wi'EnumFonts') to find all sizes", \\$ NK+M-1 ending column numbere\`) R 'Tidestone Formula One 6.1 Workbook' if not present try v6"`\ :caselist'TButton' 'TOKButton' 'TCancelButton' 'TOption' 'TCheck'\\v wreswres,tcnl,"Syntax: 'objet'wi'Doc'{properties/methods}"to\H (C D)2(1warg), E'MS Sans Serif'8 0'ansi'33H`* RR, 'Tidestone Formula One 6.0 Workbook' if not present try v5``+ RR, 'VC Formula One 5.0 Workbook' Formula One v5 by default``/ A'#'wi'xclasses' all OCXs on this machine)``lp BA[;1]R where are Formula One OCXs?`(܎'dd'wi'?AddCentury'd(TC wreswres,tcnl,"Syntax: value'object'wi'Control2Var'"T\9 (C,'.fObs1.op1') WI'*Focus' switch focus to the 1st optione')\`= H "RL X X;C;D;E;G;H;I;J;V;Z;hookfn;elx;io;wself",,';',L[;1])`\<BNVBNV, wselfwi('..b17.Create') 'GWButton' ('wherelc' '=' '>' '=' '=')\\0OBNVBNV, wselfwi('..b18.Create') 'GWButton' ('wherelc' '=' '>' '=' '='))\`|N wreswres,tcnl"Note: current wself object must be a Form object''"`l wreswres,tcnl,"object: name of an object upon which wself must be centered"4)lTXu wres"Return the index of the currently selected country"eTp wres'Centers form specified in left argument upon form specified in right argument')pX wres"Gets the useful screen work area in pixel coordinates")X wreswres,tcnl,"Example: 'ff'wi'Check' '(AGE<50)^AGE>30' 'Age must be between 30 and 50' 'ff.edAge'") TĦ Like: Z(A' ',A)' '  (1 error'The Show method only applies to Form and MDIForm objects')]`\B wres'This method is not available for locked Objects!'ne\ThJ wreswres,tcnl,'c  82 dr n Fails on booleans, etc.'.T` error'The Show method only applies to Form and MDIForm objects'ect`XPD :if 1(U[1 2])^.=2T compare class,material for valid duetX`pF wres'Computes text size (in pixels) of one or more character strings'`\,H wreswres,tcnl,"Syntax: 'object'wi'NonUsedClasses'classname"d\XM GMoveIdLight 07/10/01X`N wreswres,tcnl,"Syntax: 'object'wi'TextSize'charstrings{fontspec}"d`\L wreswres,tcnl,"classname: an APL+Win 3.5 Object class name"s)\Tx wres"Returns the last N functions changed in workspace'sT4K 0 0wi'.ed2.aplname' 'FNAME'LN44@ 0 0wi'.ed4.aplname' 'COUNTRY'44 0 0wi'.ed5.type' 'integer'n=g4X,] Note: When in the Edit mode Left curor is handled in data_HandlersinnX48v 0 0wi'.ed2.aplname' 'FNAME'24`R error'The Wait method only applies to Form and MDIForm objects')d`hPV wreswres,tcnl,"This is particularly useful when debugging an application")h4$ - add an OK button to your form '4`\ wreswres,tcnl,"The owner of the current form is defined either by"t`4l  Limiting input size with wherelc4hV wres'Return all possible spreadsheet (Excel) column names as a nested vector'hhY wreswres,tcnl,"Note: for a control the StyleSheet is applied immediately")hh(Z wreswres,tcnl,' filter = a "pattern" followed by one or more "actions"'1.hh^ wreswres,tcnl,"Example: fpW_CreateFilter 'TIMERPROC' 'MyTimerFunction'"dxhX_ probable should review us of wres2 in GMoveKwLighX4` in an unconvenient visual effectg4hp^ wres(/(wcall'CharUpper'(2warg))wcall'CharUpper'(C[;1]))C[;D2warg]hXb T1texta 07/14/01 drop trailing spaceX4% The attach property (continued)'4`xb'ff'wi'*Create' 'TForm'('wherelc'  200 300)('ontop'1)'*Show' 'SessionFocus's`` Represents the default Top, Left, Bottom and Right form margins for controlsd`Xp :if 4=wi':*cot' added ':' JWG-10/29/01) XXd :if vi 1V 07/16/01 Is last item a number?rXXȃ TT,' ' 07/16/01 add a space of the caretX`r (C D)( E)replC D keep only these childrends`` t wreswres,tcnl,"space: space occupied after packing the workspace"``lt wreswres,tcnl,"Example: 'ff'wi'R2A'16 4 12 256  'D16:IV12'")'`` BABA[BGBA] sort by increasing ordinate`\ wreswres,tcnl,"methods: return documentation for methods only"\8xX0 0'ff'wi'*Set' 'Show' 'SessionFocus'8TWriteDuctSelection wi':*toindices' current indices 09/06/01TT8 HOS+\4,4+4T[I1]T[I] column offset positionssT\ wreswres,tcnl,"Syntax: 'object'wi'Files' string {attr} {flag}"\` ZdefZ create local Wtree function`` wreswres,tcnl,"Syntax: 'object'wi'ClipSiblings'boolean handles"``ؖ (C G)1warg (boolean) (window handles))``|T wreswres,tcnl,"Syntax: 'object'wi'ComputeRange'cell nestedarray"`8LL0 0'ff'wi'*Set' 'Show' 'SessionFocus'8(| :case'<> '(8|0 0'ff'wi'*Set' 'Show' 'SessionFocus'8( :case'>>L'(8 0 0'ff'wi'*Set' 'Show' 'SessionFocus'8\ This is the Demo which has been presented at the 5th APL2000 Conference1\< About Box dialog for your Help/About menu<,< gg wi'Align'11 4(4+32) ,( APL+Win 3.6 Objects ((p and its methods...pe(('ff'wi'?modalresult'1((p Create a TForm object((x The wherelc property(('ff' 'gg'wi '*Delete'((u 0 0wi'check'check(PJ wi'onShow' (D,'''Show''') onWait on formPD = means: same height or width as previous controlDh (toindices)DUCTSELECT ('' or ?)Initializes the last or the default duct selections hQ TPicture9( 'ee'wi'Value'report(  wi'Cols'1 8# wi'*findex'(1warg)d'8('ff.ss'wi'FontSize'12(\ wreswres,tcnl," or: 'object'wi'RemoveComments' 'function'"o\`,A wres'Displays the form "ontop" in the right top corner of the screen'`8' '='  200)('caption' 'Country')d`4gg wi'*onEditStart' 'ShowEvent'Ret4( The caption property(( The attach propertyse((  Let's resize the form((j control right edge%e(tpr0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '=ff.ed1' '>'  '=ff.ed2' 0 '>10+Age')('caption' 'Age')'t$'fmMdi'wi'*Delete'$XO wi'*style'(2S) record new stylesxX(HE Redim and limitwherel(@ OPENFILENAMEOPENFILENAME,wi'W2C'0''@\Q FC wi( 'aplname'), D refresh all controls01\\X Cwi'Children' find all form childrene\(_ :end'((1'ff'wi'SetAplNames'r'(@n The form may then be centered on the screen:)@4r'Agent'wi'Merlin' '*MoveTo'300 4704P wi'style' 16 always on topPP\t wreswres,tcnl," or: 'object'wi'RemoveQuotes' 'function'"'\(  :else(H` Find widest frame in each column of frames\'dH$pp'ff'wi'*Delete' $@ H3Nwself(FDUCT,'.l3N') wi'*Create' 'TLabel'@0CAD1+2 2(1C)wi'*where't0 M"\@z wreswres,tcnl,' newmode[;3] Name of option (spelled as above)''\4, 0 0wi'.ed1.aplname' 'NAME''0'4<w A kind of a multi column combo box object<,p wi'legendpos' 'right'F,4'ff'wi'*Set' 'Show' 'SessionFocus'4<h|'ado'wi'Open' 'Northwind Access Database''<, wi'ChangeType' 'Area' ,H` cursor inside the text string with at least ones.HP wi'caption' 'Duct Section Matrix' form's captionP$| 'ff'wi'*Delete' $ 0p@ test without first wres1 suppress default Window's caret movement 07/09/01pH  wselfD wi'*Create' 'TMDIForm' '*Hide'')H<`Y(wi'modalresult')NAME FNAME AGE COUNTRY<,(wi'modalresult')NAME" ,<D error'Unknown TOpenFile command: ',B)<,(0 0'ff'wi'SessionFocus'H,4I BB~BAAW wself'4(pE Assume we want to:4e((E'ff' 'gg'wi '*Delete'((\$ [9] 'ff'wi'Show'ML((4 - use the Wait method((Hq Etcnul,E (X0 wreswres,tcnl,"handles: one or more valid Window handles")XPs D(1+D'[')Dsi[1;] this function)P4( wi'*hcenter'AWa4,(c The TForm escape property,,  T3R6=S6, :end  Data types0 $X 0 0wi'Wait' $$'Agent'wi'*Delete'$0p= (P Q)wi'*:gaps'00)mPH The ff.fDUCT frame is in right half of the job setup box..Ptc0 0'ii'wi'*Create' 'TForm'('wherelc' '=ff' '>ff' '=ff'100 0 10)('ontop'1)'*Show' 'SessionFocus's4tt0 0'ff'wi'*Create' 'TForm'('wherelc' 140 500 300 500)('ontop'1)('ontop'1)'*Show' 'SessionFocus'"ytt[ Create a form hh below gg but adjust position further down by 10 pixels (5th wherelc argument)ydt8 wi'*filters'(1warg)d98( control bottom edged((L TConferenceExamples'((  'Agent'wi'?Merlin'ch(0L H( E,D(8 M(1tcnul=M) penclose M T8('ff'wi'SessionFocus'($ucmd']display aaa'$( Eav[C][avE](80z of the "APL+Win 3.6 Objects" product84 {'Agent'wi'Merlin' '*MoveTo'400 6004(hk'cf'wi'APLFont'(1aaa)((r***NEW IN RELEASE 2o(X0 :andif 0=wi'*text' added 07/26/01esXP, wi'border' 16 system menu')P(m order by AN_libanncke((t AN_codcel=' ',d((G :if 2' '='  200)('caption' 'Country')('*text' 'France')t(m :end(, :case' ' ,( wi'allowmovecols'1($$'ff'wi'*Delete'$4 wi'*vcenter'AW/4(Tu :end((x :if 1=D'(O TDateTime$y'ff'wi'*Delete'$< to the other one through bitmap buttonsJ<Xs :if ^/0=wi'*SEL' added 07/26/01'mX$}'ff'wi'*Delete'1]$$|'ff'wi'*Delete' R$( :end/(( :end\ wreswres,tcnl,"Syntax: newmode'obj'wi'P_DevMode'opts oldmode"\,z'ff.e2'wi'allowkeypress'1, | Rather than:  :endX wi'*text' (TT,ID,' ') add full item and a space 3/27/00X$4'ff'wi'*Delete'sLo$(( :end'(,erase'labels sons images' ,e :end` wherelc(t~ :end(X GErrorMsg' SINGLE ITEM SELECTED',TCNL,' NO PLACE TO PAGE TO 'X,0 0wi( 'TDepth'),(100) ,$8X Required input$(z :andif 1=D(H TCueCard1< lpData  wcall 'GlobalLock' hF".< 'ff'wi'Center' (H wi'*hcenter'(, A)'(ȗ TMsgBox, Delete a terminal subkey ,d TEdittx Zwcall'W_Ini'('[Call]DllRegisterServer',name,'=L() ALIAS DllRegisterServer LIB ',path))tP TMaskEdit@ TMedia-,'ff.tree'wi'CheckBox'(7),hAX2D 4>'ff.ss'wi'FontName' 'Arial Black'4 TListview4 TMDIForm,l splitters to your formsC, :end4$Q'ee'wi'Range' 'B3:B7;C2:G2;B8:G8'4 DestDir= TLabel#,̋'ff.pp2'wi'*color'255 0 , :end4'dd'wi'DayOfWk' 19991201 2000020144'ee'wi'from' 'eric@lescasse.com'4 TInstall Message=,\ Create new registry keys,i TGrid4l'dd'wi'YearMonth'20000229 2001124 THelpMenu TIniFile,'ff.st.pp'wi'*value'100g , TTip4D'dd'wi'LeapYr'19991231 2000 2000114( THLine08 (P Q)2wi'*..size' 0DD  X Add events , properties and methods ,8m H$'ff'wi'*Delete'$ T'ff'wi'Show' $'ff'wi'*Delete'$ TOKButton($'ff'wi'GetAplNames'(('dd'wi'?DateFormat'de( , TChildForm3] DccolsZp F250(< 0 0wi'check'check(rrows( :case'CheckClose'($e and StyleSheet2:$ pS'ff'wi'Show' C $$'ee'wi'*Delete'A=$4d`0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')/0d( :for I :in De'( :end :end('fmYesno'wi'*Delete' ($aaasplit'T'nl 3$Ld'dd'wi'DaysAdd'(20001225 20001231 19990801 20790101)1L4 C wi'*suppress'1f4(4M :case'TGrid'K@(D) :if'='=F | HF-.5S O'pp'wi'Next' t wresG0 YUsStuVXr Rw  u 55555#55555555555555557<<<AAAAADHHKLMNzzRSTUVzz[\]^zzcceghzjklzzzpqrzzzzzzzz{|}}nngbbb i)PMXU`]zekg`Ȼ0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`8 can embed within your APL+Win windows8\I,̉'pr'wi'font' 'Impact'20 , TNetworkCTt0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '<'  )T4'ff.ed'wi'*text'('cl'wi'Paste') 4h|0 0'f4'wi'*Create' 'TForm'('wherelc' 0 '>' 200 300)('ontop'1)'*Show' 'SessionFocus'0h4`'pf'wi'Set' 'Ctrl+Shift+F8' ')fns'4 wreswres,tcnl,"- or if object is a control and 'wherelc' has not been specified and has a non pixel 'scale'"8@n0 0wi'Place' 'Subhead' 'Conclusion'g8 'ff'wi'Show' Bx @'ff'wi'*Show' , :case'>#L' ,L8 Also note the use of ShowResize instead of ShowF)L@ܦ0 0'ff'wi'*where'(16 0 0 0+'ff'wi'*where')@$vr'StyleSheet1''$F)20 0'ff.ed1'wi'*Create' 'TEdit'('wherelc'5 60  160)('caption' 'Last Name')('attach'1 2 3 2)('StyleSheet' 'StyleSheet1')D an Excel compatible spreadsheet control which youD\Zhwcall 'FindFirstFile' file (256tcnul) get handle (ignore structure)\0 _(K L M N)AD(2C)wi'*where' 0\ XRrV oooooooooooooooooo5789:@@@@@@BDEFGHIJKLNOPQRSTUVWXY__bcfJhioooqssuvw{{|}uyygX\TJ 3n5_8BODfbq{u\0< Focus is in the Quanity box.0:)T^X0)/I;]~' '),'=' 4@r - move the 3 buttons to the right of the form@9 Z_ VwRSQT^5H ^^^^^"#^&^^*^^^^^^^^56^<=>?^^^GHI^^LMOQZZTUWZZZ[\^^F 1^]^<^G^stn F90`  r ctme` , :end $L AYAX wi'*where' $ p:case'Ansi2Av' $ C(+/AY[1 3])-Emer$  :if 0DE $ԭ :endmer$ d wresE $ AYAY+10,+\AXmer$0 GE wi'*text' 0`X Q'.'Ewself left WI argument` BEfi'0',1BB penclose(8(BD/C)wi '*wherelc')[;5] vertical adjustments for each matrixck g   0 0'ff.dual'wi'*Create' 'TDualSelect'('wherelc'5 5 300 400)('attach'1 2 3 4)('*caption' 'TDualSelect')('list1'(nl 3))<  0=no buttons 1=complete 2=no top buttons< 'ff'wi'*Show' \w'ff'wi'Show' ${ 'ff'wi'*Delete'A$,:if 0'#'wi'*appstate' ,:end'&'HPt0 0'ff.grid'wi'*Set'('*xRows'20)('*xCols'20)('attach'1 2 3 4)PXx rc[;14]f plug back into LOGFONTsX,H data82 dr data,D - the error message (between 2 level of quotes)'D`d0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`0| 0 0wcall'GlobalFree'H0$ 0 0wi'Wait' $$'ff'wi'*Delete'A$myyyzzzlď0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('*size'100 500) Alp4 Get or set type of help wantede'4 P'ff'wi'*Show' NAME AGELԖ0 0'ff'wi'*Create' 'TForm'('*caption' 'TEdit Example')L4D wi'*.e1.suppress'04(L :if 1' '='  '=')('caption' 'Age')('just' 'left'90)p4l'ff'wi'*Set' 'Show' 'SessionFocus'4 :end' d error"Option '#limit' not available for class ",wi'class'd0 :if'.'wi'*self'e0<@'odbc'wi'Open' 'Northwind Access Database'<`x\= :return  QTYUsSVvWR  4'pp'wi'Run'1 3 9 150 400 452 600 14(RCheckSize TEXT;IDNO;T(  :end 'ff'wi'Show' $(X'ftp'wi'Receive'$(L<:case'ApplyStyleSheet' (( :if~0H /C( TRegistry(` :case'?Control2Var'(|H TOutlook$1:(':'11A)2 $D| AN_codgan=convert(char(5), MG.IdTeteGroupe),'SD Terase'aaa'  4TO 0 0'inst'wi'*Create' 'TInstall'4 \ 'ff'wi'Show' $'ff'wi'*Delete'Dp$ @d'ff'wi'Show'" 4'pr'wi'PrintTable' 'aaa'aaa( 0)E4( :if~0H C ( TRichEdit0d wres( [2]F)~' ' 00$D'ee'wi'FontSize'12$  TPopupMenuY 'dd'wi'Days'33 $p Add propertiesD.$$0 0'ff'wi'Center'$ erase'DATE' ' ( :case'windowsdir'(( :case'TList'(<aaaaaa,aaaD| > means: Make adjacent to Bottom or Right edgeD( :end'(t TOpenFile4C :case'TDateTimeFr')4(X :case'Control2Var' (4f'sw'wi'time' running time'14,D wreswi'*must',H? H4, wi'*limit'(F)44D0 0'pp'wi'*Create' 'TPopupMenu'4  TControlClass $t'ff'wi'*Delete'$480 TELPRINT 'oo'wi'Properties'4(L :if AL ( Pi'ee'wi'ontop'1 $\ 0 0wi'Wait',X$$ TCommandButton $ 'ff'wi'Show'  TComboDrive $ 0 0wi'Wait'$,z :case'< ' ,X{ D0  'ff'wi'Show' $'ff'wi'*Delete'''$ gg wi'*Redraw' $'ff'wi'*Delete' $, :case' ' , TTree4`'sw'wi'time' running time4 Z'oo'wi'class' $` Data ValidationT$( wi'*vcenter'(, A)'(( :end'@($J wi'FixedRows'1$ 'ff'wi'Show'OC 4\C Return information on all subkeys4 'ff'wi'Show' $(wi'check'checksnd$$ 'ff'wi'*Delete' $  Style Sheets {'ff'wi'Show' (@ :case'?windowsdir'( @ TModalCalls' $d 0 0wi'Wait'K$$'hh'wi'TMDIForm' $ t'ff'wi'Center' 0 Lfn7:N-/(F)' :/\'us00` (Lfn0,Lfn6,Lfn1)[1 0 11F]00N 4. Aluminumf~0`end(9 E,D(4@0 0'rr'wi'*Create' 'TRegistry'4( :end'@(D any relational database using the new Microsoft'D, :case'#< ' , :endifD '>>' means same as '>' above, but with no marginsD@0 0'ff'wi'*Create' 'TFormOne'('ontop'1)'Show'@40N wi'*..suppress'04Hu(NAME FNAME AGE COUNTRY)'Lescasse' 'Eric' 49 'France'H  'pp'wi'Title'3 $| positiveinteger$(  ZZ,fi R (( :end' (parpar, '',5 wreswi'*ontop',, :case' ' ,h :else ( M wresT wself(0z Hwcall'DeleteObject'H0 erase'aaa' ] $ 0 0wi'Wait' $,T1T1,(~/V3 ss '.f')/V3,E:end  0 0wi'End' D $Hvr'StyleSheet3'0T$, :else ,XP H,\D :case' ' ,d_ :end0R'nn'wi'CancelConnection' 'G:'#0 8'ff'wi'Show'] $ 'ff'wi'*Delete' $D Centering several Controls in one line of a FormlD0 FF,(~'.'F)/'.SF'1+0D(  The 2 buttons are too close to the Edit controlsD p'wres=' wres 0t rcwcall'DeleteDC'hdc0,8 :case'> ' ,F1F (8g HJ( TQuestion,̖ :case'>LL' ,0 F220$@'ee'wi'AddBook'3 $ `'ff'wi'Show' D| Extend an object up (or down) to another object1D4 0 0'ii'wi'Set' 'install' 'new' ''4D8 The TAgent object allows you to add the MicrosoftD0 F7E penclose H0( :end ( TSplitter( (C D)1warg ($report?5 510000$ T TComboFilter Dt  1. Duct Class of takeoff (cot)DT :caselist'TTrackBar' 'TList' 'TEditSpin' 'TDateTime'T4 R1 any size o.k.4 mat10 10100 $g'ff'wi'*Delete'$$erase'date msg' $ d'ff'wi'Show' $@0 0'ff'wi'Wait'$ 'ff'wi'ontop'1 0L Lfn2:(^/F' ')Lfn9fy0$'ff'wi'*Delete' $ x TPowerpoint0 $  'ee'wi'*Delete'$ P'ee'wi'Send'E D`aaaaaa,(sizeaaa),[1.5](craaa), ' lines''DD behaviour (wherelc, attach, aplname, check, must)D0 facename2wargC00 FP,('\'=1P)'\',NFl00( R(323 dr R[;4]),[1.2]N F0D It's a little better and more efficient to write:D0 R(T(2T)323 drR[;4])R 0( :case'ComputeRange'((X :else6(< TSelector0 :case'?EnumChildWindows''0 l gg wi'*Redraw' $H'ff'wi'*Delete'ne$  TFormEditor $'ff'wi'*Delete'$ aaa?10 31000 $'ado'wi'Tables'V $  Workspace= $p'ff'wi'*Delete'$$T'ff.ed'wi'Redo'$ 'ff'wi'Show' X :if'Selector'wi'*class' LES9feb01 addedX0N'pr'wi'orientation' 'portrait'0,ܞ :case'<> ' , :endifD0 - move the Edit controls 30 pixels to the left'0D( wi D(D\ Edit function Classes in a non maximized window'DDD from Entite E, EtatEntite EE, MembreGroupe MG'D( AL1  wi':Redim'@( TObject$t'ee'wi'Border'1 4$ 0 0wi'Wait'' tG TVLine(ؑ'tt'wi'buffer'30000'@((h :end'@($w'ee'wi'Border'1 3$ 'ff'wi'Show' (| :elseG( TSpinner( :ende'(0 Example:00 :case'Properties' 0,` Fires window MessageBeep, :end,,J :case'#< ' , :endz wgive 0 ( :if 0J (@Ę as wished when their parent form is resized@  :end( :case'?ChangeStyle'((lk :case'ChangeStyle'($\2:ELX(1E),3 $,Ю :case'>LL' ,_ :endD Let's add attach properties to all form controlsD f0 0wi'Rule'2 8m0 0'ii'wi'Set' 'install' 'new' 'test'8L0 :caselist'&99' '&9 ' '#99' '#9 ' '@99' '@9 'L B TChooseColor ,} :case' ' ,  Getting Help (I D wi'*Delete'( wgive 0 %($ :if 0J AR(, :case' ' , :end   'ff'wi'Show' is'0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '=' '>'  100 0 '>First Name')('caption' 'First Name')('attach'3 2 3 2) d'dd'wi'Days'1 `'ff'wi'Show' T After you have resized a form you may always use the Redim methodT$'dd'wi'Months'1,B$ ط wi'Rows'1 ض TPasswordLȏ Create several forms and position them around the screenLH4H following control edges are attached, in this order:HH =ff.ed1 means use same vertical position as ff.ed1E'H TGraphX0(8q :if~0H 8( L'ff'wi'Show'T , :case' ' , TDoc 'dd'wi'Today' XZ (E F)wi'Check'C D field validationngX0|q'odbc'wi'Columns' 'shippers'A0( :if~0H ],(Y :end MP̌ Get more information about how to use a property or method0DP 4'ff'wi'Show' @\ Hence: ('attach'3 2 3 2) means:@HX The previous control is called the Reference control H,  :case' ' ,D float88 gg wi'onCellMouseMove' 'ShowEvent'84`'dd'wi'Year'20000229 200112 19994$d'dd'wi'DaysAb'1;T$  TFormClassAX a TEmailr  1 = left edge 'ff'wi'gaps's x'ff'wi'Show' $X 'ff'wi'*Delete'U$(̊ EDwarg[2]E(D :end<u 3=no top buttons and no connection lines<,L :case' ' ,| Z  erase'aaa'   TComboListt 7 < 0 0dl .1?5 $'ee'wi'*visible'1O$ D'ff'wi'Show'E 48 within your APL+Win applications4HL > means: use all space to bottom or right form edge'Hl`0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('*size'400 500))lD4 '>' for the 3rd and 4th wherelc argument means: aD gg wi'*Redraw' L mustP wreswres,tcnl,"Syntax: 'object'wi'SmgrHandles'"P4 :if K0( :for I :inF2( 'rr'wi'Init'L $\'ff'wi'*Delete's'$@t70 TELPRINT'Agent'wi'Merlin' 'PlayMethods'1[@ h'pp'wi'Titles' DQ H1, H2 and H3. Each subframe has six children:sD( :return(  'ff'wi'Show'' 4 Er4(N :endab( |[0 nresize 10 $8 'ff'wi'*Delete'0$< through fast low level Windows API calls< 'pp'wi'Last'EO @H$ Resize parent and grand-parents @<ĵ0 0'ff.mFile'wi'*Create' 'TFileMenuDef'<hH QTYFM wi'.ed1.*Create' 'GWQty'('.wherelc'  70 , S,5) ('caption' ' MI [9999]')hDT V(T,'.ed1') (T,'.ed2') (T,'.ed3')wi '*where'D, :else ,:else4@0 0wi'ToFile' 'c:\temp\test.htm'4` RB Common A - Common events, properties and methods for multiple Objects`h0 0'f3'wi'*Create' 'TForm'('wherelc'  '>' 200 300)('ontop'1)'*Show' 'SessionFocus'h4>images1 2 3 4.+43 20 1 2 3 4 54 TFOne$d((,1)VI A)1 $ I TProgressDlg 00 0'pr'wi'*Create' 'TPrinter'0, Classes of Takeoff - cot, :end20 :if 82=dr H2warg]0HHn the TGrid to be 200 pixels high and 600 pixles wideH @ 2 = top edge H0(NAME FNAME AGE COUNTRY)'Lescasse' 'Eric' 49 'France'HH((NAME FNAME AGE COUNTRY)'Lescasse' 'Eric' 49 'France'HT ConferenceExample6 -- Save CMDDEMO in your UCMD file then run:sTl :endifL|  xb,wL  Q''H $ :endmer$ , :endH $L :endmer$ p wres0 0 '' $ :if Fer$  :else $ :elseer$HXj NO 1-gw.fRD 2-gw.fSQ, 3-gw.fOV 4-gw.fADH$Ԉ'wself=' wselfG'$ 'pf'wi'GetAll' 0,I AS(AR+2)P Q0܃7PHUclassesclasses, 'TTipForm' LES30jan01P` Afread HIDS,9 default job variables sections subsections factors`  TCancelButton  wi'values'0 8 --- Set Items and Keyword attributes8<]msgmsg,tcnl,'and this is the second one' <  0 0dl .1?5 $'ee'wi'message'msg$$@'ff.ed'wi'bold'TR$  'ff'wi'Center' \$0 0'ff'wi'*Create' 'TForm'('*caption' 'The caption property')('ontop'1) \[ :end L When centering several controls on a same line, the lastL(z :end4`wself'ee'wi'*Create' 'TExcel')4? TStatus P  The attach property allows to resize controls automaticallyRPL  '>>150' and '>>600' means same as '>>' above but forcesL<dreport'Jan' 'Feb' 'Mar' 'Apr' 'May'report<D TToolbox3L Argument is library number or subdirectory, or emptyL0:andif 'NEXT'wi'*caption'n'0 'pr'wi'grid'0 |'odbc'wi'Exec' 'insert into shippers(ShipperID,CompanyName,Phone) values(99,''UPS'',''(503) 555-5555'')'|DD$ entries or sections to/from .INI Windows files2۴D 0 0'fmInfo'wi'*Create' 'TInfo'('caption' 'This is a small nice looking information window...')('color'(255)(255 255 255))('WaitOn' 'ff')('CenterOn' 'ff')'*Show' 'SessionFocus'@0 0'ff.grid'wi'*Set'('*xRows'20)('*xCols'20)@0 wreswi'*sysmenu'0tB# chYUsStuVXwgg .................../022569gg>>>@@BCDEFGHIJOOOOOQTTUOWggg]gggbggggg M 6>OC, 'ff' 'gg'wi '*Delete' ,, :case'<>L' , 'ff'wi'Show' $x'dd'wi'DateBase'$ = TFileMenuDef $<='dd'wi'?DayOfWk'$ 'ff'wi'Show'1 0'pf'wi'Set' 'Ctrl+F8' ')vars' 00|ROk'The files have been copied'0Hp wherelc 6th argument on the last of these controls:'H4 First get connected to Internet)44gg wi'*onCellMouseUp' 'ShowEvent'44ܔ'ff.ss'wi'BackColor'(192 192 255)4L Z'fmYesNo'wi'*Create' 'TMsgBox'('Parent'wself)('text'(warg))('title'(wi'apptitle'))('buttons' 'OK')('mode' 'T')'Show'4gg wi'*onViewChange' 'ShowEvent'74d TTextFileL :end@ Creating new objects with APL+Win 3.6 Objects@P  wi'..edobject' wself default to the 1st edit objects'P4T S1wi '..TextSize' '99999'/4 TEditSpin TODBC SCROLLDBLIST;t $TC :if 0=1texta$8ș0 0wi'Place' 'SubHead' 'Introduction'8P\ (V[i]) wi'*def' (T[i]) define edit objectsP :if 1//DVn <  TChooseFont0 Xc Iwi':*cot' Requied when called by setup_HandlersXL8= NHL(D,D)[I] New bright item.LAX2C 4,0 0'sw'wi'*Create' 'TStopWatch'4(I 1. 1 or c (:select NO($ :case'?DHTMLClass'(, :case'> ' ,$ TADO erase'aaa' E $'ff.ed'wi'Undo'P$H TTrackbar,|RReadSelections F;T;j;NV;i,0 HLDo but you may use the 'just' property to left align them:L,t :if~'Status'AF,`5 :end d HT0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '>'  )TL5 Using relative naming conventions when developing formsL8 Handle centered controls8L button coordinates unchanged. Here is how to do this:'L$t TViewMenu w 0 0dl .1?5 $'ee'wi'Border'1 3$,wcall 'SetKeyboardState' R,x R1  TToolBarH$> so that they nicely resize when the form is resizedH TPFKeysP '' means: leave the corresponding wherelc element unchangedP,`z :case'<>L' ,( Lfn30X wi'*..size'AS0pU0 1. galvinized0 :end G 0 0dl .1?5 T wreswres,tcnl,"Syntax: 'object'wi'Redim'{suppress}"T,P :case'= ' ,eee @0 0'ff.grid'wi'*Set'('*xRows'20)('*xCols'20)@$p wi'FixedCols'1$$'ff.ed'wi'italic'$PP APL+Win 3.6 Objects is a collection of more than 100 objectsPX (V W X Y)IS attach propertyX( :if~0wi'aplname'(H error'Set to avoid impossible resizes' ?H@ wi'*..suppress'1@L\:case'I2C'@a t wi'count' 100000 Max dollar@d(K :if 1=warg if no property value specifiedd(0 :case'ClipSiblings'(@ :elseG$,'ff'wi'DemoShow'$0'pr'wi'title' 'Report Title'50 ̍'ado'wi'Close' PH in the form due to the Grid having forced the form to resizeP,E 2. black , HF0pI 6. Stainless @00i'pr'wi'textcolor'255 255 2550(, NHLSIDS[I] OR(@w AN_libann=substring(E.RaisonSociale,1,32),@4wcall'W_Edit' 'TNonVisualClass'04(x HH, "io1"2(Ț TDates@ 'pp'wi'Next'  UG@ C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36  TPrinter4'ff.ss'wi'hdralign'(0 0 1)'right'48dYgg wi'*Text'(1,rows)(1,cols)text)8XV VSV V the same as SV with a single itemXDU a label plus edit objects for the entry takeoff0DP@ The wherelc 5th and 6th arguments represents adjustments to.P00 0'nn'wi'*Create' 'TNetwork'000 0'odbc'wi'*Create' 'TODBC'0 TFrame V( :case'?DocClass'(p :endF 'open'wi'Show' P' , S)TTW 'hh'wi'ExecHelp' 'TNavigator' can't be run under the TutorialT8 gg wi'*Image'(4)(5 7 9)(3 5)images,8@'dd'wi'NbDaysInMonths'(200000 200100.+12)@  'ff'wi'Show' L :end1( :case'?CenterOn'C (@ oriented toward writing database applications@ Đ'ff'wi'Show' XB AV[4]' ITEM [COUNT] ITEM [COUNT] ITEM [COUNT]...'UdX@|  and is also contained on the APL+Win 3.6+ CD @ aaa nappend 1 ,D :case'= ' ,? :else PS V( FM),,( '.ed'),,T list of edit objectsPL making changes in Excel menu/dialog boxes from APL+WinL<4 E[T]wi( '*where'), 0U<<Pp 2:HELP_QUIT - Shut down the help system<<\] Use the property to define flagsF<< or'ee'wi'attachments' 'c:\temp\test.doc'<PB V( FM),,( '.ed'),,T list of edit objectsPT Enter pressed with an empty edit object 08/07/01T ,ZRDHIDS CNO n $n FHN GHistory 7$@|L (QTY DESC ID SHOP FIELD OTHER EQUIP) '' @, :case' ' ,(r :end0, :elseif C'TWinMenu'1 0 JJ P@ COLOR(80 255 255) (255 255 255) use during developmentP4'sw'wi'time' running time'04BLACK0 0 0X :end,'odbc'wi'SelectDataSource',, :end( RGValidateMiscData(0 1. galvinized0 TExcelz(\a R=0 Check Failed(0 ED ss"]:case'"P0Hpb A'SQUAREDesc Square ductROUNDDesc round duct'HH$k A'SQUAREDesc Square ductROUNDDesc round duct'HH(b HH,',',(D),'A1,X',(D)+S MATERIALHTX DESCFM wi'.ed2.*Create' 'GWDesc' ('.wherelc' '=' '>' , S)onTo :endYXQ VSV~VT (T' ') Twi'*text' V excludes prior selected itemsXreport  TDualSelect" R TFormOne\p0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)\`0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`0ԅ :case'?DecimalSeparator')0  cccaaa[12;] $vr'StyleSheet2']$(|g :else'(  from APL+Win $'ff'wi'*Delete'] $h D/(242)(C>0)/C boolean vector of styles to be added h4@ 0 0'tt'wi'*Create' 'TTextFile''4 f gg wi'*Show' Yff wi'Show' P0 0wi'Bump'2 $'ff'wi'*Delete'J$(e :endZ(,ZDEB A;C;T(إ :endD(h is slower and resets the form handle (i.e. rebuilds form system menu, etc.) [h DMSGBLUE GREEN $h F(+/AY[2 4])-Dmer$ @hGREEN0 255 0 $h F4wi'*where' er$ hY(X1X)/X $,i :endmer$ h X(1+1X),X $ AYAY+10,+\AXmer$ 'ee'wi'*XQuit' data$J :end$ d'pp'wi'First'  THelpi THTML0M'pr'wi'bordercolor'128 128 1280H  (CV[i]) wi '*color' (toattrs[1+SV[OS+i]])MIH(O (D C)1warg( TDisplay< ] 9. Specialties {future} '<D0 place the last value at the top of the list.sDI JJ TY Use the help object (TDoc) to get an example for any given objectT4 Used to get help on other objects48o based on Microsoft MaskEdit control'8  :end` 88m with automatic resizing capabilities8yyyzzzJ 8X0 0wi( 'Align'),( 'Left'),9 'Right'88n0 0wi( 'TTitles'),( 'Column '),108 Forms  Scroll barE $ Miscellaneous$elfrus'Hb W1V field widthsHL@ resized to just contain the objects you install in it.L(p :if~^/DD[1]'( rc8<0 0'ff'wi'*Create' 'TOutlook' '*Wait'8< :endn<'ff'wi( '*where'),15 50,2'ff'wi'*where'<@vFH WI ('wherelc' ('>',FF,'.f1') '=' 90 '>'))@qst q(L :else(( :if~0H SE(080 TELPRINT 'oo'wi'Methods''0#L' ,p H,` :orif 1i ss '.ck',<]erase'ff gg images rows cols r c text' s<,wTМ RID caret inside of an item string 07/18/01T@ H'X1,',(A),'A1' Fixed offset@<vv.tTly*wqH :endX TU/S@<[ Microsoft Agent 2.0 may be downloaded from:1@   0 0dl .1?5k $G'ee'wi'Border'1 3$(x :case'?CheckClose'c(\erase'aaa'4vLxylrHn H'X1,',(A),'A1,X',(A)+S-3 SIZEHL designed to speed up application development with APL+WinL<{ OS((IDV)-/RN)OS+OSB<N܌L,xEV1'Round' 'Square' 'Oval',`d TFlexGrid$='dd'wi'yearmax'70$(D wi'ShowDemo'(h :else0 TComboNO, :case'># ',,H :case'<> ' ,0 wres(^\Rtcnul)/R]0l  :endif08 the function being debugged.0(OOTw :end 8 FIELD wi'*onKeyDown' 'GLaborHnd'8H :else <` subsection: typical shop field1<d T(SV)/wi'..fKws.*children' select hi-lighted object namedP~ 1. line number: (1+(jobfile offset(FOS) of 50 components)P4) :andif 0/8 32 37 39warg[7]44T 'wi tabstop=' (wi'*tabstop')40h wi'*..Send'080txM D2D zzzI Lfn78'pp'wi'AddOption' '&Third Option' 'Q'38̀ :endif$|T :case'aplname'C$ :end|A 10 TJpg86:0 F(1+F"'")F @04:piaaa'', :case'> ' ,r :end8'pp'wi'AddOption' '&First Option' 'N'28(t8Ȃ'pf'wi'Set' 'Shift+F8' 'LaunchMyApp'8H TFormpX1ȃ(H :case'DHTMLClass'1(| :return 0$, :andif debugcommon$ \rowscols30 ܁ TInfox G0 4 (C[i]) WI'*caption' (D[i])on4$  :end 4Pg wreswi'*property'4@Y Edit function Classes in a maximized window@  wi'values'1 0< wresJ,M,L,K,wres0 TPageā 10 ,d C'TForm"Action"',XJddd TList$@Zfread HIDS,CNO$ CapsLock RA;R $ FHN GHistory 9$, wres'TListView',PM NAME 'ff'wi'Show'T PM Be default the form you are creating is always automaticallyP, :case'<> ' , :endif$'wevent=' wevent$ i'pp'wi'Next'Z 0'pr'wi'fontname' 'Arial Black'0(R :case'methods'( :end@08e wreswi'?ShowDemo'D0$8 FHN GHistory 8$pm :end8Agg wi'*onCellMouseDown' 'ShowEvent'18\D0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name') \(r :case'CountryIndex'(`A TEditMenu t :else d O0  :end4 GKwDefaults 3/27/0040Đ ((M="'")/M)' '0440 0'ff.st'wi'*Create' 'TStatus'4$l'ff.ed'wi'Undo'4$X( :caselist'TButton' 'TOKButton' 'TCancelButton' 'TOption' 'TCheck'EDXP,R Before quickly exploring all APL+Win 3.6 objects let's studyP( TEXT = char numberT(Lv3:ELXE Ds0 0wi'*.url.onClick' 'TConferenceExample"Event"'D( :if 1wresz (Hnuntie 1Tl First an APL+Win 3.6 Object is created using the Create methodeT( TProgress  check  'ff'wi'Show' L$ > means: below or to the right of the previous controlL0=0 0'pf'wi'*Create' 'TPFKeys'0$y'dd'wi'yearmax'$\|d0 0'ff'wi'*Create' 'TForm'('*caption' 'The caption property')('ontop'1)\0 FF,M(M' ') M0L TFTP|l :end( :if 2=J X( I0(7 :if 27=1warg( Size \WC[3]W[3]-10 Tc :else $D'ff.ed'wi'Undo'/F$h :end, F=Form (i.e.'fmDuct')Z,,E:end(,u :if 1i ss '.op',:end32z HIG<( connection information, user name, etc.'<$l'ff.ed'wi'Undo'$t, :end,` ZD wi'*Set'('*sufoffset'(G H-2D wi'*where'))('*sufwidth'F)t`D :end ` :endif,HN 2. black ,H=:end4l>'ff.ss'wi'*SetSelection'1 1 1 141t<:)t`(dd t<d Fired by mouse click on an item label<0P classesclasses, 'TCommandBar'08p FIELD wi'*onKeyUp' 'GLaborHnd'pt8 :end :4$ Matching descriptive message4, :else ,$p :endC,8_ :case'=LL' , T :elseom $4 :case'?aplname'$0|_ Dwi'Properties''0< State: ccc n or ccc cccw<,a session on aaa is closed!,, an APL+Win application. ,t :end 4p Change the subkey default value48tf objectbase form name. i.e. "gw"b8  'ff'wi'Show't  :if 1FVED <0y SIDSSIDS,RN[1]SIDS,MIDS<<L (OS SV IDV)(Pwi'..*idparams')[1 2 3] a<(Z (G H I J)M(( :endif(8p{ SHOP wi'*onKeyDown' 'GLaborHnd''8< Ttexta 07/23/01<k TDHTML00@ 3. ductboardM?0L| re-sort and select item names and their object namesL< :if ' '1texta 07/23/01< ='ff'wi'Show' ,< :case'<> ' ,8 CV wi '*color' (toattrs[1])78  DATE20001231' ( TCommandBar ( TOption$ FNV FHN 0$K, :case'># ' ,dreeePID1(-1+(texta)' ')texta 07/18/01s;P M'ff'wi'Show'1 $ Add methods' 'ff'wi'Redim' erase'data' ,ȝ :case'<>L' ,Ln AL1 0classesclasses, 'TComboFilter'0LB LHLIDV[SV2] current bright itemL48 :if 3=+/OS=OSV44< to you object. Do as follows:4\0O :if 0=C if no class to spy...a\@  wi'*onChange' 'TEditList"onChange"'le@8T S1QTY wi '..TextSize' '999999'80p% C1 decrement0l an invalid item when in edit mode...lh$0 0'f2'wi'*Create' 'TForm'('wherelc' '>' '>'200 300)('ontop'1)'*Show' 'SessionFocus'h8U menu options, accelerator keys, etc.8NAME AGE@ Reads data from hvac job file jobfile[1]1@ 'ff'wi'Center'  Redim formT <`e B'0' default to "0" man/hours<<| wi'..*edobject' (T[I])i<< 3. Oval (toc3)ro<XRED255 0 0HFSC wi'*where' (9,(+/W[2 4],-5+20),(+/W[3],-10),20)HL :elseif /33 37 381warg move upctL(x :endfor(y TFileMenu Hdr10[1]zzz @ wself1EdObjects 07/20/01@  TStopWatchW $e'ff'wi'*Delete'0 $(d :if 1=D d(0ԕclassesclasses, 'TComboList'0dL :if 1=warg if no property value specifiedaEd, :case'> ' ,,D :case'<>L' , \ positivefloat LH$ If not explicitely specified, the Reference control isLXFNV''$| :if AR.>P Q$ hebbbaaa[30;]]  YY^   V Inp`F0xaaa[;1]10xOO D'ff'wi'Show' Ld D(SIDS(SV)/IDV)/SIDS sorted selected itemsLLG:if ~Twself 09/06/01 should always be the sameL0 4. Aluminum0\ MC wi 'class' classes for all objects\ 'ftp'wi'Send' p EE @p Reads data from hvac data file datafile[1]@Hx W1V field widthsHtt R0  JWG/Fred Wade `aaa 8 :end,:endhM :end8SOUND;Aș:endR0 hGREEN0 255 0 P[2] 141@( :ifD2wargn( Shadeess BLUE0 0 255  wi'threed'1 4@ wreswi'*property'n4   :return ,3 :case'=LL' ,OO gg wi'*Redraw'  E0P-C+T LW control to those items containing the typed charactersL(Դ :case'left'(Ph)0 0'ff.ed6'wi'*Create' 'TEdit'('wherelc' '>' '='  '#10 14')PLEfi 2E Ht(h C(2warg)~' '(,[ :case'>>L' ,$  TFlatButton* F0Q-D+T+X(0 :ends(F0Q-D+T (T Hwi'*hwnd'ǵ((d :end9(PE0P-C+T+W,  :case' ' ,,pu :case'# Cwi'GetCommandLine' F00 E wi'*text'F00m wi'*columndisplay'Z)0$texta(SEL)text $( :goto exit($T :selectwargy$(} C2warg( < :end $ :case'property'$ a:case'onTimer' D( or the word 'Method' to your method nameD(do or 'property'value(<# Awself , wres'Description',$$ A  object name$, Zwcall'W_Forward'0,  :elsess ,4 C'TButton"Action"',( :if 1=Cwarg( :elseit,x t' 1.00's,,| wi'*text' ' 1.00',x :end$> A  object name$( :return((` :case'borderstyle'((LC wres'TStatus'($ Requires: (F)$$$ :selectwarges$$ :return$(, S[;4]2De(:case'New't X:if 2nc'A'  43 wselfA wi'*Create' 'Status'4 p:case'onOpen' $$> :return$Dp wreswres,tcnl,' 2 Caps Lock field'D$H> :end$( GKwExit($= :case'class'ces$  :if 0=V ,@iF'fm',,'ZI2'fmt 100ts,lQ M1M 0 :return 4 wi'*SEL'(SELwi'*selection')4$:case'MouseDown'W$4 the MouseUp case statement4,8 Requires: (O) TMsgBoxp,  H0( wi'*selection' 8 0(0̶ wi'*charwidth'Z0T! P'MAXIMUM FOR THIS FIELD IS <',(wi'count'),'> 'T  :case 45rn 4Tsi[1;] 'KeyDown - warg=' wargg44 Web site: http://www.uniware.fr4`:if 1>L'(:end `:elseL AA,'MISC Miscellaneouse itemsEQUIPDesc equipment' LD8^ wi':*toindices' (4A) takeoff indicies ( D L :return 0D.5Q-F+T (  C8wi'*where'(4L M(((2tcnul)M)1)M4L Function to be executed during intialization of GreggwayLx:endHX:elsei  :end1,XLa AA,'MISC Miscellaneouse itemsEQUIPDesc equipment'LH VFI 44A hvac(n).job numbersHHD, A'SQUAREDesc Square ductROUNDDesc round duct' H4 More that one hilighted item4s Job name8 :end$ :endut L- RA(empty passes 1 2 3 and 4) 1=OS 2=selection vector'L:endRjobfileX:end0 GEnableNext 07/26/010, :if tcnlG , JJ 4"wi'*caption'=" (wi'*caption')'4,n R1 ,,0 :select 1wargs,0 wreswi'*aplname', 0 Inputt :else?0"wi'check'=" (wi'check')0L8s Example: 'MS Sans Serif' .8 TextSize 'Titre1' 'Titre2'LH< A'ROUNDDesc round ductSQUAREDesc Square duct'H4:if ( 'caption')wi'*properties''4Hl` :if 1=YesNo'ERROR: ',(si[1;]),' Abort and check?'H(N :case'># '(( :end?4'wi *selection=' (wi'*selection')4, Resets wi '..*kwparams',P JWG-10/30/01 wi':f1.cbName.*list' (wi':*jobfilelib')s P T :endP ( :case'<> '(HTU 1=ROUND 2-SQUARE 3=OVAL 7=AIRDIST 8=MISC 9=EQIPH04 return to the edit box.00 wi'*.tTimer.enabled'104"wi'aplname'=" (wi'aplname')'40D SIZE wi'aplname' 'HDATA'l0,xY look for empty jobt,,(RGHvacJobfile;T;N;TN;V;R;A,,4 RRAwi'...*idparams',, :andif 0wi'*text't,, Twi'..*kwparams' MO,P :endnt B HD/H0D CT wi '*class'=0@:select B A:case'onClick' $? File,2C $$B M(1+L)M$( :for I :inC((@ wi'*onExit' ''(D= CD/Cp@ :end L :end $B Title4C $$tB A  object name$$ B  'property'$$LM MM,tcnul$$C TitleTitle,TCNUL$4?COLOR(80 255 255) (255 255 255)4,u (c)1999 Eric Lescasseze,$? Filter5C $$ :case'?count'c$  :elset  :end1$B Ext4Ext,4TCNUL$0 F wi'*Focus''0> Awself $D Ext3C $0 lCustData - Not used.00 Top form OK button hander0|N :endG GWEquip0 |L :if 0$((L.fMI$| dataclass$Q.fEQdefi00 Wwi':l1.*where'0Ђ UCSTOP '| :end1B:select B1$D :case'question'$  :elsent D SV[]0 1  :end'  :return 1  :else  :end D.*style $ wres1rs$$ą wi'*Focus'$( Greggway properties((< a'TEdit"Action"'( *Open $ R  R, M$$ :if 27=1warg$$D A  object name$$| wargrs$40! aa,tcnl,'GWToData"Action"'n'4,L or 'property' valuet',$̃ wres10$$0 L20: R  L$0=text'xxxx 123 456 ccc 789''0h@:andif 1<+/'L'=IDV there must be more that one item that starst with 'L'h$  L(-1<+/L='\')L$H( LM2 $" :endg$mio1,(:elseif (0 :end$@ EE (p SV[]0 ( KSV[I]1  x:if 1warg[3] `:else(X :andif 1=+/SVn($ :end$ :end(< :end(x :end1 GInfo si[1;]s ; 10(P SV[]0 ($< :if 13=1warg$,v :endif4 DESC wi '*onKeyUp' 'GDescHnd'4 p equipment  CW[3]'ITEM' (d DM,DM(D :if 2=R H GTurnOffIds H Select item from the current visable itemsH( :end (H? Size edit box must have a number before exitingntH0| Get Windows Version"00  wi'*owner'000 wreswi'*owner'00 wreswi'*title'0(WwselfWI'*where'($ :return$0| Inp wi 'aplname' 'HEQUIP'0 nerase 'FHV' (EDV WI '..visible' 1((EDVU wi'*children'(s  < BW[2]'SIZE' 4u Inp wi '*onKeyUp' 'GInputHnd'4 GROWS[ROW] D HH,',',(C),'A1' TAKEOFF DATAD x W1V D V(T,'.ed1') (T,'.ed2') (T,'.ed3')wi '*where'DXH VALUE current pos, max pos, pg size inc, min pos, enable tracking:BX,$? :if ( wself)T,D:if (C',F) '=', S,5) Position under prior first item`4З :return required4 ( SOUND DL :andif (wi'*text')=wi'*selection' LD$4 :case'integer'$0KWS(R,'.fKws') wi'*children'0L8 with one or more partial matching itemsidL, :if 1 GRoom T,4=================================4 p LFLAGS[;1]1 Ľ :return X :return $ :else$  :endD  :return Xw the air distribution, equipment data or the misc ID objects.X(Ⱦ BEEPpA((` :return(  IDVSPLIT IDS $ :return$ T :end  :endy' 4 :else t new row :if font[3]=10 ` OSV''   :else 0 :CaseList 'all' 00,D wi'*text' Tu,,(VALUE[1]=OSS[2])Lend ,h P' A number is not valid as the',tcnl,'first character of an item.'h0l matcherH[;1]B00w DESC((IDV='')1)IDV0( UCSTOP(,' :if (NHL=C) U, :return0pN Reads data from GWSDOC FILE0, FLAGS[NHL;1 2]1 ', :return  weventDW do not have a count but that one is implied.D((  GWQty 'Shade'(( GWQty'Shade'*@(Dp CNOCNO,TCNL,'CNO[5] HItems.sf definition'L@D, FLAGS[;1 2]0 ,,H'SCRNONHL-OS....:',SCRNO,,$'LHFLAGS[;2]1.....:',LH,( :elseif 0T((P :return((ITEMS[3 9]FLAGS OS (d Caret moving next to a full or partial item at the end of the text boxd)dlzA TEditList B;C;D;E;F;G;H;I;J;K;L;M;N;P;Q;R;S;T;U;V;W;X;Y;Z;io;wself;O;matcher;c2s;cs;b;alx MB_OKe:D (KV DESC)2 4 Twi'*kwparams' 09/06/01D,(wi':*jobfile' jobfile,\`FM wi 'def' Fdef  FM wi '*Open' Class frame save history row frame\Dh :return return to edit box 07/09/01D(NotValidItem;T;V;U;Ae"A( V''t:$  :endl1@` :andif ~'MouseUp'wevent required for NumButtonHnd 07/25/01`$D :end$(frame wi'*font' font9(p :return 44 ROWS2 maximum numbers of rows.4H\ 07/26/01wi'..ed1.*selection' (wi'*SEL')H< H(A),'A1,X',(A)+S SIZE<0L MAT wi 'aplname' 'HCOST'0` RB<+/2,SA,1WI'TextSize' ID font add size of string to item 08/12/01w`$@ :endown$$ :return$L- S1DESC wi '..TextSize' 'DESCRIPTIVE_INPUT ITEM XXX'LT:if 0=TsiD8^ V HistoryHandlers ( 'h'),,VWI 'handlers'D$| FNVFNV,FHN$$t FHN GHistory 8$T GPutFactors (,C)[V[3]] display job factorsT$ :if 0=NC'FNV'$$ AW[1]'QTY' 5$T N1+1/VFI 44A hvac(n).job numbersT$ EW[5]'SHOP MHS' $$$ FHN GHistory 9$$ AW[1]'MAJOR' $T  r  whT$ miscellaneous$$P DW[4]'COST' $ 08/20/01$@EDV wi '*Open'p$T :if vi ID Is the selected item a numberT$ BW[2]'MINOR' 8$$ BW[2]'MINOR' 7$Tx SV(ID)IDV ss ID flag partial and full itemsT$T(EDV) wi'..*Open'$$ Hide othe classes$TH :goto paint reset initial screenT$ROW GHShow CLASS;NO$T :case 38 Up arrow: Move up one row to the closest itemTT :caselist 32 39 tab. space, right arrow: move rightT0d ID wi '*onKeyUp' 'GIdHnd'0X/ SIZE2FM wi'.edSize2.*Create' 'GWSize' ('.wherelc' '=' '>' , S)X0 wreswi'*ext']0$ SOUND$ 8 :endnt  :return 10 :elseif ' '=1T=08= 07/20/01  :end  :else t :end1 $ P[2] SV ag$(`SELwi'*selection' ($ SVSV p$( T(text' ') text((8nexttext'' default( h wres2  SOUND( wselfwi':*self'(  :end $ :return$( that has a number.(( GWYN'TEST'((, :return ((T :if 13=1warg?((| :if 37=1warg(( KC1wi'*caption'(4$ CV1wi'..fIds.*children'4,PCV1wi'..fIds.*children',( :return(  wres2t' ($A :case 'mat' 'other'($:if ~0=DEB textss$(TV~^\' '=VIDV  ( :case 'KeyUp' $ textwi'*text'n$ | :if TKVe 0l I(T SS ID)/T')0,( :andif 1=wi':*cot', 8 :return $ :if 32=1warg$ HSOUND;A1+:select B dE:case 'KeyDown' 0 wreswi'*dir'i0p:end$( R1 e$$, wi'*selection' 0$D| Swi'..TextSize' 'SHIELD' an name 'SHIELD'D$ R1$$ :end$$L :if 0T$$ :return$$ :return 1$$ :return$$( :ende$; :end1 :else:select B8 :return$ :if 0<+/SV$ :case'Resize' 0G A TGYN B -- GWEdit Objectt'0$ Rwi'*Wait''$ :case 'TEST'nt $GInfo 'MouseDown '$,X :caselist 13 32,( :for i :in J1(($. C wi'value' 99999(Db Normalize facenames in LOGFONT structuresD$  :case'wherelc'$( TReadSelections C((t:case 'Op.onMouseDown'(0Tclassesclasses, 'TPassword'm'0 x R1 l' $  :endter$0lcclassesclasses, 'TPopupMenu''0  :end  $0 :end1$  :end $ :end$$P :case'?wherelc'$(htextwi'..ed1.*text'(  :endw' $x :elsem$(P:if''Cwi'*onAction'A($|: :if 27=1warg$$ :endd'$4 " Enter and select and item"4, Pad IDM as required.,$T :return$$L :return$0 I(ID)+(newtext ss ID)10 |:if 2nc'A' $ :endR$,  :case'TDateTime' ,`AX2E 0 :if W=4 0@ԷD wres(tcnl,( G'-'),( F),D,tcnl),ED  :return $  GWSize handlers$0 wreswi'*flags'0(M L[(L=TCNUL)/L]''( *TFrame $t :else$$H_ :endme$l| wi'*style' 0 16384 0=left just. ; 2 4 16384= right, multi, don't select on re-entryl(d L1M (, :endif:)3d@Xзd8 > |<l EQUIP R= item [count] item [count]<4 wi'*textb'(textb(SEL)T)e4| :end=I( wi'*Focus'( :return( BEEP'r( b :ENDIF $( :if 7wargs$ :else1( :if 0=Vgs( :endt( :if 1=warg[3](( wi'Delete'( :endC(T wi'Open'(| :else(@ L(\(M)='\')/M 5(( M1M (p:endselectt(X :IF 1M(h R  L( M1MS(0% :elseC, and also in KeyUp.",0 :if 'SIZE1'wi'..*aplname0D 1. Round Type of class (toc)D sizesTempSizes  :elsers  :ended R[;1]R[R;1] RE1split R PR Title 4A X 8 ReadOnly7Ae 8 :IF 0=NC 'F'  M8OFN'e $` I1+T wself'$$ :goto exitt$$Q :goto chkts$$ :ENDIFex$$0 :ELSE$$h L(-1<+/L='\')Lgs$(V :end(h :return$:andif 2=warg[3]or$$d Twi'*text'ts$(f :if ~warg[6]"(( KJ(I)E"($ȶ GWSize handlers$$0TempFileData valid$$T --- Empty fields$$ --- Set Defaults$$ :case 103 ovalea$$ L(-1<+/L='\')L$$Hh :ENDIF$$ R  R, 2Lor$$P :endr$ :end4 :end /TScroll T :endl( Q ssl$H  :end 3/24/00$  :return $\ wi'*kwparams' P$ Item :endR H/TFrame P[1]0  H,classesclasses, 'TObject',$& wi'*nomargin'1$ d' :return (  :return $H  07/18/01 :endtes$(D wreswi'*'l'($  E(+/AY[1 3])-Css$  :elsere (! :if 1=warg'(( state: ccc_n((4# :case'?wherelc'((# wres'GWData'((# state: ccc n((# wi'*text' TEXT( |! :endr' t& 'file:0@ |$ :end 0TFrame ,% wi'.lDesc.*caption' '' ,s H0; 07/17/01 wself localized0,t Check the takeoff dataWV,0V :return pass data for filing0L  (wR tl , :if 1Vc $" AYAX wi'*where' $ :if ~vi V[2] 4'  $) SELwi'*SEL' $hd :goto err$$ &  # R1 ! 10:(<hqty_Handlers;V;T;ID"(,t wselfwi '...*self',  p round duct] L Check sizes 4$u :andif ^/1TIDV4 wi'*ERR' 0rn \4((SV IDV)2 3  wi'..*idparams'4,'GTurnOffKws;P;V;A;wself, N(L-I)PW-I $p/ TEXTTEXT~' 'n$$, or 'Method'$,D :for i :in CV,,; :if (texta,textb)=SEL, @ :end (<: :if 1=warg( TD[1]V m |:case 'KeyDown' $7 SOUND$4, wi'*text' (texta,textb)4 o :end' $`A :elsen$(xvGTurnOffIds;P;V;wself(|! :if ~BD H; T[A]TCNL L 6:case 'Shade'd $2 A  object name$ H>:if 2nc'A' Dt GInfoMsg B 07/08/01 GErrorMsg BD P[2] V i(8 :if 1=warg'($ GMarkIds ID$ G Label (, :elseif 32=1warg( Continue(? :elseif 32=1warg(|ansi(? GMarkIds ID( : :elsew|@ EXIT( io1 4 :end default object4 ,. UCSTOP A wi'*Focus' $vtextawi'*texta' $4$i I(T wi'*caption')@4$p1 :ends'$BUCSTOP;Apen   t3 $\Y :if OSNOSd$4,A T'ROUND' 'SQUARE' 'OVAL'4. 07/28/01` :end$:elsep[ CB/A Ferror:$T? ccc ccc.$ Dl ID(2=SV)/IDV 3/27/00 get full id)D(^ T1T (6 :return7N$N wi'*order' 4s$$C wi'*font' bold$$LD wi'*font' font$ :if 13=1warg f :endss $A :for i :in CV$ SELwi'*SEL' DB :elseif (1warg)39 Right arrow@D I :endion 4A :if 0=wi'*text'4GCC-ETI:else E :elsee 4F right move tab handler114 @ :endte $E :endegs$ tF :elseAL (xH GTurnOffIds 1](<L1:(V)0 ( @ :if ~^/' '=IDd(D0F Turnoff items and move cursor one spaceD(L :elseif 37=1warg( windows fires the KeyUp event.4`P I7lK 10$JACTIVERED WHITEal $ dG GErrorMsg P DPJ Twi':*toindices' 09/07/011D(G :return(H :else6ND4H Iwi':*toc' Six type of duct 1 2 3 4 5 6D F :end $HDEFAULTGRAY BLACK$ 0M R1 PM :return 4 I wi'*SEL' (SELwi'*selection')4F HR:end( J :return(4J ISV/SV(K to the left( H R1 $IACTIVEWHITE REDgs$(C wi'..*idparams' P(Dg Twi':*toindices' 09/07/01lD J :endlc ,L :else] (L ccc 123 cccB((+X,X (M wi'*textb' ''(K :endl5N$0T :return$(4 Eav[C][avE]((| :end''(e:case'D2C'0D GWData'Show'0:endpR $Q R1$(O :else($N :endegs$(|N :return(N paint:(\Q :endC(TP[1]0 $P R1$(U :else(DU 104N(T :select AB(S :end/0(hS :case' '(U :if P0$R :return$(Q :return(xP  :end( :case'<> '( :endMD(LB :if 0=warg[3](LS SOUND($U :if 1=warg[3]((T :return ((hU :if vi wi'*text'($0T:select 1warggs$0$ wi'*texta' (textaT)00p TEdObjects or 0K H(U :if 0=wi'*text'(LU :return N(W with a valid number(0h wi'*text' ''0($S :end99(W:endselect<[ :end N, wi'*selection' 0 0,^ R1^ :endnd\ :endPE4 M(L)M ( :case' '(,s :return,^:caselist 9,` elx'elxelx  skip' ,WDV+TL`ETT wi'*children' all of the classes childrenL$t8 ..TextSize$$B :endee$ > :end, :andif vi T,@[ RR,T ,hs RRAwi'...*kwparams',s P[2] VVJ,e Cwi'..fKws.*children', = :else x?:case'Action' ( :case'>>L'(O wresZ s wres13 ,(5wi':f1.cbName.*value' I;O,,8gI(wi':*jobfilelib')A, :return  GInitialize (pA wi'*jobfile' E(0j :while 0=NHLIDV[OS+/RN]0`] user changed the directory while searching for files.`$T wi'*tabstop' 0$0I AA,'HELP Help message'00 SV[IDVNHL]2 2/13/000,` :goto paint,,X KVwi'..*children' e,( Jwi'*list'dme( title'' (pPF wi'..*idparams' t(xwres1O', :caselist 13 32,:end;]D0T skip the increment/decrementing count routineD(Lp wi'*Focus'(0pwCK+M+.5(1wi'*..size')-K+M+E0( m Cwi'..*children't((PF wi'..*kwparams' (( k DC wi '*class'e((l:case 8 Miscellaneous(Dk ^ Or or a number or a spacD$pn :return$4 UCSTOP  UCSTOP 09/01/014$H SOUND'$(ܪ wi':*ERR' 0w(P a :if vi ID Numberic string" PLt JWG-10/30/01 WI'..lDesc.*caption' C 09/06/01L t:case 1 Round 0 :andif 40=1warg0 X :else (4[ wi'*Focus'(  KSV[]0  D Turnoff hi-lighted but not flagged item 3/9/00CD  :end  BB,TCNL,' <',(U),'> IS NOT A VAIID ITEM'D F0  :return (:else \  CC,tcnl,'TObject"Action"' inherit from TObject\$$ :endth$4@5 :if 1wi'*mode'4$L $$ :else$ 5:case'onExit' , wi'*text' text,0$ :if 0Fwi'*parent'0$ :case'aplname's$( SS[T](,̴ :if AU,$ :case'?aplname'$(; :endD(, or 'property' value1,0n Hwi'*:hwnd'0:endneJ wres'Displays a form showing all available toolbar bitmaps in BUTTONS.BMP (located in windows directory)'$ :return$,h warg'',Ď :end$ :return$D In class frame. Set material and typeD( :endab($ :return$D  T0 data component number: i.e. n,n...59 55 51D$x :end$$@ R1 s'$(S F.5+F( P R0 ( UCSTOP($ wi'*nomargin'1$  :return (\# :elseif 1vi LS?'(  :end ( State: ccc cc(( BEEPl'($4 F11(~' 'F)/F$ $$ :else ( wi'*Focus'(Dc wselfD wi'*Create' 'TForm' '*Hide')DD FF~'class' 'methods' 'properties'D  10 $ F(+/AY[2 4])-Da'$(? :else((( :andif ~LAB($ :return$$Я :case'children'$$ :case'caption's$$ :case'?caption'$$ :case'class'c'$(l :if 1=wargrg((  wi'*SEL' 0s'(DpM wreswres,tcnl,"boolean: 0 or 1(=ontop)"D$( :else$  SOUND'1 D :end0@  :endize $  :end$  :else ,$  GWSize'Shade',$d :end$$ R1 $,H NVC wi'children',, :ende',D Note: Trailing blanks must be dropped fromouD( :end''(( :select ID(( :case'?modalresult'(( :if 1=warg1(( :for I :in C(( :case'?Document's'(, :else,(@ :if 1=warg0(,x :if 82=dr JH,0 :case'TListview''10( :case'modalresult'((< wres'TForm'(( :if T/1CV(dx 5. write the necessary specific code under the Add lines below ... commentd(x{ :if AU((@ :if 1=wargt(   Shield header $ :case'moveable'$$$ :case'?must'$$  :case'noresize'$ 0 R1 ize H R1 et ( :if 1=warge'((d wi'*text' ''($  D D+.5AC-D+F'$ x :return (< :andif vi TEXTs'($ C C+.5AB-C+Eg$  :elseFK $\\ :case'?suffix'$  R0  :END 4p wi'*size'(D E--S)4,Сclassesclasses, 'TOutlook',D  L,tcnl,(((1L),14)14'Methods:'),LD$ :case'ontop'$4xO wcall'GlobalFree'hMem4$X  :elser$$$ :endIF$   :if 1O t :else  :case 'bnOK'  TD[U]   R1 <  R1  :return 0TZC'ffDUCT' form name0 | :case 'Show'e $4  :if C$ x :end $T :case'Scroll'$D B' < ',(3,(U),((+/V),3)' - '),' > ',tcnlD0k wi '*color' (toattrs[2])0D " Continue and let GDataKeyDown handle"lsDDt the last item and the item will not beD  Wrap name D@ Move cursor to first invalid text stringD$ :case'?just'1'$  :end $ :else4$  :end $T :case'?left'12$ @ :end1 , :if (I1)>I2,DXz the text string else when a home keyanD,` 0 0ReadSelections C,, wi 'caption' 'OK',, FWNV WI 'where'@,,@ :end Must be left button,4p 'Print Error: CREATE IC FAILURE'4Dhk with the curor adjacent to in last char in anD, H11FSIZE HJOB,, '***ERROR ***' ,Dm wi'*text' ((wi'*SEL')texta,textb)D$0 :case'attach'e$$:case'MouseDown'$D C SetSelections 1fread HIDS,11 09/01/01,8D$  :selectwarg$,} GInfoMsg P,$p'wevent=' wevent$$ :selectwarg$, :if AU@,0X HG ROWFIND F0$X AYAX wi'*where' $( :for I :in R(,, :if 82=dr J,$T:if 2=nc'debug' $`L+ wi'*columndisplay'G change the column headers`((n or 'property'value((4 :case'TGrid'D((1 wi'*text'C((\/ CommonwargG((l? wres'TMsgBox'(, :if~0Cwi'*aplname', ̦ :else $P8 :case'?Sort'nss$(|N ccc ((d :if 1 GRoom T(( :elseif 32=1warg(D0  R1 return to exit box.D4E ID(-1+(T)' ')T4  :if vi B  BRAwi'*text' $|V :return$ 0! :returnrn $P!GInfo 'MouseDown '$ t! R0 n $L Twi'*text's'$( wi':*ERR' 0((h" :andif 1=+/vi Ba(,T:case 301 Miscellaneaus,$q B  'property's$ $:UNTIL (ID)=K l#:if 3=nc'TDoc' $":orif 0=ID2~' 'CV$$Ntexta(SEL)text$( IT wself"'((8$ wreswi'*'@((`$ :if 1=warg(0h% D(2(D),1 1)D00 Qwi'FindWidths'D0(/ wi'*onAction'C(, wi'*caption'C,$) :selectwarg$,( Classes of Takeoff - cot,$H# A  object name$D 1. Duct Class of takeoff (cot)D4  wreswi'*wherelc'4  :end ' :else $ TEXTwi'*text' $ ':case'Action' $( :case'sorder'$($ :if 1=warg((( :case'?wherelc'((( :if 1=warg( D* :end $ * :case'?attach'$  :endt' $T :case'class''$ 8( SOUND' $ :case'?next'$  :return $x :case'attach'$ * :if 2=I $* :return$, tGMoveKwLight text,W RR,H `x wreswres,tcnl," 'S'=system modal - can't do anything in Windows"`. D (K L M N)(JIE)wi'*where'D   :case'spy' , L2:d5 M(L)M P( wreswres,tcnl," DataObject 13 8205"P :return (P wreswi'*'e"(D; E150? Cvr C 1( wi'*text' ''(H B100 100 10000 100 100 100ts[3 2 1 4 5 6]H   :end 2 ZZ,':' (q :if 1=warg( @1 :else'  ! :return1(( :case'TList'"($= :endt$1 debugAA $= wres,D$H z$(1 O2(2warg),0 0$(P, :if 1=wargod(P? start si 3 :elseow  :endro  H,'Z' 103 J0 0' '   H,'Z' '$(2 (P=0)/0es$h3 H,'Z' 1$ zmix zcus$P5 :return u  :end4 x4 :returnȄ CC,'.sf' @4 Z :end1$5 :endselect$$4 R1(1 :select X(X :endif(h4 :case 0($4 JSStoMAT tcnl,J $P M(L)M 1? R1$4 (L M)D $( :endle$ :case'ChStyle'b$  :returnr6 :returnaa(X1 :if 1=wargows($l ZZ, ':end'$  :endon6 :end8 wres2 $ :endex$6 :endr(1 :case'?resources'or(6 bh35 , Dwself,'_suf',$`  :if 0DE$$p :endngs$  :ende l M5 $< :endor$  wi'*xCols'H  Fwi'value'On  :endr \ spacehnd:i ( :andif H0(  :if vi LS $H C(+/AY[1 3])-Er$$ :elser$$` BEEP$$' :case'class'tte$$0 :return$$  :andif vi LSs$/ Cvr C '( :if 1=Dwarg(   M5 DC wres"Send one or more keys to an object"iDT MSC01t;DD+Tt G3warg  ? :else P Type name p@ :end CK+M+Y(p< wi'*Focus'( (! :end P< wreswres,tcnl,"Syntax: 'object'wi'sysmenu'boolean"P(Q :if 1vi text(L wres'Get or Set the application general title'wzL(lI :end(gw,P wi'*mode' 'A' ,,@I wi'*default'1e",  R1(HD :andif '.'text(4 End of 32 space key handler40fclassesclasses, 'TDateTimeFr'0$* GWSize handlers$D, :caselist'TCombo' 'TComboFilter' 'TEdit' DDDHS B  char string or nested vec of char stringsDL:select B0$ :if 0=wi'text'00 6. Stainless040 :if 'SIZE1'wi'..*aplname4D Edit Mode: Do not hi-light items.D(P 2. 12 1(, wi'*centeron' '',(dB :goto L280( :end GG 0O :if 'ID'wi'aplname'r0( T :goto spacehnd( dK save udpe GInfo'KeyDown' XD :return D.:case'New'm('===================='(l :end 0 x :elseV ((  Twi'*lvname'( Į :else $L  Twi'*lvname'$ M:if 2nc'A' e ,| Zwi'*suppress'0,0 Gwi'*list'H)0(tJ :andif ( T)IDV( A I1+T wself 4Xj=================================4(XW :andif (IDT)(4T :elseoc(P wi'*scale'5(|P :endew G:select wevent T :else1(  wi'*lvname'T($  :end $M :end"$H|0 0wi'Place' '' 'Finally turn off the gridlines ...'nH \ Filter5A er ,De HH wi'*hwnd' ,(O ID(2=SV)/IDV(x :endX :end'u V[]0 4ؖ D(D~ 'help'), 'help'x4 0 :return a'COPY JOB ' s' 0U funtie (jobfile[2])0$ a :endR$0p"DAE2+2 2(2D)wi'*where' A0 :end$:if 82dr TEXT $  K :ende (LJ toindicesIT(p wres2oc, LAB1,Hide   :elsel $j :case'?attach'$,` WNV wi 'where', l] :elserm (] subsequent frames( [ :if 2=I (\ :if 0wi':FMV' ( <\ :end xY wres2(|G :endwhile(\ :endYN$H` :case'attach'$(\ :endif(9:endselectD ^ :endrn ((] :goto paint(DGTurnOffIds 07/21/01D 4^:case'Action'1 T^ :else t^ :endta ^ :return \_ SOUND1 dV format2: $_ GCreateJobfile$D` to create a jobfile during development."D _ WI'*list' f :end3 $_ :if 25xfnums$$V A PUTHJOB 9$D :andif (T(wi'*texta'),wi'*textb')=1SELD$d :elsen$ ^ :end1 $X DATA PUTHIDS CNO$4xF ZZ, "infoh id class text"4 8X :elset $d :return$ R1  b :else1 (b :andif ~vi ID($'($Xf---- Display error$(@d :if 1=warg($hd :elseif 1=R.$ he :elsex (f :if 1=warg((d C[4]C[2](  e :end  :case 38 (g wi ('*style' 4)rg($0g :case'wherelc'$(e :if 1=wargrg($e T wi'*Focus'n$$ wres1rn$ l` :if 1=t,C (\\ WIds wi'*where'( \ :if 1=I (f wi ('*style' 4)ID($] :case'?attach'$ e":case'lvAnn'"m th :elses $|f :select 7warg$ i :elsere $h :selectwarg$ h :end0 Tg:case'Focus'rn $i :case'class'V$ h R1 1 (Pj state: ccc nn ccc n( 4[ :endfr (pi textawi'*texta' ($j :case'?wherelc'$$T[ wresC$(0k wi'*selection' SEL($,j (3D)E$$xj (3C)$$g Cwi'*edit'$$ :case'?aplname'$(\ GMarkID ID((k GEnableNext(:end(; or 'property'value(:)c0/PTxď  `D  x  L  f   ` Za@=`a\acDYԀYXS0XؓXX$xXT   \U5 2V d.!-"`U#<&$,%C&T'(J).*LL+4,<- .3/0l12!34`f5F6|7H8 9,:d;`<=\,>8?M@XA|xB`gCDLdETF$ 4Pg M(drD)11 323 6454< ====================================<d 13 4 UDEB V/U Dp As default move to prior size field.DL Turn off the keyword item hi_lights and reset kwparamsLl Zwcall'W_Ini' '[Constant]MB_TOPMOST=262144' be sure constant MB_TOPMOST is defined4lx F***Ajouter une mthode qui change les captions des contrles en leurs libells pour auto-documentationx<war< 07/17/01 :orif 12wi'..*kwparams'<TtZ:if 1=wi':*cot' 07/17/01 class of takeoff datad TD8o :if 0=(wi'*text')~' ' 07/25/01DL$ Validate's data on an enter[13] exit from the class's0,Lq ma' Dq Validate duct data 07/06/01D@ P'INVALID SIZE ENTER FOR THE SECOND SIZE'f@Dxr Validate class takeoff data before placing therD@G IDU select 1st error string01@Lrarg`r L| handle tabbing between hi-lighted keywordseLs:end 40 :returnus4Hp performed in qty_Handlers/SizeEnterKeyHndHs;elDr texta ccc {revised}D,% wselfwi '..*self'',t 4t :returnV40% GValidateItems0u TE8h.V[]0  P[2] V  wi'..*idparams' P80 :if 4=wi':*cot'0u $ GInfoMsg B $< wi'..*edobject' (T[I])0<(- 07/18/01 :if 1V(P Turn off the items hi_lights: Reset selection vector (SV)seP@@s A(1=+/V)'A' select invalid char strings@v1(  :endn(g uP SV[I]2  P[2] SV  wi'..*idparams' PPlwCDE8 GTurnOffIdsup8w@v CV1wi'..fIds.*children'@$A R (10) (text)$H< rSRK  ;Eth8w :if ^/1wi'*mode'8xX(1wi '.fIds.*children') wi '*color'(toattrs[1]) 07/17/01X@0x 3/27/00 :andif ^/1TIDV01@@y wi'*SEL' ((T),0) @4 3. FG/ductboards4Xy @z 1: Caret will be positioned in front of1 a@xzzwPA :if 1vi 1T T is a nested arrayPHDt(1wi '..fIds.*children') wi '*color'(toattrs[1])HPUVIV mark 1 if a number QTY,DESC,ID, mat,shop,field,otherPz0~ ===============B'0\h- :if 1wi'*mode' is cursor within the text string\{all0| :if 4=wi':*cot'k0\D|RGValidateEquipData;U;T;V;A;C;B;D;ID;IDV;P;CV;OS;RN;I;E;V1;texta;textb;SEL\|App,Le Size checkro,\ :if 1wi'*mode' is cursor within the text string\d} ( :return(,} wi'*selection' 0 0,,~ T(T' ') Twi'*text'',`U I1 Air distributions items will be stored in a spreed sheet'`$~,E :if tcnlG ,,4 wi'*XRedraw' ,\` Result: 0=memory failure, 1=OK, 2=Cancel, 3=Abort, 4=Retry,Y\<,8 GWSize'Shade',0 wreswi'..?wherelc'0\ N(fi C)+10fi t factor current number by 10 and add to count\(,` :if 0wi'*text',,P or 'property' value,\ wreswres,tcnl,"2. change all programs depending on 'countries'"\Q(ԓ L[(L=TCNUL)/L]''(O0 wreswi'*next'0( L(1+M' ')M(\ S'MB_ICON',('?!i'I)'QUESTION' 'EXCLAMATION' 'INFORMATION' 'STOP'\0 wreswi'*last'0( L5: Flags+/F(0 wreswi'*caps'0(t Fwi'*flags'(8 y :end GMode8T U(V1~viT)/T select non=number char strings01T0$ wres'Get or Set caps'0( :if 1=warg(Xĕ wreswres,tcnl,"next: 'next object {ff.ed1 or ff.ed2 ...}"X (г :if 1=wargr'(І(Դ wi'*file' ''(pJ When check duct classes GValidateSizes must be executed before validating the takeoff items1p 8 B'A number is not valid here'8Tx wi'*style' 0 16384 left adjust, suppress hi-lighttsT@z Validate data on an Enter key exit from the@<0 V~V flag invalid char stringsys<T wreswi'*' default processing)T(i< check for a number added 07/23/01C<T wreswres,tcnl,"Syntax: 'object'wi'sorder'{number}"tsTl8 :if ^/1wi'*mode'8M@ 1: Caret will be positioned in front of@D BDEB B,' ',C,' NOT ',D,'VALID ITEM',(A>1)'S'DxDL/ P'<',S,'> ',B,' ','Invalid Size',(1<+/R1,R2)'s'LXt, |frame ItemLabels IDS;t;C;N;R;W;LIM;ROWS;F;S;IDV;color;T;I;NV;K;A;ROWS;SCrnw;U;KEYS;IDM;DESC;IDNOM;MAP;L;D;V|8tc (wi'next') wi'*style' 084H, search number choices4 (i :return (̙ C(1 1)[warg[3]]((4 :if 0=vi T[i]( a :end1 (b wi'*text' T($a :case'aplname'$  :end0  SOUNDfro < :return $j:case'lvAnn.Focus'$  :endrn $ ID(1+ID' ')ID $$ D wi'text'Crn$$(h SOUND1$ 8 :return rn g:case'Action'ok  :end0  :if 0<+/SVo h :end @ :ende7]  :case 13ox $ wi'ok' 0$   R1 $ :IF 0<\H)/GL'$  :return $( SOUNDt$$ ID(1+ID' ')ID $d,:if /'SIZE1' 'SIZE2' 'QTY' 'DESC' 'EQUIP' wi'aplname' 08/11/01 07/31/011'dxp wres'Read-only property returning all children from the form and from any of its children'"'xDlerx')|4R wreswres,tcnl,"delay: delay in seconds during which message is displayed (between 1 and 60)") |@ :if 1warg[6] 1 flag a repeat.s@@  wselfwi'..*edobject' 2/28/00@D wi'*text' (Ttexta,textb)Dd] :andif ^/((0=VI T)/T)IDV and all entries are valid 3/26/00dh 07/28/01 wi'*selection' 0 0 place caret to the first position 07/18/01hL V~V flag invalid chars'fLTD adds a space and mucks up the back key routineT`Ď T (TE),SV/IDV pick first full item 07/27/01')`\ wres"Display the dialog and return 1 if Ok pressed, 0 otherwise"\X$A GWDesc B;C;D;E;F;G;H;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wself;I"sXXx wreswres,tcnl,"last: 'last object {ff.ed1 or ff.ed2 ...}"X<܋ 07/23/01 initialize required variables'<P  wreswres,tcnl,"Syntax: 'object'wi'last'{object}"PDt  wi'*selection' ((T),0)D@ wgive 0 release the deferred action.@8  :end GMode'8H! (toc)Type of class (toc)dHLs wi'*selection' (((U)+((DEB ,' ',T )SSU)1),0)LtDv wi'*onAction'('GWCost"Action"',tcnl,'TObject"Action"') inherits by default from TObjectt 4 SOUND pK RIPа :end1(G :case'P_DevMode'(  LV[I] 4 :else   textbT,textb D\ maybe focus will stop it99D0l C(1 1)[warg[3]]0(F wi'*border' 3(  CC+1 e Է K1 D U[1](U[2]-H[1]-1)U[1]+H[1]'D( :else( :else$ A  object name$Dx :if 2=warg[3] 2=CtrlD( :end(DebugTraceT(H U wi'*Focus'0((0 :if warg[3]d( d SOUNDn ( :return $ B  'property'$D Shift-17 Ctrl-17 Atl-18 Pause-19 CapsLock-20D(, :end( A Inherit B;C DL GWYN'TEST' maintain a single function exitD,t\ or 'property' valueT,$ȹ SOUND$ л :endY < LW[3]-8(f(  :endedZ(D  Uwi'..fIds.sc.*value' current scroll stateD p :elseV $H or 'Method'es$@ :end ( :return'n($X:if 6V  GTurnOffIds  :end ( :else=Q @H|:if 0=ID empty ID?1'@P:if ( wself)EdObjects Check added 07/29/01:PX Used in: GDataMoveCursor GBackIds GDataKeyDown GDataMoveCursorbXT 09/08/01P[2]V  T wi'*kwparams' P 09/08/01 07/20/011T< IV 'LF' locate LF< :returnCX 07/17/01 idparams must be empty when moving into or in keyword areaX  DebugTrace $ :elseP$0 0'help'wi'*Create' 'THelp'('file'(('oo'wi'apldir'),'aplgui.hlp'))('type'257)('keyword' 'Form')'ShowHelp''D6 Specify the file name with the propertyID0 0'ff.nav'wi'*Create' 'TWebBrowser'('wherelc'5 5 '>' '>')('attach'1 2 3 4)('Navigate' 'c:\temp\test.htm')D0 0wi'CellWidths'60 60 60 100 60 60 60 60 60 60DD (01) GMoveKwLight (texta,textb) 07/15/01DDD 07/16/01wres2 signal error..DD4 Turnoff hi-lighted but not flagged item 3/9/00eDD which may have be turned on with a mouse click1D GInfo WSELFit d Classes -- Init all new user defined classes and creates a few useful objectsd$ :goto exits$0classesclasses, 'TMaskEdit'])0,0 :end left button onlys',.b( :end=R@L Execute GWKwExit when the mouse click is on@ P[2] KSV L :else$H :endrn$ :case'KeyDown'  :if 2=R<8:if /1 2 4=wi':*cot' 07/17/01]<H(1wi '...fIds.*children') wi '*color'(toattrs[1])HP1:if toattrs[1] wi'*color' 3/7/00 click routine addedPL (KOS KSV KWS KDESC )1 2 3 4 Pwi'...*kwparams'L4< V V/(T,'.fKws') wi'*children'4H@CV1wi'..fIds.*children' name of all Ids objectsHD\ (i) wi'*color' (toattrs[1+KSV[KK+1]])0D8d Note: wself clicked keyword label88 EDO wi'*edobject' 08/05/0188:if 0<(ED wi'*text')~' ' 2/25/000188h LHLIDV[SV/SV] initial valuess8<:if /1 2 4=wi':*cot' 07/17/01:<(,c:elseif 3=wi':*cot':(4* ID(-1+(T)' ')T4p (غ ccc 123 cccc 123(Hv Required when the focus moves from a takoff objectHH_ Normal: item or item 123 or item itemffHX0S(,ID~' ')=IDV~' ' flag ids/kws that match the ID's sizeXH< the text string if the curosr bar is locatedm.HT0 wself1EdObjects 07/17/01 better way to initializeT38 Click on a non-hi-lighted keyward.l8T OIOS+/RN New page SV indices adjusted for offsetc Tx+@,:if 12Pwi'...*idparams' 07/17/01@LV2PT wi'*kwparams' vector of marked keywordsLP Click on ROUND, SQUARE etc will fall thru to here 08/19/01PR1@, RNoYes ' ERASE THE CURRENT INPUT DATA? '@4 mark full id in a string of ids44W :andif 7wi'*..style'40I:if 12PO wi'*idparams'em0L & idparams[4] nested array of matching item descriptions'Ll KSV[I]1 P BEEP0T :endV P :endrn\ Input$ :if ''M[1;1]$ A xferase T[2] p :return  si[4si;] ,P R[2] (R[2]),'.hvj',$:end( :endwhilep(^ :endO?TK FIELDFM wi'.ed6.*Create' 'GWLabor' ('.wherelc' '=' '>', S)T4  wi'caption'(K)4$ FNVFNV, FHN$D Jim - Look at TOpenFile[153-246] to see how theD:else:H-Z SIZE ((' 'V) V,' ',IDS) C (size) (items) (count)H$( funtie TN$ H GTurnOffIds]c 0 untie existing jobfileit0$ FF wi'*Close' $ |gGPutJobfile;A;I $A wi':*ERR' 0$ FHV'' n:T wreswres,tcnl,"Syntax: 'object'wi'WebBrowserClass'"TD| Swi'..TextSize' '10.0" High pressure ' boldD$P :return$$AReadSelections C$$, C wi 'Show'$0̹ Delete all duplicate items'0D CKNT[I]-10,KNT[I] total count of each itemD$0 :case 'onClose'$$D C wi'*Close'$D ERROR Z[5 7 8T;] Copyright 1994, Jim WeigangD$ ERROR'TROUBLE'D3$(d O wi'*text' VALUE( :if (^/V=0) DU D :endt 4̋ :if ~(TEXT,T)>wi'*limit'4:end$:case 'bnRecall'$@:end GKwsMouseHnd;T  :elseTt wreswres,tcnl,"NOTE: this is the same as: wi'obj'")T$؂:case 'bnCancel'$$ OT WI 'order'$T wreswres,tcnl,"container: an APL+Win container window"T Size2D FHV'' eD K0$ :if 7,T'$(!(F,'.ed1') wi'*SEL' 0(, P[1]OS 0 SIZEM[1;2]  M1 0M0` :end'@$ :if 1warg[3] $Lswres1 07/12/01 block default Windows actionngL( (H[i;]) xferase 25((` (H[i;]) xftie 25( Input$( :endjs$\,:end $L GKwExit R$  :endn' $L SystemMenu ''0$ H$Զ :end'1$$:if 1=wi':*cot'$$ or 'Method'r=$ 4 :endvS T :case'text' t :case'Show' D :else ( Awself ( FC[;2]+/C[;2](p6 wreswres,tcnl," '>' means place this control (or form) under last control (or form)" wreswres,tcnl,"  means default vertical position in pixels (for a form means: vertically center in screen)"$ B  'property'e$$P C,'D E's$$:case'onDestroy'$( :end($%:case'onExitError'$( Ewi'report'or(( Dwi'*value'ws((0 :case'?aplhelpfile'((X C('"'=C)Crg($ :return(T wi'..*idparams' Pr(<, :elseif 32=1warg 3/1/00<  :ende J :endrn 4A 09/07/01 wi':*toc' I4 :else0 :if RB ccc ccc(X P[2] 1,1(P[3])0p6(08 Plays DEFAULT.WAV file ord.0(Ȗ :end( :endn$Dz Default keywords$  OEdObjects h1 :andif V=1 on :case'onMove'y Tdt(C[1]) wi'*color' (toattrs[2]) hi-light default keywordT$zF wi'*kwparams' P$ , :endd $HT wi'*range' 1 3l$ h! :endhi p AT[2] rn (H Cwi'*children'(,`8 :else,, "handled by KeyPress",(] wi'*Focus'(L* toindices=default or current indices (renames from IX)L  T[1]I $ O wi'*Focus's$  :case'onResize'  :end1y DebugTraceF'gw.fEQ'w$$ B  'property'$,H HA,(\H='.')/H, d :else  :returnOKDĬ ---------------------------------------------D,ԋTOpenFile Example?,$` A  object name$Dd wselfA wi'*Create' 'Form'('*size'0 0)'*Hide'D, CG wi'Children',@io1l:case'New'@4 CC,(IR)wi'children'40Y :end8:select B@ G AT[2] rn  :endlfԼ:if A=0 p3 :endize(hO Etcnul,Eme(,B invalid text string.,0% wi'*value'F]00C1(F,'.fIds') wi'*children'0D Ttexta,UPPERCASE av[io+warg],textbDDx(OS SV IDV DESC RN)(wi'..*idparams')[1 2 3 4 6]Dd:select BCK, Back space handler.,D0 (SV IDV)21Pwi'..*idparams'dD0` move to next edit object00 :andif 'QTY'wi'aplname'0 mZDebugTrace;Tl 0MC wi '*color' (toattrs[1])0K'====='$ :if 1=warg[3]f$ D :return $ :end$ d :ended  :returns'  :endrn Dp Edit object empty. Pass 1 to signal an errorD, WriteDuctSelection IX, GInfo wselfs' $  :return$ D:if 13=1warg 7:case'New', T(1texta),textb,4 wi'*caption'(2warg)4D\ wi'*value'(F0 100 100exec C)DD, :if 0TT/T~0SE wi '*attach'DL  :if 1=warg[3] Shift-TabL$ ZV1/V1$   :andif Nn 0̞ TC wi'..*fKws.*children'0(\:elseif vi wi'*text'(  :endn  :return  :enden  :case'type'   :end \% ucmd']spy ',F,B,D ((rc=0)/B,D),(rc=8)/' /off'-9\P8@ wreswres,tcnl,"Syntax: 'object'wi'list'{list}"rtP( V1V1^V2rg(E Z101p (r wreswi'*'( `  :end 0 T wi'*suppress'00$  :if 1V1^V2$   :endn'   :end DL text string in the edit box. Do not increment.D:elseHs {current .ed objects}EdObjects in the Class FramedH$V4''L4:select Bst0 wi'*suppress'000 wi'*suppress'100DL+N+.5(2wi'*..size')-L+N+F0:endif4 Mouse clicked on a keyword4 :else,F 3. ccc 12 ccc 1, B H4> :if (wi'*SEL')texta,textb4DT} :if 0=SEL 07/09/01D0|L state: ccc ccc&0D(  :end 07/09/01DD` ID(-1+(text)' ')text 07/18/01D4T wi'*selection' ((T),0)T4Dwres1 suppress default actionwD0p :if N>KED wi'count'0D :else 07/20/01D0R0 fall thru to KeyPress'0D GMarkKws '' 07/20/01D\. AA,'OVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers'\$ :elseg$,classesclasses, 'TCueCard',D Caret adjacent to the last char in the text box:D\ t(FM,'.l1')wi'*Create' 'TLabel' ('wherelc' ('>',FM,'.ed1') '='  '>')\d(KwselfWI'..b1.*Create' 'GWButton' ('wherelc' ('>',Inp) ('=',FF,'.f1') 18 25,0 5)dPLk :return 07/15/01PD\ (OS SV IDV DESC RN)(wi'..*idparams')[1 2 3 4 6]DH Awself 0 CV1wi '..fIds.*children'04 :if 1=GMoveUntaggedIdLight4D wres1 suppress default cursor key actionD4x (OS SV IDV)3wi'..*idparams'44X :if RGMoveKwLight texta,textb4x Awself y0 :if N>Kwi'count'00E :end0ur b :if 2nc'A' 2 0` Stand alone number'0,d :if ' '1T',l write matching description wi'..*lDesc.*caption' (DESC[NOS+i])lwclasses''0P 0 0GMarkIds ID00T% :if 0=RGValidateItems04O :if 1=warg[3] wres0  :end4,L:caselist 16 17 18 19 19 20, ':if 2nc'A' T  (:case'Action'eo ,( :case'icon' L( :case'mode'  :elsei $, A  object name$(Y :select AF(  wresz$ :if 13=1warg$lS GTInfoMsg 'CAN NOT MOVE UP OR DOWN',TCNL,'FROM A FULLY SELECTED ITEM' 07/10/01l0XN :andif ^/0 1=wi'*mode'{0 :else (( :if'>'=HA(H> idparams[3] nested array of items (label captions)H$1 :case'apptitle'$0̥ :if hndUrl000- textb' ',(SEL)T 07/26/010(xC( /B ss 'HVAC')/B((03 (P Q)wi'*..size'(0, for example ccc 123 ccx00. wi'*SEL' ((T),0)00,0 :andif ' '2T00/ wi'*SEL' SEL0($P AT2AF'Selector'(  :andif W=2 le H1 :if 0NN+D-R $l :case'?attach'f$ 4 :end $E:end]:end4S hi-light full or partial items0)4 1 ARAR+ATT (\0 BCwi'*..class'( :endizeD ' AV(AZAW)wi'*where'D(p. Recursive Redim(X3 :else?<} :end't$ :case'?Method'$ :case'onClose' d :end 5 :end :end1io1 6:if 2nc'A' ( :end' 6:case'Action'le A :elseed `; :end s B'OK' 2C$05Twi'*jobfile'a$$<< A  object name$@:endselect( :if 1=warget(9 :end1(9 :case'?property'tor(: :else1(4: Commonwargows(\: :if 2=I(x: wres'TFrame'(: :end' (: wi'*onAction'C(A :end D: :if 1=ID; :return6 IDID~' '|; :end$`< B  'property'x$$< or 'Method'y'$$< Requires: (F)r$$< :selectwarg$$? :case'class'r$(xR delected 2/26/00/B( :endVAC |_ wi'*value' 42 The last string is a non-Item.b40 ..fIds onMouseDown handler00% '#'wi'*inifile'C0HlT(0 ((IDV)0) IDV DESC (NNNCDNNINNNNONNTNNNYZNN_NNNdefghijNNoNNNtuNNzNNNNx{NNNNtNipNmNNNNNeN      $$$$&'()+:-./0::34567:::;<=>?@ABCNNNNINNLNN4&d  wres27D WS_CLIPSIBLINGS  67108864  2*26d<  :end  07/15/01n<0 GWSize'Shade'0<  before moving to another edit object.<h:)XP8YL@ ԗ4੻ 0r p  ^ B(X[Tp\4 {T_pl sp` T\!x"H#H$l%h&x0'(`0)*+,-.؊/0`}1 23A3$@45@67P8O9:;Q<z=\>A?~@DAhxԥBpCDPEFsGlHXIBJK1쨻L0M N<OPXQRSdTp(UDv 8@P 6. ccc 123 c ccc 123 8|M % HȀ 0 :endUL`F - increase the longest Edit control width to 300 pixelsLLD EdObjects must not be called utill all frames have beenL0 SIZEM[1;2]  M1 0M0Б wselfA wi'*Create' 'TForm'('*caption' '')('*border'1)('*edge'0)('ontop'1)'*Hide' create a Form objectD6 textaNtexta adj. for new numberDD wres'Get or Set the default file name'T"D48 add a trailing space40 R21 valid size)0dP The lines below are provided to help you easily add properties and/or methodsdHg move single hi-light to next keywordH@  CQwR.  PPP2'PP,PP22224578:PPP?PPEEEE;IJKPNPPSSTUVWPP[[^_`adddeghijklPPPPPttt v xz{PP~PPi PPlPPP J PPPPPDPPPPPP22PP(PP PP PP  PPP PPPP       PP!"$$&)*+,-./01PPN6789PPP=PAABCPPNGHNNNNNNPP%RTTUVXX[^^^`PPddfgPikkPPppPttuPPyxxxttPPPPPX OTPP!D9"#PPPP,PPPPPPP$P%PPPP &PP'PPPPP   PPPPP(PPPP)*!"#%%&'(,,,,-.+01244PPP89:,<=PPAA-DEFPPIJLLPPPP K.P% )'2,5E8E;P[Kd`Pv}xP PN !APy[d`iPtPPP,,!41A<JE@ Ht :else elseH<  LHLIDV[OS+FV/SV] initial values<P frc[;14] get face namesP  :if AA $ :endmer$ pEAG+.5AB-AG $ Ewi'*:height'er$ I :return $rFileExist file;hr$$4D E(+/AY[1 3])-Cmer$XԹ selwi'*selection' (caret position) (hi-lighted chars) 07/24/01X\  QTY  \:)&L0   >  (D@S ?t,v 4!"# $%w&'()*+,-./0ę1U2p345$6=789o:;<=,>$?<@ABT$CDE FtGH4ITJK\ L}LLvMh{NOPLQRStTUV~WHXYZē[\]@^(_ `a(b,)c d(~enf @ghpij0klmtnuo\xpܨq=rsHtubvУw8xyz{| ^}Tl~8ldYp0b|D lnDd fȆy؊}b yh0Z4-t7\\bx{$EF|PIUlhY[db Ѓ|pX^(#q,g4X_l_T >^ pS(_=|}`V_ \]p܄_t[@P`},>hl 4_\m&tأb,*tV\(|]|,H4_   p _ ܩPJXvPT8p p!"#$^%&J'0(s)X*̓+u,x-.Q/N?$ @ABC4DXE$FG@HHPIJcK|KL MlNhOPQpQR|SbT_UHVWXpPXYPZ.[:\h]^lL_t`̽abLcBdfgdh,&iؗjԧk,>lmOnUo|/p<q`r,sthuvOwd xPyz{(|}1~P@Ԅh04XtةD@Q@XEpl~Dt&L\p|Dl8']|=d 4=hmg3P0L4@W,  Px}Pr/PG4d0,L0 u(0 0 ?5@ęABCDzEfF|G|HIPJ@KWLHfM`N,DOPQup BFBF,(1+BF)BE centered controls widths and gaps and marginsp',-0 0 0 18) ('caption' (V1[NO],' data'))h4d wi'..wherelc'A C call parent form wherelc propertyd ==<9>PdfmY,DfmY 'T---------@u Check jobfile for prior duct selection.l2@ wreswres,tcnl,"  or '<>' for a form means vertically center form in screen client area"sL- save names of duct objects. Workspace, UDP or in file?)L4p'1LR wi'scale' 5 pixelsLT winte,Lc each of which have their own form.01L@---,Cl@eatptitateatX ttol Inserts help message (row following the takeoff data input) for each class of takeoff1ll 0 1L 0  OS1OS :)Ql} |hD$N,+4 0d (T SCRNO COS)ScrnHiNo C0 --- ---  0t te'HR((/C ss 'Edit'))/T pass only edit objectsH yD PYQ19gD 'at< 'at   ff' rm' ne  350, how@ .bmX New job. Use default jobsetup and toindices from the HITEMS file.XT { { P|LT Iwi':*toindices' Six type of duct 1 2 3 4 5 6LDnd XdD :andif 0=^/wi'*mode' Not inside of text and no sekected itemsXd--X wi'*text' (Ttexta,textb,' ') add space for cursor1X$1 `@ ID(-1+(T)' ')T 07/14/01 select full or partial ID)`dit 'TDJ wi'where' ((POSPOS+H),0,1,10)D,how 'O1 2\i'*8*caLmpl`tFlandstrecttithD@ Existing job. Check job for a prior duct type.DDwi'H  Move to prior edit object. No checks requiredHtfpTTo' 'LX TEdObjects (size1Qty), [size2], and data objectsLLDP ^ User may have clicked on an itemL TTH R0 continue in calling function1Hd---mMd8te'L:andif 0=( ID)(ID)3wi'..*idparams' 07/20/01LL $wse8eatLapt`0)(wselfFQTYFM wi'.ed1.*Create' 'GWQty' ('wherelc' 5 80  '#8 5') ('handlers' 'qty_Handlers') ('caption' ' MI [9999]')ttiplow'g ` 07/20/01wres1 Suppress Window's default caret movement 07/09/01``0 wi'font' 'MS Sans Serif' .8 necessary for Windows 3.1`8 ids(0,(^ids=' ')1)ids8':,@nve( B[A]I+2 5($\ :case' '(Tzzyy@H wi 'where' ((POSPOS+bh),HOS,bh,80)l'@(<zzzHx edit object must have valid number'3HP 0Hd R0 continue in calling fns; R1 return to edit boxHtedD X x pin cc  5 ! re$!to L`:if (SEL)=text 07/20/01L8! @ wi 'where' ((POSPOS+bh),HOS,bh, 80)'@!!"wi'" (" fi<" veP"H Tab key handler for right move non-empty edit boxt'H",#des4, SC wi'*labwidth'of4@#'pT# L$xt ` GWSize'Show' Shade/hi-light edit objects`$bre`\e V[I[1]]1+1+/F Might have on one non-bright hi-light`,%ngtX8 round, square, oval, dw rd, dw sq, dw ovX@%engT%get%: fX$ wi'..*edobject' U save new object name,X%lls%en`& 0&@! wself(C,'.bnCancel') wi 'New' 'Button't@0'1-D'000X';10l''Xh% UT[11+T wself] Shift down. Edit box on the left.etXL(``$ Save offset: Mark new bright item and save new selection vector.`(---(wi'(ng ))) X: wreswres,tcnl,"e: vertical position adjustment in pixels"X)h1 *  *tch4*H*f.\* *d rX() wres'Gets or Sets the vertical position of any GUI object'01X**+top+tim,+ no@+T+h+top|+wat+e s+ ,4,io,ch',ip'p.tcf0D:case 3000 Miscellaneous>a000)`'  P  `, :else ,LH HLL!GDataMouseHnd;texta;textb;C;DESC;IDV;ID;I;N;OS;SEL;SV;T;V10L/te'HhG User clicked to the right of the last string of theaHH.:if (text)=SEL  07/18/01sH/atu//w'/'*c/amp/ff'00s3',0lit@00)(T0ff.h0f4'0) H. wi'*Focus' 08/02/01H1ttap1t'(@t& wi 'onClick' (D, '''bnSaveDefaults''')@1t'(1f.fp21' ` Initializes a new jobfile and Window globales: jobfile jobfilelib cot8)`3'H|0 wi'*color' (COLOR[2]) 08/02/01HH2 wi'..*edobject' wself 08/02/01H334LH? BEEP 07/23/01Lx4---4ff'@01 wi 'where' ((VOSVOS+bh),HOS,bh 80)t@4 24')(5ndl555---5---5---5---\66pex wreswres,tcnl," '#<' vertically center control between top of form and previous control"9x7ion7('*8('a8ima,8('*@8)T8h8 0|8te'8gen9ndo9'wh09)'D9L3 Moving caret left one space switchs to edit modeL:---:Duc0:ff.:L':lc'0;tac;'(,; Ex<LD9 Moving into the edit mode. Turnoff hi_lights and moveL<---<<wi'<<8=ll @4 wself(C,'.bnRecall') wi 'New' 'Button''@L=ER\0>D>ntrX> Del> al>--->--- ?rr' ???t\T @L; :andif 0=textb~' ' 07/14/0101L @4@H@wi'\@_CUp@est@@@ va@lolA L? Home-36 LtArrow-37 UpArrow-38 RtArrow-39 DnArrow-40trLL`p wi'*selection' ((wi'*text'),0)LAestApBwi'BsubBrr'CKEY$Ct\T8CC@< VOS6 Set button for two line caption; VOS'@CCnewCCTDwi'hDms'|DDL (si[1;]) '- warg=' warg "'wi'*SEL'=" (wi'*SEL')LE aH2 (T~ wself) wi '*color' (COLOR[1]) 08/02/01HX wreswres,tcnl,"if >0 ascending sort, else descending sort"XFurnF0 xF9'HD TEdObjects 08/02/01HFFuerFOCAFCur|Gntrh :if ~warg8 45 46,47+10 if char typed is not 0 to 9h8 U(-01+(texta)' ')texta108G NoGs aLH---`HT_UH\InHwi'`ItII 0LJ'TRX8E :case 'CLEAR' case statement added 07/16/01XXI F wi'.*selection' (1 0+SEL) added F07/26/01eXJ---Jer KtheH0F Set shading 08/02/01HLD wreswres,tcnl,"charmat: a character matrix"01LK malLestdt 2:OFN_OVERWRITEPROMPT: Causes the Save As dialog box to generate a message boxdLLetALLM4" (K L M N) wi'*where'4LK wres"Get or set the EditList 'report' property"1L`Me ptMm tMMHJ:if 0=1GMode 07/11/01H\N---dL hwndOwner - Window handle of the window that owns the dialog box or NULLdpNff'NME N0 0O Pdll\ Zwcall'SendMessage'(wi'*hwnd')'WM_SETREDRAW'1 0 does not redraw TGrid!!!...l O :endH $O DL + .5 N-Fer$ P BC'' $p D D+.5AC-D+Fer$QetA(:)Dfd}ds m @:<] t] <(F,'.ed1') wi'*selection' (('TEST'),0)<QShoQdM Cwi( '*'),'dir' 'file' 'ext' 'title' 'filters' 'findex' 'readonly' asdQRR'*vpSt.pd(Q wres'Displays the OpenLongFileName dialog and return user file selection'dSff.hT' 'PZ wself(F,'.lvAnn')wi'*Create' 'TListView'('scale'5)1PTd S wres'Get or Set the index of the default selected filter (in 1 origin)'dT»XVwi'LM :case'attach' PropertyLV' d|T wreswres,tcnl,"title: character string (the dialog title bar caption)"dVVff. WTPrW20 H wi'*onKeyDown' 'GEditList"lvAnn.KeyDown"'0HXI wi'..wherelc'A(1warg) parent's wherelc property)eXW' LX A dlV wreswres,tcnl," 512:OFN_ALLOWMULTISELECT - Allow multiple selections."d`XsstXtcfX---' '='  100)('caption' 'First Name')d\ont\]wi'# 0L:)Ȍd?LL0 C1 increment04 C'TFormClass"Action"'4]wi'^ Co $Xw3   ""#dP_tcff ============================OBJECTS======================================'d<_ccHZ File2C  FilenMaxFileFile,nMaxFileTCNULH_aad`tcff -------------------------------------------------------------------------m Ad_` caL V :case'wherelc' wherelcaLH^ CC,(,C)'' '' '' '' 'All Files(*.*)|*.*' 0 0HTa---dXd'ff'wi'text'(' Copyright 2000 APL2000, Inc.',tcnl,'The Best Development System')dhawi'aDdQX[ :andif ~vi T edit box does not have numberX  R  R, M $ L  Filter ds'$Xpb wi'..*edobject' U save new object nameXX c0 0wi'..fIds.sc.*value' (OSOSRN[2]) position scroll thumbX@LC offsets for the frames in the last column@d2dDntcff -------------------------------------------------------------------------apadd anderpoxe---f---S io0 (P :case'< '@(L_ wreswres,tcnl,"charmat: a character matrix")oL gLeF1(\'.'=A)/A parent0LLw lStructSize - Length of the structure, in bytes.L g'),4g'PogXdc IdsFM wi'.fIds.*Create' 'TFrame' ('*caption' (V1[NO],' Sizes'))0XghLf If Windows 4.0 and later, force OFN_EXPLORER flagLh$b L(-1<+/L='\')Lus$,i---@d TT,[1]wi 'Draw' ('?Text' i)@l D+ar$x2 RGCloseMatch ID$:)g,DL*Dſ(<itc(v   k & LL,J4=================================4dlssw@h :else Create label and chk box(s)@l spXHg wreswi'*' default processingX$m -@$l:if 51=N1FSIZE HJOB Check for empty job'@mڻLg wreswres,tcnl,"Syntax: res'object'wi'Show'"L0n@Q limit cursor movement to one spaceng@Xxl wi'*attach'C record Property valueXn'('dntcff -------------------------------------------------------------------------eatdnionTpaged4otcff -------------------------------------------------------------------------2)ddotcff -------------------------------------------------------------------------1)ddp 0 0'edit'wi'*Create' 'TAPLEdit'('object' 'Classes[12]'100 300 400 640)'*Wait' dXm wreswi'*attach' Get property value0)Xpbmp@q 40drtcff ----------------------------------------------------------------------------dTq---hq---|qqqpf'qqqwi'qlrd\stcff -------------------------------------------------------------------------AppdrHs`9L8m wres'Get or Set the owner of the common dialog'LsCredttcff -------------------------------------------------------------------------prodsssKeyt$t---8t---Lt---`t---tttttt 0t'TOudPu0 0'ff.ck3'wi'*Create' 'TCheck'('wherelc' '>' '='  100)('*caption' 'APL+Win')4)ddvtcff -------------------------------------------------------------------------1)dvtlo@m (OS SV IDV)1 2 3 wi'..*idparams''@v---Lr wres'Get or Set the readonly check box status'T"LLv wreswres,tcnl,"ext: a valid file extension"y'L,w'TOdytcff -------------------------------------------------------------------------p2'dHytioLhv wreswres,tcnl,"path: a valid existing path"wLyLx wreswres,tcnl,"Syntax: 'object'wi'dir'path'"iL zdztcff -------------------------------------------------------------------------d4zz -@u T(wi':*FMV')[I] Class frame name@{d{tcff -------------------------------------------------------------------------ocdx{d{'ff'wi'*Create' 'TForm'('*size'200 400)('*caption' 'TClipBoard Example')('ontop'1)d{wi'|'*sd,|tcff -------------------------------------------------------------------------'d|---|---d|tcff -------------------------------------------------------------------------Deld||0}Enud@~0 0'ff.check'wi'*Set'('*list' '1' '10' '100' '1000' '10000' '100000')('*value'5)dD}xtS}rat},~~d0tcff -------------------------------------------------------------------------d~wi'~'*c~ExaT'*sh'oo|@Hz T[1]((wi':*FMV') wi'..*self')@taid,tcff -------------------------------------------------------------------------oo'dL4B wi'imageindex'K4?zM:)"8$Lӻ8Ի$!NTѻ p DԻ t O PN|··X·d'P·d$·4 @8 !hԄ"H#L$$%&'u()P*}L+,.H-.4 /01Hx]2t3p4(Ի5LĹ6,7\>89p :];<¹=H>\p?'D@0ABCxDEFDӿG.H"`ItfJfLK(L<MNfO,P܋Q̖RBS־T4U$V%WX Y6TZ([\$]-^h_$`at}bcdle@g`]f<g48hiL4 Իj@k$llm4ֻnpֻop[qćr4sDtuvv!vwHxyzԜ{|}>~IX CCcp=4GH`I,x`H]CԊ` H%4ạf0(ĸBXDԄ|h,趺t  lھh|C4F `0] 8W@rxBD^`X 0PT$bdat xXf\oԷe S}贺xXD$X׾@tH],r(|0tDT,qܶ -XLNQ<,Lg0,Xd,??P@xAB\|C AD`@E FG>HI JPKLMN=OP\QRtKSTTU(?V@|LW<XXY\wLZL[T\p]w^ۿ_xM`HTaX4MbIc`JdhKep$KfJg(HIh`ۿ`Hi0Xj]kܿ`Clwmؑn^olpLXqT\r(xFsL Lt,Mu vlw ?xDܿy^z ,{'P|  } ,~|& Dܿx ^ЇhٿEx|FtxF샾pϸt#ٿIlиDиtb@&^ٿhw4ڿb8GH,lQw4 PDQ4\?8ܢ@AGpB`CDgPE4w F|GD䤹H4IJȢK^lLldMxUNSOP(QRN䡹S}|TPRUV WrXeYZd[\4]^Xd^R_\_x` 蝹`\Gab/c dde,eHf,f4g\hijLjxHjjvk`k llP]lm<hmfn۾xnķoܗo p-(ppt4qLq`qrr,r4slst4u| v w`ԖwHw@5wpxD̘xdyp8yy̒zT[z{؉P{<|b4|N}~}9}~\~~pxXxP[ ]?'M@$fAB7CDErFGvHxIJ*KLM|xMaMiNDOPQRtShTD'U'VvWdXYZ;[؞\]'^_``0abP#cHdHef4vgh&ijklrmnho|Bp"qr,st̴uXCv`vwxyyzX{$'t}|}~ثhvth''<#Xp-X$Ă]r@kqv h9f̿\=?@AyB=CLιCιDxE,=F(FFFGG5GH4IJ l>KXLXMDpNDOPQ4%RST8UصVzW X|YZ [ \H] ^_` >aDbcdXemf(_ghЋi6jklmP۾nl.oHpRqrЙst$tuv@w<x;yz`{׾|j}H>~N',&:,?@M,|CܰDC @?4`͹̹ \@pG|xkd8< C`8 DjTXR kHp.ȼh.  bN4k 0p\i$4mh8J@|TAMA`(PfDp@|! ( ܑ0B(tZTMU(l|Ll @DpQ"ܒ,Dp8hп82pD$Ib } `   LBdhDEDEFF@F4@,|G\8G]DH88ĄIĂȹs@ V!Ĥ" #tȹ$8/%@ &|/'(D)B*+t,/Dȹ-.l/x0(1|2l30ȹ4l5\6789$:;<=Ѐ>pǹ?Za@`AR`Bl`CDsE۾FG4 ǹHIfJK4KpL LMIN@O`-PkǹQ PǹQƹR' '='  )Pq0 0'ff.cblist'wi'*Create' 'TComboList'('wherelc' '>' '='  200)('caption' 'Functions')('list'aaa)('aplname' 'INDICE') ('attach'1 2 3 2) ('multiple'1),9AX2E \; E3t.@:endidG 2dh0 0'ff'wi'*Create' 'TForm'('*caption' 'TInfo Example')('*size'300 400)'DemoShow'd<p :select AB(,O)[(,O)O3C]A<h PLK/C list of $functions with no blanksh` 08/11/01 V(ID)=(ID)IDV flag selected items)`dtcff -------------------------------------------------------------------------dDd\tcff -------------------------------------------------------------------------dXl<  :andif'MDIForm'wi'*..class'25<< :if 0(Ewself,'_suf')wi'*self'A<h IH/JC=M select 1s marking identifiers...h` User pressed the backspace key when the edit box 08/13/01sa`dtcff -------------------------------------------------------------------------d8dx tcff -------------------------------------------------------------------------dL`tt h TStatus'onTimer' run the timer callback once now!h` GWSize'Shade' Shade/hi-light edit objects`d tcff -------------------------------------------------------------------------dT dd tcff -------------------------------------------------------------------------dh |  `  :andif ~/'QTY' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/09/01` `  :if (1warg)(47+10),95+10 keyboard top row plus nums pad numbers "`d tcff -------------------------------------------------------------------------d@ d tcff -------------------------------------------------------------------------dT h |  dD tcff -------------------------------------------------------------------------d  0  d tcff -------------------------------------------------------------------------d    pdtcff -------------------------------------------------------------------------d$dtcff -------------------------------------------------------------------------d8h wreswres,tcnl," 1:OFN_READONLY - Read Only check box is initially checked."h`  NN, 'elx''elx''' reexecute statement now`d0tcff -------------------------------------------------------------------------dh0 0'ff.vl3'wi'*Create' 'TVLine'('wherelc' '=' '>' '=' )('style'2)('attach'1 2 1 4)hh0 0'ff.tBar2'wi'*Create' 'TToolBar'('buttons'1001 0 1002 0 22 29 45 0 31 25 34 30)')h` NN, '(+/^\B'' '')B {*:elx}' reexecute statement now``H PMATRIFY P get matrix of absent fns)`dhtcff -------------------------------------------------------------------------2)dd TNonVisualClass is a template object, the skeleton for a non visual new object)dXdtcff -------------------------------------------------------------------------dl dDtcff -------------------------------------------------------------------------d` (Q 5)fread7,Q[1 2+io] directory  nameclasses)`d An instance of TObject called 'oo' is created when APL+Win 3.6 Objects is loadeddd8tcff -------------------------------------------------------------------------d 4H\` EM,'ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz0123456789'`dtcff -------------------------------------------------------------------------d9d$tcff -------------------------------------------------------------------------d(<P`p 7 /'\UCMDOBJ'W find if UCMDOBJ is tiedn'``d N' 'Q(fread V,4)[io;] read topmost UFILE names'`dtcff -------------------------------------------------------------------------dddtcff -------------------------------------------------------------------------d(<Pdtcff -------------------------------------------------------------------------d|dtwtcff -------------------------------------------------------------------------d18x` Jio+0=I(H^.=(1H)E)/G interpreter library number`Й `Hwself'ff'wi'*Create' 'TForm'('*caption' 'TFlexGrid Example')('*size'300 400)` 0 0'ff.ff.lab.bn2'wi'*Create' 'TFlatButton'(( 'bitmaps'),2 2aaa)('wherelc' '=' '>' '=' '=')('onClick' '''Button 2 Clicked''')@0 0'ff.ff.lab.bn1'wi'*Create' 'TFlatButton'(( 'bitmaps'),1 2aaa)('wherelc'5 0 60 60)('onClick' '''Button 1 Clicked'''):),@(4Hyh: 0U 4   8lМ(? 萻Ȑp D?<$|dԥDX8Q 8!T"#|v$%X&('x ٺ(x) Ď*l+@,@-.g/P;01<;24A345\<867$g8P\9{: V;<\L=>(?@nAnBHC(;DPE8F[GdZHnI<J|KLM('NYO$P<PPЌQ(RWSX'T`UVWHX;Y=Z[X\]A^_x`Pa;bc,ad؛e`fgL'h0hi`rjklm4nxopqMrsMtl{uD(vlawxįy'z{{|x}~tL {к Ϻ(6pκH $Lĝ jH&dLúúlnnH@(Lp5{& zH||iFHpLlB` 8 ` HNM@MfLzPzyܘtHG0TX22D Ct\x̍2it+lDO(,\G2䑻Dĥ܂{(IH 譺,t2<d;,|P<ܝ ,1hؓx=@ЉT*0p{Y( DO@x@h*  X  *  0 ̍* v̓ L tP484+5gd  !"l#L$X%+&`'Л쏻(pЊ)T*x+,\-.@B/h0/1'2/32456x789j:ĭ; <=>o?4@HAؖBCؙDS4EFG\oH@IJK+L2MM@kMNOPDQPRPSTdUTV0WxXYXHZ@[\(l\ ]P^0_000`,a;bcdef, ghiLjk4l$mtnopHq|QrsTt,.u.vȀw(xDyhfz܀{\|},~0j4<po0dV'@lUX8TT̾TtW|}1H~`{|v\ } ~,ٺ8hԺT(ֺֺlcpTW*hG̋hTd l4$,DL}<<xB,BA<@<4HX@ $$tx׺x88غ?պuպ\dnUL{U\T1tp\rȃ|484 FX t,XudhH ,u2 ,LhP$~ TnSUu`T Z @* u     t0 "8 $\ !, 賻!t""#<*$\%p&'()p*tU+T,H- .`/ 071(X20345|쬻6f785̬9 :|;<}=x>Xj?,#@A BWU V-M N+S T88< :if~0Cwi'*:aplhelpfile's'88 = wi( '*Set'),D80< C'#'wi'newclasses'00= wi'clipsiblings'F0< wi( '*stylesheet'),1warghe<Dpet wres'Defines or applies a Style Sheet' coDD F(C ss "wi'New''T")C ss "WI'New''T"DD'ot Z0C(vrS((1warg)~' '))~ ' *'Dx\ :if 82dr NC if 1st element is controls gap in pixelsxD; wres'Registers an ActiveX or OCX server'D0= :return0 wreswres,tcnl," '#',S)00Xg wi'*caption' 'MATERIAL'xt00g wi '*color' (toattrs[2])00g wi'*caption' 'Sheet metal'00g wi '*color' (toattrs[2])00h wi ('wherelc' '>' '=',S)00Hh wi '*color' (toattrs[2])00xh wi '*color' (toattrs[2])00h wi ('wherelc' '>' '=',S)00h wi '*color' (toattrs[2])00i wi '*color' (toattrs[2])008i wi ('wherelc' '>' '=',S)00hi wi'*caption' 'DUCT LINING'00i wi '*color' (toattrs[2])0@c wself(D,'.se.',C)wi'*Create'Cn@0i wi '*color' (toattrs[2])008j wi ('wherelc' '>' '=',S)0D] :andif (1warg)33 34 PgUp PdDn keyD08k wi'*caption' 'DUCT WRAP'0@i J(G'-'),'Object: ',(wi'class')@0t  wi '*color' (toattrs[2])00l wi ('wherelc' '>' '=',S)0D Must be located at the end of the text stringDD|l cursor at the end of a string of items0DDl :orif 0=1vi ((T' ') Ttexta,textb)0D0Ll wi '*color' (toattrs[2])0@k wreswres,tcnl,"style: an integer":@0Hm wi '*color' (toattrs[2])0H :if ^/~DM(-M[2;1M])A last row objectsHTx:)Dp\9T8 the desired action is correct.8\ :)4}mTh|Xt {   _ "@z{/Tn%43 @ #` !"##ȵ$ %&'(*()P)|*+,4,-5./L0 1>2'34D567 89":W;< =l(>D?7@05APBQC4D EF5GH(#IlJ.K LM NPO6PXQ5R,DSShWT#U\VdW X̀YWZܵ[\T]4&^_`ab&c@ZdSeh fgxrhiPFj\kllmn@oܘp,q4(r0st uvHBwpxPy0z\B{4 {|}p~H|P H& '$" x| Xp t)|1XH$DD5xȗht {]*4!(N<, !4<T~(4\4Luܧd,!p$` 584hLtj@"4/۾LL L0,47Ȣ,P|:h $ (h{Դ:h8W$ X$QlPWdct1\$d@l |xt<dF(  * x|   x4Lxh:L9@)Lt TL!"\ P wi'*text' T 07/08/01PP, lpstrDefExt - Points to the default extension string.PDh wi 'caption' ('Save as',tcnl,'Defaults')DD8 NG 1 203 SEAM SEALING 1 204 SHIELDING'DlP E/(242)(C<0)/-C boolean vector of styles to be removedml0 wi'*value'(H~0)0F,U :end00 Used in all GW edit objects00@:)T!X7DaAf $ @ f  bd (t uupxqHHl 4!"#$X %l&d'\q(bX#)|p*h+0 SIZE wi'aplname' 'HSIZE1'04 Install existing factors4|B======,T:)$\X@ c x. Tn 2  ) ,0XH2PxL4LH<&C(İ !"#X$%&_'$ '< '()$*q+,-.i/0h1<234,$56H789h:X\;'<l=V>8?@CAiBVCWDhVE($FGkHȉIJK`K K4L`MH N0\OLNP\QR S?TU(VWDXrY}Z`[\ ]x^_ `a bZcqd ef,=g0hij;klRl'm@npo4psqP]qr st(uvؽwx%y,4L2 move to home is always valid4( :case'>> ' (:case'VT'Lmat('First row is here' 'Second' 'Third' 'Last'),?4 41000L  :elsele $0 :if 0=,TEXTrn$ 4 :endry | V[I]1 1 , :endlc  Awself (0 :if 1=wargows((` :if 1=warg] ( xt :elsers  :case 8  :endrn G:case'KeyPress'  :end  :case'font' x :endTx The right OK button edge is attached to the right form edge (3)T4 F1 2wi'TextSize'(C~'&')E440 fall thru and continuet'4$ B  'property'$$ A  object name$h$ :if 13=1warg$ R wres0 1 Awself : :end1(\ C2wargt(X::select B1( :if 1=wargTr( G :ende  GTwi'..*self' P wreswres,tcnl," TypeNames ScalarTypes ArrayTypes"P$  :case'?Scroll'$l( wself'tempform'wi'*Create' 'Form' 'Hide' create invisible form containerckl Z'fmYesNo'wi'*Create' 'TMsgBox'('text' D)('title'(wi'apptitle'))('buttons' 'OK')('mode' 'T')'Show'M$P! Ttexta~' '$( :)\E|pHk䘻\  L 8 4H Hlp wi'*caption' (GHelp NO)48 ZZ, "idwcall'GetDlgCtrlID'h"8DL Set cot and toc to match the keyword exitulDH error'Set to avoid impossible resizes' H8M the Windows ChooseFont common dialogO8;VWwself'fmMdi'wi'*Create' 'TMDIForm'('*caption' 'TMDIForm Example')('childclass' 'TChildForm')('handlers' 'TMDIForm_Handlers')('bitmap'(('oo'wi'installdir'),'writing.bmp'))'DemoShow'0 E wi'*Focus'0,x :if~'Status'AF, ZD wi'*Create' 'TLabel'('*font'E)('*where'(G+K)(H+J+M-1)(I-8 )F)('*caption'(C))('attach'(NP)O P Q)pC.5K-EV@( :case'?apptitle'H(\p D1(\C='.')replC parent names\$+ wi'*suppress'(>AZ0AX,AY) do not suppress onResize if form contains at least a centered controlckD0)<ĵdata'Region' 'Product' 'Type' 'Sales'data<aaaaaa, 'Processing'('edit.bmp' 'editup.bmp' 'editdn.bmp' 'editdn.bmp')('contra.bmp' 'contraup.bmp' 'contradn.bmp' 'contradn.bmp')('visa.bmp' 'visaup.bmp' 'visadn.bmp' 'visadn.bmp')aaaaaa, 'Parameters'('visa.bmp' 'visaup.bmp' 'visadn.bmp' 'visadn.bmp')('blocn.bmp' 'blocnup.bmp' 'blocndn.bmp' 'blocndn.bmp')4 wi'*..limitwhere'40 V4V4,(i) wi'*children'0T5 4>L' ,, :select AC ,,, :case'<> ' , L| :elsen $4:case 1001 Round$ x'WARG=' WARG $i CLASS'ROUND'$,(x :if 2=D ,< wi'*size'C D<dt0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')':Center'ed@0 0GroupTGraphX copy'c:\aplwin\graphx\graphx'@r :end$L :if G=H aa$0 'Print Error: DN/DM MISMATCH'01: $ wi'*Focus' ( Handle other chars( `:if 2nc'A'  < wi'*size'C Do<4 HH, " ZC wi'Control2Var'"4,̥ wi'..*edobject' T, `a :return \ /0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' '=' '=')e?\  :end Z  :elseS I :return$D :case'?report'$4 G1=(+\K\E)-+\K\F40 T(BV[I])wi'*caption' 0$ :end$( GSaveJobfilen(T wres"Return handles for all session manager edit windows"T D :else1 $d :case'enabled'$ T R0 $8 :end$$o :return$t0 H &3t4p Dwcall'CharLower'De'4<H (2AV)AZATnd<S :else wres2$ :endnT wreswres,tcnl,"Note: the search is case insensitive"mT p :elseX $ :case'handlers'$  :end1A $| :case'?inifile'$P wreswres,tcnl," Long 3 8195"P p :endw' $ :else$  :else' $@d :end'$  :end 1 $  :case'?enabled'$4 ED ss":case'Action'"4$ :endCT$$p PlusMinusHnd$8 create a hidden label8<tC :for AZ :in AWٶ< T R1 $ :end1$  :elseA $ :end3$P wreswres,tcnl," Short 2 8194"P  :end0  NLS' $@< :case'?attach'$ , :return $ :case'?report'$4 :caselist'Methods' 'Properties'400F4(K L M N)(1F)wi'*where'0T<'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'd/m/yyyy'T4 Lfn0:((1F)nnums)Lfn6 4 : :return $` :end $ 9 :else' $ :end' $P wreswres,tcnl," Float 4 8196"P  :endE $d :endor$  SOUNDA $t :end*$  :elseA $T :case'inifile'0$4W Lfn1:((1F)fnums)Lfn6 4 | UCSTOP 8f:if ' '=type C handle characters8,X :case'<>L' ,,8 :end , H :return $ :end?$ 8 wi'*xRows'G C $L :else$P& wreswres,tcnl," Empty 0 "PD :end 3/24/00 default to round. insurance)?DD Use setup from the last takeoff lineD$ :endar$4t:end End of numbers handler'4$0 wi'*text' T$$; :end'0$@_ wi'*selection' (1 0+wi'*SEL')@ h Tfi TEXT $HHgg wi'*HeadRows'2$  :elseA $ :end $ p :endif $ :case'?where' $PX wreswres,tcnl," Double 5 8197"P p9 :elseA $ :case'?ontop'g$  R1 $ :end s$ 9 :end0A $ :case 0$4| limit movement of cursor4D$`> R1 16$ Xr :if 0=D $L: AYAX wi'*where' $  :end33 $ :if AA$LG in the check is not called in KeyUp 07/24/01L0 GE wi'*value'0 :return n4 :elseif 1' '=texta,textb4 X :endA $ :end?$ \ POPA $$ D2warg$P wreswres,tcnl," String 8 8200"P  :end' $d CAG+.5AB-AG+E $  :else0 $ CK+ .5 M-E$ `8 :else' $ DAH+.5AC-AH+F $4$ wi'*selection' ((TEXT),0)4$ NN$8 Check for fields that must be set8$= :return$  UCSTOPA $ :case'AddLF'$ @e :endA $ R(1+B)/R$P wreswres,tcnl," Date 7 8199"P  :end'1 $ :endid?$ D :end" $EAD3wi'*where'$ @ :endf< $ FAE4wi'*where'$4 :andif (texta)=1wi'*SEL'24< :andif 0(Cwi'*dataoldvalue')~' '<8@ :caselist'TOption' 'TCheck'8<t wi'*dataoldvalue'(wi'*datavalue')< , :end $4 :case'Ansi2Av'$ $ :elseA $x :if 0DE$P wreswres,tcnl," Currency 6 8198"P  :else" $ :case'where''?$  :end'1 $P :endZ$ @ Class name' $t :elsec$4  wi'*SEL' ((TEXT),0)4<d2 error'*** onAction event has changed'i< H :elseA $ wresE$$D :end$< :for AZ :in AWNL<$T :case 'DUCT'rn$ l :return $ GInfo 'DUCT'nt$ :case 'MouseUp' [ TT~'&'rn4t wi'*SEL' ((TEXT),0)4$`= :selectwarg0$$J :case'wherelc'$H :return  :elseA $ B\(1+B)/B$$ :case'?Ansi2Av'$$0< :endld$4; M11E penclose H4  R1 $ SELwi'*SEL'$  :else $$ :case'?Center'$ x :else $T :case'Center' $$7 N(+/Y[2 4])-T+3J$  :end' $ DL + .5 N-F$ $8 :else< $ F4wi'*where' $4 :if N>KED wi'count'4$7 :return$$ Twi'*text'$$ textbwi'*textb'$ 1 :end' $ :if D $$x :case'CenterOn'$P wreswres,tcnl," Boolean 11 8203"P - :case'?spy' $  :case'?Bitmaps'$   :else $  :case'Bitmaps'$  :ends $ :end$4 :if vi N(-1+(T)' ')T4@  V(wi':FMV')~'gw.fAD' 'gw.fMI' 'gw.fEQ'@4x 3. FG/ductboardk.4  :elsen $  :case'?Check'$$| :case'Check'$P  wreswres,tcnl," Error 10 8202"P x :elset $0 :end'1$ @ :else $  wresE$ \  :ende< $|  :end$4 :if (texta,textb)wi'*SEL'4$t :case'class''$80  Z(Z'0123456789.E')/Z)8< pq< @  :endn $ HH, ":end"$$6 wres0$P. wreswres,tcnl," Variant 12 8204"P$X texta1(SEL)T$$ :if C $$d  :return$4  wi'*selection' SELs'4< Z(E,'.timer')wi'*Delete'<8 BD~(4wi'*wherelc')[3 4] '>>'8<X'odbc'wi'Exec' 'select * from shippers'ȶ<  :endA $5 :case'?ChStyle'$$ :case'?Classes'$P  wreswres,tcnl," Object 9 8201"P  :endifA $h D(':'D) D$  :end1 $ :case'?AddLF'n$$  :case'report'$4 ID(-1+(T)' ')T4$ :case'Classes'$ L :else1 $5 :endge$Pd4 :if 1SV2wi'..*kwparams'  added 07/15/01P$ HH, ":end"$ D  :case'must' $ HH, ":end"$$`6 :case'Children'$4 T((SEL)texta),1textb 14(5 :case 4106 ( io0 th. wreswres,tcnl,"change) the text, selected text, cursor position, etc., in the various"st,. :case'< ' ,$3 CdefC'$$d- :case'all'$P` wreswres,tcnl," ================================="P(C :case' 'o(  :select T $& :end$4 wreswres,tcnl,' DUPLEX'4X(x variable associated with the control through its 'aplname' propertydX,l! facename2warg ,,! rcwcall'DeleteDC'hdc ,,! Hwcall'DeleteObject'H,,x wres(^\Rtcnul)/R ,TE TEdObjects (size1Qty), [size2], and data objectsTP0L :end 07/08/01PL  :else$ :endF $t wreswres,tcnl,"Example: 'ff.ss'wi'XLicense' '{2D360200-FFF5-11d1-8D03-00A0C959BC0A}'"t,hK Eav[C][avE],TK hF  wcall ('GlobalAlloc') ('GMEM_MOVEABLE') ((0)Data)TPR takeoff edit box to one of the the setup up edit boxPP0 wreswres,tcnl," Null 1 "P$ :case'wherelc'$t wres'Set or Query value converted to specified type (see types variable in VT workspace)'t, :if 2 ' ,,, :case'<>L' ,,$; :end ,4T datawcall'W_Mem'(lp 0 sz)4$ :case'DemoShow'$$- :return$$0 :if 0E J$48 R1 Return to edit object4$ :return$ X :if 96# ' , 4 :endA $/ :case'Files''$$2 M2warg $P1 :if 4=wi':*cot' 07/08/01P$80 :case'DocClass'$$\0 C2warg$$1 :if( C)EH$44 :else 9 32 33 34 37 38 39 404$l1 (T F)2O$ \/ HL+F-Q+.5S' $H2 :if F $PX GTurnOffIds 07/08/01P$2 ZdefZ$$3 R0 4 ''$$|/ :case'?Files''$40 check the last item.ys4$ :endif$h$ R1 s$t|A wreswres,tcnl," and methods to be applied to current object or form children"t,A :select AF , L1 (D E F)warg $@4 ((,1)vi D)Lfn4$$ :case'?LastFns'$P/:end === end of enter(13) key exit for a data edit object."P$@5 :end'?$$4 JSStoMAT tcnl,J $ 2 :case'left' $@- wresE/Cws$4L2 wi'..*lDesc.*caption' ''@ 4( :case 4107 (t3 wreswres,tcnl,"Next lines contains APL+Win 3.5 Object names used by these functions")t,|3 :if'>'=H , Pk :elseC $47 wres'''$$$: :endr'$$2 GTurnOffIds$$ :ENDue$$ :endp$ Բ :else $ H2+warg$4, T1FREAD HIDS,114@  Calculate ClassIdno for the class of takeoff@DK AV(AZAW)wi'*where'i'D,@ GWSize'Shade' ,,L9 === Enter key handler,,x9 right(39) down(40) ,$h: DG/D'$ *text $ HG/H'$$D. CLASS'SQUARE'$t wreswres,tcnl,"These handles can be used as arguments in calls to wcall to get (or"0)t,P; :case'< ' ,,|; :case'># ' ,,L :case'#< ' ,4$r 'Print Error: LOAD DRV FAILURE''4 H :return $( :case'attach'$  *text.00 $@H :case 2$$2 :if 0=C$$l :case'FullName'$4t8 wi'*caption' 'FG/Ductboard'<4$H :return$\=5:J'' itt' wreswres,tcnl,"Example: 'object'wi'VT'0 11 to create a spreadsheet boolean 0 value"t,(( R[1+B/B]tclf ,P wi'*selection' 0 0 07/08/01P4 > wi'*caption' 'SEAM SEALING')4 O Note: TO DO $ :goto contr$ :select wevent t> wreswres,tcnl," for a form the StyleSheet is applied as form children are created"t,  is either a vector of'X,f :else ,, g :end ,,Lg F.5+F,,, :case' ' ,T(X :if ~/'SIZE1' 'QTY'  wi'aplname' added COST 08/01/01T4\ Zwcall'ReleaseDC'C DS4Tk :andif +/2wi'..*kwparams' Rev GWToData 2/28/00Tp` B'fm',(ts)~' ' unique form name (avoid name conflicts!)0)p0 opts(opts[;1]allow)opts0 3 (D E)warg  Txm idswi'..fIds.*children' visable items objectsT`pO (D E F)IC (expression) (errormessage) (controlname)'pT8o idsids wi '*caption' visable object namesT4xV wres'Print Error - Code: ',err]4T :if 32=1warg$4t 'Print Error: PRINTER NOT FOUND'4$|X :case'?Av2Ansi'$T wi'..*edobject' wself 08/06/01[T4 'Print Error: GET DEVMODE FAIL''4 ( :else $H :case'APLHelp'$  :return Tdt :andif 0=warg[3] 0=warg[3]Right tab. Left tab is OK')T4:LLIBS , :end ,T0y Curson within edit string. Move chars of the cursor one spaceTX(~ 0 0wi'.ed1.Create' 'TEdit'('wherelc' 60  200)('caption' 'Name')X,x D/AY/+/T[;1 3]a ,,x E/AX/+/T[;2 4]aX ,,y wi'*limitwhere' ,,~ wi( '*Set'),C,T0{ (1wi'..fIds.*children') wi '*color' (toattrs[1])T wgive 0 (3:if 2=nc'debugcommon' (J :end1t(* :case'?FileExist' (,} :else ,T0 Ttexta,UPPERCASE av[io+1warg],(0=InsertState)textbT$l|:if (64Ctr$ $ :endACE ,y :end ,T  next to a full or partial item and not in the edit mode.TX 0 0wi'.bnCancel.Create' 'TCancelButton'('wherelc' '>' '='  )y X,~ ED wi '*aplname' ,,~ :if 82=dr interface ,, wreswi'*Wait' ,, :if 2=nc'hwndOwner' ,T0} wi'*text' TEXT Yes. Write text and exit.T8 NotValidItemt'848 :andif 7wi'*style' 4T T(-1+(T)' ')T drop full or partial items')Tp  wres(323 dr 2wcall'SystemParametersInfo' 'SPI_GETWORKAREA'0(16tcnul)0)[2 1 4 3]?p$l :endt'$$T C wi'Close'mer$,p :end ,T8\ VOSIDV drop offseted items 07/19/01T `:case'MouseUp' $؄gg wi'*xRows'rowsr$  Check sizede $gg wi'*xCols'colsr$, Gfread F 1 ,T toindices (4fread HJOB,CNO) last line of takeoff dataTX The check property for a form may have any set of 3-element argumentsX, :case'= ' ,,D :case' ' ,,p :case' ' ,,< :else ,TD SPECS format: ((12 OPS OR CKS) (FRAME POS: 101) (FRAME NAME))pTP@ :if wi':exit'  wi':*exit' 0  :return  :endP 8 :elsen [ TT~'&'1: :endEP( :if 1=wargT($ :end$, :case 1 0 ,TD wi'caption' id id's desc.T <:case'onSend' td :return $ wi'*font' bold$, H1+G D ,T4c I1(RC[1;]=1)/1RC Index of 1st row frames)T  :endselect <$\ R1 Return to edit box'<X< wreswres,tcnl,"handle: a window handle or window caption"X,h :end ,, :case'> ' ,, :case'>> ' ,, F(2F wi'*where')-D+Z ,T Creates objects in the ff.fDUCT frame for the duct parmameters.TP(V 07/24/01 :if 1=warg[6] suppress repeat callsP$ POS0 r$$7 10$ UCSTOP ew( CAV[io+C](, :case 1 1 ,$ wi'*font' bold$,, :case 0 1 ,, :case'>> ', 4 wi'*size'(wi'*size')4, Cav[io+64+96C] ,l'0( 10  H :elser $8 :elseL$  $xr :case'?APLHelp'$T wres'Displays the last occured event in the APL session'T$p'wevent' wevent$ ؙ :end3 $ DCD$  H :endA $< :case 1$4@ wi'*caption' '2.0" Fiberglass'4,9 Check for valid key ,,X tGMoveKwLight text,,ܜ Zwi'*.e1.text' ,,X* J(wi'*list')[;4] ,P( wi'*Focus' 07/15/01P4 (1T(STPTR 'Z A T')CALL C)04( :case'?P_DevMode'(L :endUGt$ wreswres,tcnl,"classId: an existing ActiveX classId as found in '#'wi'xclasses')[;3]"t,% Etcnul,E ,TT( wreswres,tcnl,"Syntax: 'object'wi'filters'filters"TPB GKwDefaults 07/08/01P$̠ :case'Lastfns'?$$7 :case'?Methods'$$  R1$44 :if(nc C2warg)2 3I4,< wres'TOpenFile' ,\0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\84W wi 'where' (VOS,HOS,bh, 80)'28\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')01\0j (opts oldmode)1warg0Xp wreswres,tcnl," 'ff.ed'wi'SendKeys'( 'VK_TAB')"XpH wreswres,tcnl,"or: 'ff.ed'wi'SendKeys'('text1',tcht,'text2',tcht,'text3')"p<, wi'*texta' (SEL[1]T)<,l may be active,$dM :endld$0 M wi'*..size'AS0,X wi'*filters' '' ,(0\ GKeysMouseHndg(|T S((D)~' ')E~' ' 1 if parent is same as control to center upon|8classesclasses, 'TConferenceExample'8< (M C S I)2 2 2 256wcall'VkKeyScan'I ts<<LG wi'*text' (texta,textb,' ')6<dw wres2 suppress default action else new focus will not be persistantd, wi':edobject' T,d9 f(+/^\(mix f)tcnul)f drop trailing garbage (after NUL)84d(d GWSize'Shade'n(|Z Zwcall'ShellExecute'G'open'F 0 0'SW_SHOWNORMAL' {*: 0 0Wmsg(((^\dmtcnl)/dm)~'')16  0}|( GKwExit 'DUCT'((H GWSize'Shade'(<l wi'*textb' (SEL[1]T)<8 Handle button selection characters18, === Button handlers,$ wi'*font' bold$  < POPPn  wres0sST Pt4n 'Print Error: DEFAULT DIFFERENT's4@ wi':*cot' 1 Top DUCT button exit@$Lu :case 'EQUIP'n$$ 'wres=' wres$$ذ MouseUpg$$ wres2rn$$` :if 32=1warg$$ :returns'$ ȱ (F) GKwExit $ :return$   (V) topFrames $, :endrn$ P:if 1warg[3] $ :return$ x:select wevent  MouseUp:rn  :case 'OK' >9' ,, :case'>>L' ,, :case'= ' ,,f :case'=LL' ,$, GTurnOffIds$$P :endmer$, Etcnul,E ,,`wself(wi':*FMV')[I]ep,D4 C('#'wi'xclasses')[;1]st4<, :if( wi'*class')'Form' 'MDIForm'<( :case 'AIR DIST's'(8 :return End of MouseUp handler8$DMx SOUND | Z'fmCueCard'wi'*Create' 'TCueCard'('*caption'('Aide ','oo'wi'apptitle'))('cuecard1'J)bn2||$ wreswres,tcnl,"errormessage: an APL error message character string possibly containing tcnl's"|< Zwcall'DllRegisterServer',namels<<, Tried funtie fnums with no lock.<,  :end 08/12/01,(:case 46 Delete'0(`o:endselectX wreswres,tcnl,"Syntax: 'object'wi'StyleSheet'stylesheet"X4  wres\(SH)\''N(SH)/H4,x, :if ~vi text,T ,[ F2504 wres'#'wi'VT'args type'4< :end  07/15/01.< Pchdir D AAdebug | CC,59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89s"|<0 (FNV[NO])wi,('*visible' 1) ('*Open')<8Lq and calculate frame offsets18<, wres0 07/19/01<( :endL:if 0=+/SV 8P :if ' '=11texta,textb08< Zwcall'keybd_event' 'VK_CONTROL'0 0 0 '<O IV\I2 le4|G :case'TNavigator' 48 wi ('wherelc' ('=',H5) ('=',H2),S)8< wi'*where'(C+1)(F-2+4wi'*where')<, fMultiFlags[23] ,0 E/AX/+/T[;2 4]0Xd'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'dd/mm/yyyy'X\<0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' '=' '=')1\|̫ wreswres,tcnl,"Note: all Windows constants representing control characters must be enclosed"2|< wi'*text' (texta,' ',textb)<ZC DTB AR( wi':*toindices' 0rn(:select B( GKwExit 'MISC'(w :endr(t GKeysMouseHnd(<8; 07/09/01 catinated texta and textb<< Jim - suggest the name field be changed a<, GInfoMsg P ,(d) Duct lining heading(5 R1| CC,90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115"|< wreswres,tcnl,' PRINTQUALITY's<< wres"Shows the Windows Task Bar"<, Flags(322)Flags,p wreswres,tcnl,' name = a "name" used to identify filter (to prevent redefinition)'p|̨ CC,211 212 213 214 215 44 217 218 219 220 221 222 125 168 185 224 189 241 168 140 132 131 179 181|T _ UCSTOP 08/01/01T4 P2G'#'wi'newclasses'4< V(((QQ)=Q)replQ)~' 's"<, (2=NC 'F')L5 ,,4$ BEEP ,| CC,125 125 44 44 44 44 44 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 46 2102|H wres28 wi'SEL' (wi'*selection')8< wres"Set or Query type of value"<| CC,238 244 251 242 210 170 154 192 223 246 249 254 162 172 188 141 141 141 125 125 125 125 44 44n|5 :return|`> E(( F'Property: '),D,tcnl),(,wi'?',1D), 'hh'wi wi'class' LES23jun01 , added8|@/ CC,' ' ( GTurnOffIds '1(<p wi'*limitwhere'(2wi'*where')<(= ((1,wi'order')T)1@(( wi 'style' 1(,P RSizeTabHndp',(< wi'*SEL' 0 (,d Twi'*text'g ,X'dd'wi'AddCentury' 'M/D/Y'('12/25/00' '12/31/00' '8/01/99' '1/1/79') Xtwself(FM,'.ed2') wi'*Create' 'GWSize' ('wherelc' '=' '>'  '#5 5') ('handlers' 'size_Handlers')t,0 OPENFILENAME'' ,8, :andif 1=+/2wi'..*idparams'.8l2 :return d( D[U] U(0|Y AZ'&@#'O0P  U(T,T[1])[1+T wself] Edit box on the rightP,classesclasses, 'TPicture',X'dd'wi'DateRep'('dd'wi'DateBase'20001225 20001231 19990801 20790101)?X<d :if 0wcall'W_Ini' 'PaintDesktop'<, classesclasses, 'TTimer' ,4 CD,'TObject' 'TIniFile',C4,classesclasses, 'THLine' ,h HIG4T ZC wi'*Create'(2warg)4`1 Z(, edexit1d(8 wi'*selection' ((T),0)08, T(T'.')Twself',, GWSize'Shade' ,(H= :if 1wi'*mode'(4 :else( :end'(,X wi'*datavalue'C ,,dclassesclasses, 'TSpinner',:end 8d  :if (wi'*SEL')>texta,textb8|H CC,130 129 148 149 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58n2|X\'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'd/mm/yyyy'1X40 F wi'*Focus'48 wi'*SEL'((texta,textb),0)8,\classesclasses, 'TGoMenu' ,\ A Progress Bar object which you can drop into form or status bar objects\(Xy :if E '(x$ P( I),P ,classesclasses, 'TLabel',( state: ccc nd(( === Numbers handler'(PP Suppess Shift-17 Ctrl-17 Atl-18 Pause-19 CapsLock-20P\4D.5L-F=(h :if 1=warg3@((ܘ :case'?formclasses'(PX :if 0=1vi texta,textb 2/29/00 ck for ID)P0r Use default toindice0 P:if (1warg)T(47+10),95+10 top row and nums pad numbersP4T Dwi'XClass'(2warg)1 24P| wself'pf'wi'*Create' 'TPFKeys'('Set' 'Shift+F1' 'Help')P(  :case'?countries'(Pt Tav[io+48+48warg[7]] adjust for nums pad key codermP4T :caselist'ShowDemo' 'DemoShow' 4(9 C12warg((@ :andif H0(/ H( :if 4=wi':*cot''((L :if 1=warg(P Search items only. If found let KeyPress handlepP,lclassesclasses, 'TOption' ,xP$ wi'*selection' ((TEXT),0) block shading of textP\Dddd'tt'wi'ReadMat'12 2 same but result is a character matrix\P LS(-01+(TEXT)' ')TEXT get last string of charsP\'tt'wi'nbrecs' get some information: number of recordse \( :if 1=warg(P\ GErrorMsg P,tcnl,'YOU ENTERED < ',(N),' >'rmP( 5. state: cccC@(\ An object capable of displaying and piloting a Powerpoint presentationH[\,E ASARP Qt,lX')('attach'1 2 3 4)\P 09/07/01wi':*toc' ((wi':*FMV') wi'..*self'))Pd :return( wi':*Focus' (,  GWSize'Shade'O,8f :elseif ' '1Ttexta,textb8@ wself'fmBm.i1'wi'New' 'Imagelist'@(` :case'countries''(\0 0'ff.se.p3'wi'*Create' 'TPage'('*caption' 'Orders')('*imageindex'100)\X error (0=lpwcall'GlobalLock'hMem)/'INVALID MEMORY HANDLE'')X4X :select wi'class'4X wres'Returns the object interface in the IDispatch(9) type')X`%0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')` Y256344,classesclasses, 'TInstall',HELXE'(^\DMTCNL)/DM  0' set to error msg onlyH\ 7(7,1)/P,((5350+~io)+1+P)~P UCMDOBJ file tie no)\d<0 0'ff.vl1'wi'*Create' 'TVLine'('wherelc'5 80 '>' )('style'0)('attach'1 2 1 4)eldH| or not, including doing such sophisticated things as?H,yclassesclasses, 'THTML' ,P,0 0'ff'wi'*Create' 'TForm'('*caption' 'TEditSpin Example')01PH SOUND(ȣ GKwExit 'EQUIP'(\j ((P='$')/P)' ' replace $'s by blanks\x  :andif H0(8> :case'?connected'(\4 wreswres,tcnl,"Text Files(*.txt)|*.txt|HTML Files(*.htm)|*.htm"\d tcff ------------------------------------------------------------------------- d4P wres'#'wi'VT'interface 94,classesclasses, 'T_MyForm',(  D1warg,0V(\0 0'ff.se.p2'wi'*Create' 'TPage'('*caption' 'Company')('*imageindex'83)\,4 Greggway class functions ,)@ wres(((Y,2V)V),(Y,2W)W)~' '0)@,,!classesclasses, 'TODBC' ,(d wi':*cot' 4 (\ Qfread 7 2 read superdirectory\P'+(pr E3+1C(\# wreswres,tcnl,"readonly: boolean (1=checked, 0=not checked)"\\ Q(\N)/Q remove trailing blanks\,t :caselist 9 13 32,P 'ee'wi'attachments' 'c:\temp\file1.sf' 'c:\temp\file2.sf'P$ :if 0=+/V $$ :elseg$$4 :endrn$\ (E,'\UCMDS')fstie V tie master UCMD file\,| :return,P`  A TExcel object is an object using Excel as an ActiveX ServerP( R1 (d)tcff -------------------------------------------------------------------------d, Multi-file case ,,D :if 0' '=' '=')x\\L toolbar, child form creation system, Windows menu update system, etc...\\0BBNVBNV, wselfwi('..b14.Create') 'GWButton' ('wherelc' '=' '>' '=' '=')5\<,E wi'*selection' (1 0+wi'*SEL')n'<|hE BA(BD~AY)/T[;2] sub-matrix of where properties for centered controls|\C t(FM,'.l1')wi'*Create' 'TLabel' ('wherelc' ('>',FM,'.ed1') '='  '>')\\$D wi'count' 1000 TO DO: Co-ordinate with space in the printed report5\(|1 :ende@(< Move cursor to the end fo the text<|I DD/BF adjust form width to just contain all centered controls|,A D(N-(F)' ')F ,B\F GTurnOffIds turn off hi=lights1\(`Z Swi'*status'(\D t(FM,'.l1')wi'*Create' 'TLabel' ('wherelc' ('>',FM,'.ed1') '='  '>')\<X wreswres,tcnl,' DEFAULTSOURCE'<LO 4 :else? , :if~'Status'AF,@H Use setup from the last takeoff line@,,F Lfn3:F' ',F,' ' ,XF\J T(((SV)RC[2]),RC[2])IDV full items matrix\|t wreswres,tcnl," 'ff.ed'wi'SendKeys'('text1',( 'VK_TAB'),'text2',( 'VK_TAB'),'text3')"|,@L Cwi'EnumWindows' ,lL\lF IDIDV first item, first row\< R1 Return to Edit boxY<4 :return(K GKeysouseHndn((H wi':*cot' 3 (, F,nnames[nnums1F;] ,\M idparams[4] nested array of matching item descriptions\\ ^ Example: ("TBM97 Access Database" is supposed to be an ODBC data source)\(`M wreswi'*'g((Y GWSize'Shade'(\4I idparams[2] marked items: 0=normal 1=hi-light 2=bright (red)\Pp T1T drop space into which the cursor will moveowPX(c newmode[42+(2opts[;1]).+1 2]1323 163 82 dr opts[;2]X@7 I[I3]TZDM<,< wi'*Focus',(tWFAE4(1F)wi'*where'(L:)u|4HApL0. :if 1(TNV[i])ss'RD'0<W wi'*selection' ((T),0)<L :return(X :case 6(|PM wreswres,tcnl,"left: 1 if attached to parent left edge, 3 if attached to parent right edge"|< wi'*texta' ((SEL),texta)<$. wi'*Focus'$ L :else @l Awself (Q wi':*cot' 1(\o GTurnOffIds moving to a new edit field"\|4 CC,129 201 145 203 204 205 206 207 208 23 166 211 212 213 214 154 147 217 218 219 220 155 222 170|0E3(K L M N)(1E)wi'*where'0| wreswres,tcnl,"expression: an APL expression involving field variable names returning 0 or 1"|(EAD3(1E)wi'*where'((V :endUL((F S[;1]S((\Y :ende'(<( 2. ccc_ trailing a space49<(, :if 1=warg'((V :case 7((o CAG+ .5 C-E+AGy(\\ Tfread HIDS,11 nested vector of default class selection indices\pD wreswres,tcnl,"Example: 'object'wi'VT'0 0 to create a spreadsheet null value"mp|_ wreswres,tcnl,"Note: the StyleSheet variable or function should return a nested array such as:"|,S :endrn<4K :if 1 GRoom TEXT 2/27/00<(K wi':*cot' 2 (,] N [2]N[avN;],]\L Ctrl+PageDown to the last items page 07/15/01nG\,J N(Ntcnl) N ,J\Z  PR  ch \\4b TObject is the parent object for all other objects which inherit from it\(` wi'*selection''(|` wreswres,tcnl,"('*color'0 255 255)('just' 'left')('ChStyle'4 512 8192)('*border'1)('*edge'0)" |< :elseif ^/' '=(-+/^\texta=' ')texta<|e wres"Return ActiveX name and {classId}licenseKey for ActiveX identified by part of their names"as|(W GWSize'Shade'1(<|_ wi'*SEL'((wi'*text'),0)<,\ NR[;44+260] ,\\d TObject contains a large number of properties and methods which can be\( :if 1vi text(X` newmodeactive,(A wi( 'C2W'),oldmode[44+24]),[1.2]allow)X<a wi'*selection' (wi'*SEL')nu<,R :case'EnumChildWindows',pe\0 0'ff'wi'*Create' 'TForm'('*size'0 300)('*caption' 'TOKButton Example')\,Pn windows0 20 '' ,|n<c SOUND signal error<8 'FIX THIS. MUST BE A SPACE'8,7 :ifD2warg ,ditcff -------------------------------------------------------------------------|d(l :if 1=warg2((u :return(@x% wi( '*Set'),1F/D@d0 0'ff.sb'wi'*Create' 'TStatus'('fields'1 2 3 4 5 6)('borderstyle'2 1 1 1 1 0)Od,,g Hwi'*hwnd'C,d@itcff -------------------------------------------------------------------------ddXgtcff -------------------------------------------------------------------------d8  4. state: n number in edit box)8dXjtcff -------------------------------------------------------------------------'dd1tcff -------------------------------------------------------------------------xd\\k (ioB)'NOT FOUND: ',1,',',(U=0)P replace error message\,classesclasses, 'TYesNo'',N:return\l NN, 'BS/C' statement to executew\8إ wi'*textb' (1textb)8(LS wselfFNV[NO](( F2wi'*:margins'(:select Bn( :end(\n NN, 'B,(2+\A=tcnl)/A' rebuild error message\<Xp wi'*SEL' ((wi'*text'),0)<pdZ wreswres,tcnl,"stylesheet: an APL variable or function name returning properties"fp,a :if P=H+Y ,a\0 :return Do not use GWSize 'Shade'; re-shading not required$b\(p :case 4104 ((o :endct(( DAH+ .5 D-F+AH(\Q GTurnOffIds moving to a new edit fieldr'\<R correctly validated. 2/25/00t<(< :case 4105 (X Variables: C=ctrl; D=dead; M=menu; P=pending; S=shift; H=hwndX V[I3]0 8X RC100 1002FREAD HIDS,6 3880(u :if 1=wargp(\0 0'ff.se.p3'wi'*Create' 'TPage'('*caption' 'Orders')('*imageindex'100)\Ts0 0'ff.cancel'wi'*Create' 'TCancelButton'('wherelc'5 215  80)tsTTds0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'TCheck Example')TTswself'fmMdi.mFile'wi'*Create' 'TFileMenu'('options' 'default')TT twself'fmMdi.mWind'wi'*Create' 'TWinMenu'('options' 'default')TT`t'ff.ed'wi'*Create' 'TEdit'('wherelc'  '>' '>')('attach'1 2 3 4)TT x to update all aplname variables associated with the form controlsTT 'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'd/m/yy'dT(E wi'*wherelc'C,1G((U TRS0(( UCSTOP(\1,p :case'?CountryIndex' ,0q T0 201TP| update all controls on the screen you may do so with SetAplnamesTX Note: wi'..*edobject' is set in SizeTabHnd 08/07/01Xxtxxط+(; :if E (( :case'?installdir'(Xz (F/D)wi( 'aplname'), F/E update all controlsX`0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`X wreswres,tcnl,"Syntax: 'object'wi'UsedClasses'classname"X( :case'?handlers'0(dtcff -------------------------------------------------------------------------dHreport'' 'APL' 'STATG' 'RBASE' 'DBASE' 'C++',report?HTt0 0'ff'wi'*Create' 'TForm'('*caption' 'Enter your birth date')T,  :case'?ComputeRange' ,p tFM wi'.ed4.*Create' 'GWMat' ('wherelc' '=' '>'  '#8 9')('handlers' 'qty_Handlers')sp,classesclasses, 'TVLine'0,܃, :return,+,, :if O ,,L0 M(~\M='"')/M ,x0P($- C2warg1(,w Cwi':Children' ,,H F,fnames[fnums1F;] me, IL|X wreswres,tcnl," '<>otherform' for a form means: center the form vertically on otherform"f|\T'rr'wi'SetValue' 'HKEY_CURRENT_USER\Test\Test\Test' 'This is the value')\6 :return t\q0 0'ff.se.p2'wi'*Create' 'TPage'('*caption' 'Company')('*imageindex'83)PQ\ܔd0 0'ff.se.p1'wi'*Create' 'TPage'('*caption' 'Customer')('*imageindex'169)'*Open'd(g UCSTOP(,`classesclasses, 'TWinMenu',},8 :case'TListview' ,$@~,}classesclasses, 'TTree' ,dHtcff ------------------------------------------------------------------------- d,ȅ :endge,3 wresZ,T Single-file case,4dtcff -------------------------------------------------------------------------2)d,classesclasses, 'TMedia',,h :end ,L40 0'ff.track'wi'*Create' 'TTrackbar'('wherelc'  '>')tL,| :for I :in G,G ,dtcff -------------------------------------------------------------------------dd8tcff -------------------------------------------------------------------------dF :endX'ff'wi'cuecard2'('More Help text',tcnl,'and additional explanations')X(h wi'*wherelc'C,1G (l wreswres,tcnl,"filename: a file name with optional extention but with no path"l(Xu :if E (dtcff -------------------------------------------------------------------------d@ additional check will be required.@$ LM2: KK+1 T$(ؘclassesclasses, 'TJpg'((C1WI'..*children'(Tf :ended8P :elseif 1=+/2wi'..*idparams'8, L(\M='\')/M ,(d :if 1=warg'1(L  with all its internal behaviour and browsing capabilitiesL,hclassesclasses, 'TSpread',p( wreswres,tcnl,"Use: 'object'wi'Overlay' 'Message' to display a message""p,\ :case'CenterControls' ,,Ȓ wreswres err,dtcff -------------------------------------------------------------------------2)d,classesclasses, 'TStatus' ,l wreswres,tcnl," 4096:OFN_FILEMUSTEXIST - Only existing files can be specified."l8\ wi'*text' (texta,textb)88| Handle enter and focus movement keys8@m wi'font' 'LinePrinter'.6),@8 wi'*SEL' (1 0+wi'*SEL')8<LД A Tree object with additional methods and properties forL,̓ :if G ,,h :end ,0LT :case'THLine' 0o8 adjacent to char or number8Lwself'ff'wi'*Create' 'TForm'('*caption' 'TTree Example')Ld{tcff -------------------------------------------------------------------------fd:return, 0 :case'DecimalSeparator',q`0 0'ff.bnRetry'wi'*Create' 'TButton'('wherelc' '='   )('*caption' 'Retry')`$ :else$Xa wi'..*edobject' U save new object nameX, Zwi'*value' ,dtcff -------------------------------------------------------------------------dNew( :case'formclasses'(( classesclasses, 'TFTP'(0< wi'border'16 512'0P,classesclasses, 'TInfo'F,<p(6 tFM wi'.ed5.*Create' 'GWLabor' ('wherelc' '=' '>'  '#7 8')('handlers' 'qty_Handlers')p, Z 'treeT wself' ,,classesclasses, 'TPage'D , BEEPn$\ new row$,p wreswi'Doc' ,,\/classesclasses, 'TToolBar',\(X :end'(X ids(~/idsss '.sc')/ids drop scroll object is anyX|,h wreswi'Doc' ,$T :end $  ISV/SV T Q :return $ (LIM :if PX=2ta,,(0 wi'*spy'X ,&b28 :elseif 0=+/SV 2/22/008<\f Caret not inside of the text string<,d wreswi'Doc' ,0d\<0 0'ff'wi'*Create' 'TForm'('*size'0 300)('*caption' 'TOption Example')@\,kclassesclasses, 'TWord' ,:endd(XP :end(< NN,(1+(textb)' ')textb<(o :case 4103 (( Setup button handler(p -dtcff -------------------------------------------------------------------------ndX`x 0 0GMarkKws T Check for partial keywordsE'X@  Z'fmCueCard'wi'closebutton'1 @,s Zwi'*text' ,,% Jwi'*list' ,E :end00E :if 0Dwcall'GetDC'C0$R :return$\tS IDV/IDV select first matching item9\(\l :end(\ V/^\IDV SS ID mark matching ids 08/11/01nZ\X0= wres'#'wi'VV'R L query coerced valueX05 :end l:else, Ewi'SsColumns' ,,p Zwi'*value' , Awself @:select B1( :returnTwi'*Focus' :return 1 TN 8q :else 87 :end $ :return$$7 :end'$ ~ :else ȵ :end1 :else   :endif( :endTC( 108wi'*ID' 0 IJ :else D :endrn p format: 7 10 < :end 9  :endselect  :case 8 h :endif$C :else$(Q UCSTOP(4 :if /16 17 18 201warg4, GWSize'Shade', T :end9 $8L :return$ :endrn l:case'KeyDown' H= Removed error msg from CheckSize to suppressH$̽ :return$  :return ,U Check for valid key',0Ⱦ :if 13=1warg0( :if 1=Rts(E :return $@ :endrn H  renamed qty_Handlers from the edited size_HandlersH(G :if R<100( :return8 :endn,h :return, ? :return  :end  :else:case'New' :end  :end1 P[2] SV| BTEXT$| B,B,tcnlx :else Awself 4 Awself  :end1   :andif 1=D e $Ԛ B  'property'$,xclassesclasses, 'TIniFile',D:andif /9 27=1warg 07/09/01DD@:end 07/09/01D|| :return :end1$( :return$ :case'KeyPress' (8 :if 1GModeds(  RAV h :return $ :endame$$đ :return$T HP textwi'*text' capture edit box before KeyUp placesP(` :endrg((|^ :if warg[7]>110it( | :endR TE :andif +/2wi'..*kwparams' Rev GWToData 2/28/00TD wi'..*edobject' (EdObjects[I])DtG :endeD<:if 'KeyUp'wevent 07/09/01D D :endrn ( GModef(4 :endt$tA :end$ d? DebugTrace ( :return(4p :if 'OTHER'wi'aplname'')44  wi'*texta'(texta(SEL)T)nt4,H Required:(F) EdObjectss,  texttext~' ' $ M((NR),-W)M c'$ $ :end $ B  'property'$D@ P' IS NOT A VALID QUANTITY',TCNLD(\ wreswi'*'(,h work as data_Handlees.,< H( :if 1=warg(( :return4Z Z[1 2]=(clase no),(material no),4D0 "Window/s key code: back,numbers,chars,period"D0T'TT.f1' wi'Create' 'TFrame'0$4 GKwExit R$  :goto error DGClasses Initialize 3.5 "T" and Gregway ObjectsD 4T wi':*Show'1  :else  :endce ؐ :end(p jobfile[1] T($@T wi'*caption' ''$ T wi':ontop' 1  :if 0G[5] 4 move to home is always valid4,tCF WI'.fKws.*children'O,:else4d] wi'*text' (DTB texta,textb)4 4 :if 0G[6] (/ GWQty'Shade'(# :end 0P| Drop last number char in the size/qty edit object.)PT̜ on exit (tab or enter) for a GWMat, GWShop, GWField or GWOtherpTDH BDEB B,' ',C,' NOT ',D,'VALID ITEM',(A>1)'S'D !:if 0=ID1~' ' $x :returnta$( :else5( :return  :return $ :endme$$ :return$<DebugTrace8 :end  :returnrn 8 :end $ *selection$ :endw<~ No need to check for size or quanity<  :goto error $ wi'*ID' ( ID)$,L'@( :endV@4, :caselist'=LL' '=L9'Z 40DAE2 (1D)wi'*where'0(\  FF[avF;]((L P[2] SV 2/13/00f( OSV''  x:select wevent $ :endrn$$ K0 9$x, wresR(( :case' '(( CC,D2 atC((} :case'#L'@( $ :endw t  H2V/1HOSF) }S1M H= SS-1CM start column for actual item countt)H0 R11 valid size)0(t newtexttexta,ID,textb(D SCrnw[2 3 4 5]W,(IDV),(+/V[1]=V),1IDVD0 t wi'*color' color0Dz therefor there must be a matching caption.sD,3 wi'*onMove'BDt,  OST;] 4H CV1wi'..fIds.*children'4D@ :if 2=warg[3] 2=Ctrl'D(d8 SOUND(  :elsen $ :endn$( :endselect(  :return TDT reserved for additional case statementsD textaSELtext d  textbSELtext (d :andif 1=+/F0($l wi'.*Focus'me$D4 U[1](U[2]-RN[1]-1)U[1]+RN[1]DD* P' LARGEST VALID NUMBER IS < ',(K),' > 'D(  SOUND(  :if 2=Te  :return h SV[IDV ID]2 ( === Check keywordsts(( :if 32warg ( T  wi'*ID' 0n'   SOUNDV $ SOUNDes$ :end01(  :goto scrolled(l7wself'fmMdi.tBar2'wi'*Create' 'TToolBar'('buttons'1001 0 1002 0 22 29 45 0 31 25 34 30)llS0 0'ff'wi'*Create' 'TForm'('*caption' 'The wherelc property')('ontop'1)('*size'100 500)=FlDQ with the active file always tied with 25D  :else  :case'Action'e H:case'New'  :end1 :else$D A  object name$ l :goto scroll $G :end$(h N5+wi':*cot'( H :elsen  :endize ,T :if ( ID)wi'*ID' ,(h wi'*form'DC($l  B  'property'$$ R=1 insert ont $ ' H(,8classesclasses, 'TDates's,l5 fall thruh/ IFV/FVX CC+1 ĸ :endLDtQ (t[1]) wi'*visible' 0 hide scroll object#DDȓ GWSize'Shade' 08/02/01D$( textbwi'*textb'$(I textawi'*texta' d.( :return$Z :for i :in t$  :ended Dt^ :case 'data' data field in the last objectnD h:elseif E :case'?caption'$$H :case'caption'$, Zwi'*value' ,,T~ :if 0K ,;io1 Awself $F :case'?Method'$pB :else,ȭ Zwi'*value' ,( $T :case'?apldir't$$HA :case'class's'$0\ BDBD2wi'*:margins'0 @:case'New'w8B:select BC( :end t $CC1wi'*where' 0&D2wi'*where' $? :case'property'$$DC :case'class'M$$lF Requires: (F)]$$H! A  object name$$D or 'Method'r$TB Awself 5 :endst$$= Requires: (F)$ C :else E BEEP= $<> :case'class'y'$ Ԅ :endselect 0@:return End of basic handlers0 GInfo wself] $hC :selectwargD$$D6 :case'Method''$8 :andif vi wi'..ed1.*text'08H A single period is O.K. for these objects.H<X Move caret one space to the left<8q :endrn :returnL :return0 V6V6,(i) wi'*children' 00q GInfoMsg P0 (.SXY   "# %&'()*---lb:)<xDO,W: \   ̔  * p$qpl;Ќ ,4fj`84W X!"!"|#$`% &'X(\(t`)̔*+d),-./0Dg11`2ܙ34<5`f6>7 88:9(:K;<m=g>>?߾@FAB09C;DE`FGLHI7J7K(L'MfNhO%PQ;RpS=S|T<7UV8WXYZx#[$\]]<^@B_f`bab,cdpe 8f6g7hijXknkH|lmPnnopH qrhs*t uljviw`.xyWzm{|}|~t8hXTid""(9|<ؼxnn(ntHmd D0dPP9p<lp L7l`{Dcd||H2x#`D"L|0(}4!HD- 3$- D<} hL8\l<6 :if 1FE wi'class'<<\? :andif (1warg)32 37 38 39 40 35 36 <l [4] wself'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')/0l<H GEnableNext 07/27/01<0) C2000042035 69500043 1989940093 1991629724 1717511292 35931273 610044262 1284072986 326421980 34031046 35603910 37176774 411078 1983942 3556806 1620070 4557158 407210342 809863526 1212532582 1201274880 1425997825 451632932 216727984 149620144 82511792 15403184 65317 24570112 981270528 45639192 609550080 1948159393 2142624660 1962941565 1138437071 2145557110 393478396 1946287232 50102285 1569439349 743279400 1300957163 1962743000 1314752971 967684727 973065147 1996409531 1300840525 927319608 818250497 243814 1596216575 1821086322 956544476 542778436 606356619 1529103497 1009024139 1820978475 1821070884 712289756 1946221187 611617630 608996187 1978080434 1022690054 1341230048 1157605889 1153848868 352232924 1964449253 967171004 542778436 158662972 5635664 346676156 1442795517 1529103615 1967229622 1012540484 1326740768 1009024059 126487924 210435780 16775226 1974066100 2145573788 175440636 1311001739 1445221515 28575467 1445219467 69485766 610568192 608995589 609519888 610568212 50102279 1047849611 2146442505 304 251722371 79995 1983345665 1962400692 1716135020 16776264 257893460 86142 612140031 2079391736 38 606368907 203717771 1378118795 1311003787 610044924 1395815620 2143083638 24445436 1257562794 1070863499 1016871805\\10 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' '=' '=')\BDL:)  p=L?|  > p   p ]u4uAPt$@?(@AB*CDEFGHIJ)x*+4,T-,.L/01R2(34@e56f7P8-94:h7;<=>?h@A`B(-CD E7FGH6IJ /K LM9NĘOPXQ0RSLTfUPVWD XYZԖ[#[,\L]^t_ `@a<bԠcdetfTgh0ijkPl4mЬnp*oHqp̲qr,Ts|ţuvw4xy8zP{|}Y~ PP[L.8t0( :leave0DtoattrsNOTACTIVE HILIGHT ACTIVE TAGGED MSG DEFAULTDdXz :elseif 1=+/2wi'..*idparams' added move to next itemd 08/03/011d< wres1 suppress default key action<D܁ 07/20/01 wres0 07/12/01 release hold01D4 I11+V wself')4Ĺ0).4X Copyright (c) 1994 by Jim Weigang4t:)h--$Np)t t0 :if wself1EdObject00@ wreswi'..?wherelc'.0|2 :if 0wcall'W_Ini' 'InternetGetConnectedState' if Windows API not declared, add them to INI file<tD2 (K L M N)(1D)wi'*where'S<@ZHIDStS:)8"'T)#lǺ4<ǺXƺ ƺ t0 Must be in the data edit box0L Add lines here to construct TFormClass objectL(:)D L(DpRx v  pV    F`Q`n8\("p@R S̚F o!="#F$7%&pN'L(G)8O*l-+,-.-/$081x<23C4h56$7809:;<0=?@ A,BtCD@ETF4@ to you object. Do as follows:44 TT,tcnl,"TObject'Action'"4\}P\ which may not have a caption, may be made disables.P :)TtDT8̶\ P  P   Xh \sl8p,:ܻh 4  l6k|\ ,@ й!"#$%D&l'Z()\* +:, -.`4/0l1E2 34 P5(5It6P78P9:P;P <xp=ؐ>07?,@tAB.CDD8iE qFG<HI&J@葶KUhLhGM CNO HP̐QRR4tSTUBV WBXXYl Z@J@ [ \0 \ \4W]x ^d_`, a0x b  c\s d" e f< f gh"ij|klԤm$nĉo$p$qPrrs,txuvwmxyT{z{|D}3~@.<'L45|HLX<04>ĵ$(*`L@j4qtl$NTVt|+1@3oPWt N 0Ld|`D4Ph,|ltx00OxdFhh a&(k*`䌶H!D\'@>wxz%DLOPd(D   0 :if 0=F wi'*text'0< wi'*SEL' ((texta),0)<XHg 07/05/01 Blocked GErrorMsg ' < ',ID,' > ID NOT A VALID ITEM'X  QTYUsStuVvW]^XrZRw\xP3  !"# ''++, /    5789                  SST  Z[]]^aabceefh j      vrstuxy|| ~y   s  i  f  H\  LUP         8@@       4 / - !)                          !$ 74:caselist 33 34 PgUp PagDowt4 XwQ3 8 ; GWQty'Shade'8 } :)Ԗ1  f4fxs 7  Ll    ||xp7d3H)t*$RTph !X"X#t$@%Q&'<()̎*pr+(R,P-./0f123Z4Y5687t8 z9:h;8<r=x^>?a@ ABCrDmE FGT+H,zI\*J(KlLxMTNhOlrPPQ{RxS\TyUyVkW5XrYvZ<[,4\5\l\h]^ _~`aBbc(dHevf\bg 0hwi$ujh|\kxlDumdunXtoxtopxqrxst~uv@wxxty~y zx{|@}~~XHs?HH(Է<X~0?Lyt\P\dԔTt<(`ASpĴD]Jx@J$$_l]f~Եp0hT(̴4P~L!xpȏ~@(<̿DohDT9d|^h$N\_`8 gԓ_čX8`\8h}L`>8=`sh$fp <p! initial exit<( , :else@(QdI SIZE wi '*Set' ('wherelc'  70 , S,5) ('caption' ((3V2[NO]),' [9999]'))d:)XPtԅ4^^h0܃$ ḿ  h\T h j0 ̩ЂH | LUHVTh8{ؤ$ ,w,`w| `|LzP{Apudqt8Pzz ,y!Tp"Ly#؁x$h%̤x&@|'ho(haXo)l*+v+\lv+P8v,s-9g.|u/ pr01ĔPh2\3+h4j5Fi6$m6om6ءP~7 ~7}7 }7 @}89p:o;xr<f=H?dQ\t?44p@(iPsAB|$sCDxELkFlG,kHto|kIdJKP}LM\NH 4 Inp wi '*onKeyUp' 'GInputHnd'4<{defFH1 wi'*def' called by GHistory1<4- R1 return to edit box4:end00L Z'fmYesNo'wi'*Create' 'TMsgBox'('text'E)('title'(wi'apptitle'))('buttons' 'OK')('mode' 'T')'Show' :) \< 4-   d L $  l  d̹((l" e!Y"G#$%&l'8(0)*+y,9-4./01|2 3$d4567#8|9:;Q<=:>d ?Q@@HAQBDC`D EFБG@HIJtKL,MNPOPQ8RSdTUV@WXYZT[؝I\D]^a(_Ф` < :endif end of second click routin<4D SCrnw[1] Screen rows(N)K]4p :end01( :for j :in SPECS(De$ V(I1)1 $XI GErrorMsg' SINGLE ITEM SELECTED',TCNL,' NO PLACE TO PAGE TO 'sXtEC :elsed ID1(V)/VT[T;] last item, last rowsdFP< wreswres,tcnl," '' leave unchanged"P`ewselfWI'..b1.*Create' 'GWButton' ('wherelc' '>' ('=',FF,'.f1') 18 25,0 5)(1`G ob44 Check frame caption size4L NV wisplit( 'where'),W reset frame sizeLLHff.d wi'*text' '' insurance. some tiems text had two spaces 07/29/01dHf.lJa)(PM V[I] N add 11 to ID's count')PXl`:caselist 107 187 109 189 Handle (+) (-) keys keyboad and Number padXH  cursor at the end of the string of numbers)Hh`Q Zwcall'SendMessage'(wi'*hwnd')'LVM_SCROLL'0((2warg)wi'*lineheight')shpTL ZA wi'*Create' 'TMsgBox'('title'(wi':apptitle'))('buttons' 'YN')('icon' '?')('mode' 'T')pxH Z(E,'.timer')wi'*Create' 'Timer'('interval'200)('onTimer' "wi'..color'(wi'..color')")xKp' DN :returndX P2+1wi'..TextSize' 'Test'(wi'*font') entry height in list boxdKedn@Lmp'h flagged with a number. fittings, hangers, valves etc.hL'cop wres'Specify how each of the 4 edges of an object moves when its parent is resized'sp' '='  '=')('caption' 'Age')om'dTT\apdnwiLb wi'*selection' (1 0+SEL)(1+wi'*texta'),0)oLU10Q :enddS [6] wself'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '>'   0 112)d\$K BEEP d$V---P[ State caret at the begining of an empty edit boxPWd`U [2] wself'ff.ed1'wi'*Create' 'TEdit'('wherelc' 60  200)('caption' 'Name')FdW199$G :elsed$X\` B(8W[2])' (LF) [COUNT] ITEM [COUNT] ITEM COUNT] ...')\HT A d,Wtcff -------------------------------------------------------------------------t-dY---$d :if +/SV 6 $Zl GMarkID ID Move to last items: set variableslgettLFMFM wi '*Create' 'TFrame' ('wherelc' ('>',FF,'.H3') ('=',FF,'.f1') 100 ('=',FF,'.f1')) 'Hide'tp[  :end rQTYUsStuVvW]^XrZRw\xP3 ' [JPc ID(^/( G)=(G)V)/V select full ID 07/19/01mPh\|dX0 0'gg.bnRetry'wi'*Create' 'TButton'('wherelc' '>' '='  )('*caption' 'Retry')d\L\ boHDu DebugTrace 07/14/01 temp)iHT]BUGD Swi'..TextSize' 'TYPE' allow for boldD]~d\0 0'gg.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=gg.ed1')('caption' 'Age')---d]---l^---<f or for left move from an empty edit box.<^wi'^fil( H :IF ' '1T B($__`|`X' '='  100)('caption' 'First Name')-d(d---Lr :if InsertState 07/23/01LTe I2(RC[1;]=2)/1RC Index of 2rd row framesTPc :if 1=+/^\T=' ' 07/16/01doPPj 1 GMarkIds ID 07/11/01sPd---XPD Implied lineal feet not allowed when entering equipment takeoff.Xe\v AA,'OVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers'\peionX, idparams[3] nested array of items (label captions)sXee')T T[;2]T[;2]+18 Add allowance for marginsTf`z BNVBNV, wselfwi('..b11.Create') 'GWButton' ('wherelc' '=' '>' '=' 40)1`g A <i :if 'DATA'U wi 'aplname'<T| idparams[1] offset to the captions to be displayed)TDhDI Twi':*toindices' T 09/07/01eDhneddpb0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')sdi)('Xi4l= ccc ccc'wh4]00)4 Exit and file validated data.4re4dl :if ~vi IDtd48j2 3<Lj wres2 signal an error<j' '<l :if +/2wi'..*kwparams' 3/4/00<jP :if 2=warg[3] 07/15/01 added Ctrl+End routineaP8k3 28 wi'*selection' ((texta),0)as8ke')Pk :end 07/15/01PlinePdY BEEP 07/09/01 BEEP added wres2 click SOUNDPPl<~ R1 return to edit box01<lCre4} R1  :return'4lch'D4U Cursor at the end of the text string'Dmit' @p :return 1 dthtcff -------------------------------------------------------------------------1')dm$h SELwi'*SEL' $nrelH k UCSTOP TEMP FOR DEBUGGING 08/15/01eSHd$m0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')ssdha0 0'ff'wi'*Create' 'TForm'('*caption' 'TObject Example')('ontop'1)('*size'200 300)te'h`o' 'dntcff -------------------------------------------------------------------------t"dodntcff -------------------------------------------------------------------------hed,ptsamp t:for i :in C < AS(AR+2)P Q <hn0 0'ff.lv'wi'*Create' 'TListview'('wherelc'5 5 300 500)('attach'1 2 3 4)('report'aaa)hhpaaa'Function' 'Size' '#Lines'(split nl 3),(size nl 3),[1.5]crsplitnl 3"hL` 1 GMarkIds ID 1Do not reset text6LLX wi':*cot' (5((wi':*FMV') wi'..*self'))sLPX wi':*jobindices' (FREAD HIDS,10) job vars indiceshP00),d :return,H Twi':*toindices' 09/07/011Htttadotcff -------------------------------------------------------------------------"adt$T):orif 0debugtrace$'5  :for i :in C) L  :if ( ID)IDV 07/11/01LTvd,t0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')1 d| 'T$v P[2] (P[3])0 $$ Fwi'*idparams' P$ wTDu\4w AA,'OVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers'\w\0 AA,'OVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers'\xdutcff -------------------------------------------------------------------------dx wreswres,tcnl," '<>ct1 ct2' vertically center this control as well as ct1 and ct2 within form")y|4R wreswres,tcnl,"delay: delay in seconds during which message is displayed (between 1 and 60)")|l NG Inp wi '*Set' ('.wherelc'  70 ,('>',FF),0 0 0 18) ('caption' (V1[NO],' data'))l0ze o8|DebugTracedw0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')-dhz---$ paint keywordsrn$zDuc$|ff.$ERASEJOBFILE;T;Ali$` BNVBNV, wselfwi('..b12.Create') 'GWButton' ('wherelc' '=' '>' '=' 40)x`` idparams[6] (number of rows in the items area),(items per row)`8@P:end end of MouseUp routine)8Pd incremental to the right. It will make)P| G :end1dy0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')gd| }IL$} off ot it.$@}>Bi}D GKwDefaults 07/09/01D}'>>4 :return4~'*c$~ :return$sc.@ Cursor at the end of the text string@~ntr< :if (DTB texta,textb)1+1SEL01<~---$Ȁ wi'*text' TEXT$PHl 09/07/01wi':*toc' (T wi'*caption')H,ԃ :end',P  Set the global variable debugtrace (0 or 1) to activatehtP|kaysPk CNOCNO,TCNL,'CNO[6] Major GWS functions and variable'1PaysH0:if 1=wi':*cot' 1-Duct 2-Airdist 3-Misc 4-EquipH$:andif 8=1warg$hin hqff'ff'wi'*Create' 'TForm'('*caption' 'TGrid Example')('ontop'1)('*size'350 550)'Show'hЁat'TX idparams[3] nested array of items (label captions)tT 208 wi'*SEL' (wi'*selection')80\Ȕ AA,'OVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers'\Ԃ2254$ wi'*text'((1texta),textb)r4 wi'ȣ d L wi'*selection' (1 0+wi'*SEL') 07/11/01Lyyy@, :andif 1vi ((T' ') Ttexta,textb)@m/y,` :goto paint,8 19$L :end1$pate$ :return$ $ wi'*Focus'$ 7$x R GMarkIds ID$'20xH  Required during initial startup before cot and tocH wi'DEditKeyPress;texta;textb;DESC;IDV;OS;RN;R;SEL;SV;TDH (12/P (text definition) PUTDOC (GWSDOC component number or '?')'uP@ wi'*..suppress'0 (@` :andif ~/(V)Iwi':*toindices' 09/07/01 must be one of duct types`< Set edit box with new text string<X (OS SV IDV DV SB RC)wi'..*idparams' 07/15/01XXn wres0 Release hold else the text will not move 07/21/01X4 wI'*selection' (wi'*SEL')'-4Tl (OS SV IDV DV SB RC)wi'..*idparams' 07/15/01'TxIDVP[3]ddT|tcff -------------------------------------------------------------------------,d@ wi '*selection' (01 0+wi'SEL')@Td :return 07/15/01 Th0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' )('attach'3 2 3 2)roh$ Paint itemsn$$ :for i :in CV$X:if 'MouseUp'wevent Check for MouseUp added 08/05/01-X`J t wi'count' 1000 TO DO: Co-ordinate with space in the printed report` KWVP[3]dȉ0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')-d$ :for i :in CV$T :if RN[1]=+/OS=OSV until new offset is found.01TX$ :andif ~/(V)Iwi':*toc' must be one of duct typesetXdtcff -------------------------------------------------------------------------.cod$ :if OSNOS$,,P'<',RA,'> IS NOT VALID' c,(<:if 0=nc 'debugtrace'((,PF wi'*kwparams' (4 GErrorMsg'TROUBLE: MUST FIX')w4<x wi'*selection' ((texta,textb),0))<,D Dollar cost items valuen,( empty text box((L GEquipDefaultst((t :orif ' '=1texta(( SV[]0 ($ :if +/SV rn$(ȕ :andif wi':*ok'(h0 0'ff.ff'wi'*Create' 'TFrame'('*caption' 'Frame')('wherelc'  0 0)('attach'1 2 3 4)h\ AA,'OVALdesc oval ductDUCTDesc DuctAIRDIST Grills and Registers'\ :else1d80 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '<'  )('attach'3 2 3 2)d$ :if 12P$(X Dwi'*text'a.($Ж:for i :in (19),0$D Ttexta,UPPERCASE av[io+warg],1textbD( Ewi'report'1(( C,'D E''(( wres123($ Twi'*font' $$̘ wi'*font' T('$`' GErrorMsg 'lvAnn.KeyDown: ',tcnl,(,(wi':lvAnn.report'),tcnl)pr`<` Cursor adjacent to bright itemn'<( wi'report'E ((? AL1  wi':Redim'(4 ((Z=',')/Z)'.' 4D4H Intial cursor moving from ccc to ccc' D$ Item's frame$$ Keyword Area$,D:elseif 1'SHOP' 'FIELD' A,08:end end of space key handler0( SELwi'*selection' 0(h`0 0'ff.ss'wi'Add'(2 2)(10 4'This' 'is' 'Formula' 'One'123 19991231 '0,1234' '78999')h8 wi'*texta' (texta1texta)l8( :if 1vi ID((8 :elsel(0Y GInfo 'KeyUp {Esc and Tab}'])00 wi'*selection' ((T),0)'0U :endrnLؤ R1 07/11/01LH Moving left to be adjacent to a char or numberHH ID(-1+(texta)' ')texta 07/14/01H$ wi':FMV' ( FM) $$ :returnrd@0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d$ History row names$ <:end 2/20/00 $ ID(IDV[I]),' '\$ \si[2si;]l | :endif  :endselect  R1 s' $ :end $ \ :return H :if vi ID 07/14/01H4ԡ Handle the following curosor keys4Dp Cursor at or pass the end of the last char01D@ wi '*selection' (01 0+wi'SEL')@\4A GEditList B;C;D;E;F;G;H;I;J;K;L;M;N;P;Q;R;S;T;U;V;W;X;Y;Z;io;wself;O\  :end0 d0tcff -------------------------------------------------------------------------d  wi'*Focus' 8 I((wi':*FMV') wi'..*self')8( :endD(< :if RGMoveKwLight texta,textb<8r 09/08/01wi':*toc' 0284 :if RGMoveKwLight texta,textb4`J SV[((VSV)/VSV)]2 mark as intense (red) 1st in a series)`( :andif 0=+/SVt(HP GTurnOffIds 07/14/01HH wi'*selection' (01 0+SEL) 07/14/01H TqGEditMouseHnd dw0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '<'  )('attach'3 2 3 2)d$ :end $ ` :elsen La :return 07/11/01L$ :elsed0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d@, wi'*SEL' (SEL01 0+wi'SEL')t@T and them back to the 1st pageTPX wreswres,tcnl,"Otherwise the owner is undefined"_P :end0d@tcff -------------------------------------------------------------------------d$ȧ A  object name$$ B  'property'$$ or 'Method'0$$@:case'onDestroy'$\TF,'.lvAnn' list view control nameow\\`":caselist 2 3 4 5 6 7 Oval Square AirDist single and dual wall frames)\d@0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d@ wi'*..suppress'0cl@dtcff -------------------------------------------------------------------------td$ptextawi'*texta'$  :return ( ccc or cc.(8 (C[i]) wi'*caption' (IDV[i])or84̶ :elseif 1=+/2wi'..*kwparams'40\W TT,(0textb)/' '0, Labor (man-hours) valuet,0 wi'SEL' ((T),0)0PԦ wreswres,tcnl," control pointed to by WSELF."'Pl :endndت0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')Bd$textbwi'*textb' $8 (C[i]) wi'*color' (toattrs[1])8L@ :end 07/22/01LT :if RN[1]=+/OS=OSV until new offset is found.T R1d 0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d$d R1 rn$  :end_ tDvFF GHistory NO;C;N;R;V1;V2;FM;S;W;Inp;Hlp;Ids;Sc;Kws;Desc;DESC;ID;MAT;SHOP;FIELD;OTHER;QTY;wself;Vtt0 C(8W[3])' (LF) COUNT] ITEM [COUNT] ITEM [COUNT] ITEM [COUNT]...'t\Z II+5 FMV index: offset adjusted for 6 types (toc) of duct\X :ended0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d$[ :else$   R1 `90 0'ii'wi'*Create' 'TIniFile'('filename'(('oo'wi'windowsdir'),'win.ini'))`P wreswres,tcnl,"Syntax: 'object'wi'WhwndOwner'")P :enddtcff -------------------------------------------------------------------------d$ texta(SEL)text $$h textb(SEL)text$  :end  L4 :return No room. return to edit boxL\D 0 0wi'.bnOk.Create' 'TOKButton'('wherelc'('=ff.ed1')'>'   0 112)\ :elsendt0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')ed$lID(-1+(T)' ')T$(` GTurnOffIds ((ܗ :case'>> '(P wres'#'wi'VV'R query valueP@ wi'*selection' (01 0+wi'SEL')@$ :if ~vi IDS$  :return hH0 0'ff.mEdm'wi'*Create' 'TEditMenu'('options' 'undo' 'redo' '-' 'cut' 'copy' 'paste')hh0 0'ff'wi'*Create' 'TForm'('*caption' 'TEdit Example')('StyleSheet' 'StyleSheet3')s|hx :end10V :if 0=texta,textb04D R1 Return to edit object4< "move cursor right{39) one space "<\ 0 0wi'.ed5.Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')x\  wi'*Focus' dtcff -------------------------------------------------------------------------d\< - the field name to return focus to after an error message is displayed"\$ :ended0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d<( write item to the edit box)<Lм Valid char key pressed 07/21/01L0 wi'*SEL' (SEL(T),0)0,\classesclasses, 'TClock',(HiSELwi'*selection' (0H wi'*SEL' (01 0+SEL)0\ 0 0wi'.bnOk.Create' 'TOKButton'('wherelc'('=ff.ed1')'>'   0 112)s\L wi'*selection' ((W),0) 07/21/01LL R GMarkID ID 07/21/01Ldtcff -------------------------------------------------------------------------!d4 I save edit object state before')4d0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')`dd0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d04 :orif ~'SIZE1'wi'aplname'0@ ID(-1+(T)' ')Ttexta,textb@00P :if vi wi'*text'0TG0 0wi'..*idparams' P save mew settingTTx:if 2=warg[3] 07/16/01 Suppress right click drop menuTyDebugTracedtcff -------------------------------------------------------------------------d 'DELETE JOB' Pܴ wres'#'wi'VT'V T set typeP T :elsen L (wi'..fIds.*children') wi '*enabled' 1 08/12/01LP| wres'#'wi'VT'V query typePH :return 07/14/01Hdd'ff'wi'*Create' 'TForm'('*caption' 'The escape property')('*size'300 400)'*Show'dH :elseif 0=(ID) 07/23/01H0, UT[11+Twself]0h$ :case'< ' processed later in this propertyh4 (M N O P)L wi'*where'4@D :if 1FD[1] wi'class'ec@P8 wreswres,tcnl," Byte 17 8209"PT TDEB ,' ',MIX (~^/V='0')/V delete implied placeholdelrTdHtcff -------------------------------------------------------------------------d 8 :endrn ` Attach the help file to a given window by specifying the property`0h wi'..*edobject' U0,,classesclasses, 'TCombo', ":case'onExit'" dtcff -------------------------------------------------------------------------'d  :if~E H :andif 0=(texta) 07/23/01H` A THLine object allows you to add horizontal decoration lines to your forms"`L (wi'..fIds.*children') wi '*enabled' 1 08/12/01L,classesclasses, 'TDHTML',P(0 0'ff.ww'wi'Navigate'(('oo'wi'installdir'),'apl2000.htm')PdX0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')d 8 :end , Before After0,,EQUIPDEFAULTS;F;P;C;IDV;KWV,DXk :return 07/10/0101DLDb Paint routine placed here to make code easier to read.LP  An object allowing you to embed Microsoft Internet Explorer"P8; :caselist'>9 ' '>99'ct8H$ :else 07/14/01Hdp0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')dP\ or: 0 0'ff.mTm'wi'*Create' 'TViewMenu'('options' 'default')P4Q 'How do handle the misc. class'44 wi'*dir'(1warg)4T Hi-light items if the char string is a full or partial item.TTtItienoFFTTN -- Tie and return tie number of FFT auxiliary fileceTTP EditKeyPress  Back, Space, Left?, Right>? Chars in edit mode'TT< Note: whether you use 'Show' 'DemoShow' or 'Wait', you must useTe BEfi'0',1BB penclose(8(BD/C)wi '*wherelc')[;6] horizontal adjustments for each matrix4 Handle char keys in the edit mode4\8 0 0wi'.ed5.Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\T The TOutlook is an object which provides you with the interfaceTdtcff -------------------------------------------------------------------------d  :end1 H :endN@ The all takeoff data is check in the@ [DMh The Control2Var method returns raw values from the field and updates its 'aplname'ehP Similar as the THLine object for displaying vertical linesA'Phxcheckschecks, "(SMOKING=1)^SPORT=1" "'Can''t practice sport and smoke!'" 'ff.like3'mehTX The TNetwork object is another non visual object encapsulating' T\ 0 0wi'.bnOk.Create' 'TOKButton'('wherelc'('=ff.ed1')'>'   0 112)"I\`H0 0'ff'wi'*Create' 'TForm'('*caption' 'TForm Example')('*size'100 300)'Show' `d0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')sd8 :select(,O)[(,O)O3D]ta8L Move to end of string and light hi-lightsLd0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name') d8X :select(,O)[(,O)O3C])8H Q0 0wi'Place' '' 'Absolute cell widths (pixels) ...'"H8 :select(,O)[(,O)O3F]'8LP wi'*selection' ((wi'*text'),0)1Ld0 0'ff.ed2'wi'*Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')07dHJ :if ^0 0=wi'*selection' 07/09/011HTwself'fmMdi.mWind'wi'*Create' 'TWinMenu'('options' 'default')laTP easily bulding and adding the tree structure to the objectx"Pdtcff -------------------------------------------------------------------------" d\ 0 0wi'.ed5.Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')t\\T6 0 0wi'.ed5.Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\H wi'*selection' ((texta,textb),0) Hd  ID(-1+(T)' ')TDTB texta,textb get last set of charsPOdH W wi'*onSelect' 'GEditList"lvAnn.Select"'(HHP wi'*Focus' 08/06/01nH`H0 0'ff'wi'*Create' 'TForm'('*caption' 'TFlatButton example')('*border'3 16)09`dGHelp insert help message below takeoff data input field 08/20/01Ld@i 0L (1wi'..fIds.*children')WI '*color' (toattrs[1])L0* wi'..*edobject' wselfnt04 TT,1 flags a label4ttr AP6(AW wi '*wherelc'), 0 0 extra gap between centered objectst0 GWQty'Shade'ct0d FNVwi':*FMV' Initialized in GFrame - nested vector of frame namesdH written for and Enter exit from thedHTwself'fmMdi.mView'wi'*Create' 'TViewMenu'('options' 'default')uTd MATRIFYOBJ5[((3^.=4'MATRIFYOBJ')1)-~io]2 define MATRIFYOBJdL ==== End of home key handler ================LH Move to next edit box if current box hasH\h Fill in the :case'New' section (the "Constructor") to build your object\d MATIOTAOBJ5[((3^.=4'MATIOTAOBJ')1)-~io]2 define MATIOTAOBJd< ! wi'*..size'AS1<PX0 0'ff.mTools'wi'*Create' 'TToolsMenu'('options' 'options')' P`X The example requires files: contra.bmp contraup.bmp ... in default directory`\P [8] Zwi'.bnCancel.Create' 'TCancelButton'('wherelc' '>' '='  )r\Twself'fmMdi.mEdit'wi'*Create' 'TEditMenu'('options' 'default')pTH@ :if 1V^/^\' '=O wi '*text'toHH :if vi wi'*text' 07/24/01TEXTH@h 07/20/01 wi'*SEL' ((T),0)@H( :andif 1vi wi'text' 07/24/01TEXTHd| U(Q MATIOTA P)-~io $fns position in UCMDOBJ filedH A TFrame object is a special kind of a Frame object' H8  :select(,O)[(,O)O3E]D8L wi'*selection' ((texta,textb,' '),0) LTLwself'fmMdi.mFile'wi'*Create' 'TFileMenu'('options' 'default')oTL Move cursor one space to the right.'LL A wi'*text' (DEB (wi'*text'),' ')LP A simple to build toolbar object containing bitmap buttons"tPXZ C(8W[3])' ITEM [COUNT] ITEM [COUNT] ITEM [COUNT]...'XT@ The TMDIForm object is a prebuilt MDI application with its menus THP :elseif (vi text)^~vi av[io+47+471warg]HT adidtional wherelc, attach, aplname, check and must propertiesthTLP three decimal numbers max in labor fieldsLH 08/06/01 renamed current size_Handler qty_Hanlers1 HH4Bfi BCF[5 6] wi '*text' Subection factorsH\0 0'gg'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')e\@x 3. ccc__ space before and after@\:end=' not used :)\(tZhka53Dk    4lisi[1;] (':*ERR=') (wi':*ERR')4@ :if 1I'MAT' 'COST' 'OTHER' Awi'aplname'G)@Ld Suggestion: Always tie and untie a file as needed.L< :if E[1]'#'wi'newclasses'<8(j 6. OV Dual wall "F8HX gg wi'*ImageFile'(('oo'wi'installdir'),'grid66.bmp')uH8 (AD AE)2'#'wi'units'8@ SOUND signal error@X| OS = offset to start item in the list of item captions in G.X@65' '"You must enter an age between 20 and 65!"' hh, 0 0wi'.ed5.check' '(AGE<20)AGE>65' '"You must enter an age between 20 and 65!"' hLe wi'*text' text save for KeyPress, KeyUp calls.fL8@ :andif'Frame'BCwi'*..class'T8h 0 0wi'.ed5.check' '(AGE<20)AGE>65' '"You must enter an age between 20 and 65!"'hL7 UCSTOP 08/09/01e"LLwres1 07/12/01 block default Windows action3LH̬ default KeyUp action changes the text property.esH@$ drop char to the right of the caret)@\D0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\HFF wi'escape' 0 suppress 3.6 Objects Esc actionHX  GMarkKws'' Turn off key word hilights 07/04/01X`'ff.ed'wi'SetContextMenu'('Bold' 'Italic' 'Underline' '' 'Print')(1 1 0 0 2)`L Note: I had a abnormal shutdown that evidently did notrLH wreswres,tcnl,' 1 main status bar field'HH readonly  Read only check box status (1=checked)eHP,descdesc'proname'8 5 2  describe 2nd text file field P`0 0'ff.ed'wi'*Create' 'TDHTML'('wherelc'0 0'>>300' '>>400')('attach'1 2 3 4)`P$desc1 5'procode'2 5 3  describe 1st text file fieldP@  :if 1 GRoom T Is there room?ns@L FF wi'*where' 2 2 10,2+3'#'wi'workarea' 07/05/01.LL0 0wi'Place' 'Subhead' 'Now place an APL nested array...'L\0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')s\80 Kwcall'GetSystemMenu'H 08\`0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')xc\( :for I :in G,G (\0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')c\8 Fwcall'W_Subclass'(0 H F)8p6  (wR  |:)Sgul\dl+D$e |<D( R< t(frame,'.l',C) wi'*Create' 'TLabel' ('*scale' 5) ('wherelc' ('>',F) '=', S) Position under prior first item:)T"HjУz oh l ,0,>:if ( 'name')wi'*properties'0X4 5:HELP_SETINDEX - Set the current index to the specified context)'X( :if 82dr KdefH(P00 0'ff'wi'*Create' 'TForm'('*caption' 'TMaskEdit Example')"P8 5. SQ Dual wall "em8@,kFF wi'*pointer' 1 reset pointer'@@ Status bar: message OVL NUM SCROLL DATE TIME@H A THTML object allows you to produce HTML code from+'H8H (C D E F G H I J)8D,(D)C T8Tp0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'TJpg Example')1T`t'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)33'dddd d mmmm yyyy'se``, 'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'dddd d mmmm yyyy')'`X( :end 07/04/01XXI'tt'wi'buffer'100000 reads data by chunk of 100000 bytesXL  JWG-10/30/01 wi':f1.cbName.*value' (T wi':*jobfile')LL0wi':f1.edName.*text' (wi':*jobfile') JWG-10/30/01"LtLGEquipScrollIds;file;C;D;E;F;G;H;RN;I2;I;LHL;LOS;OS;P;R;SSS;T;U;TEXT;texta;textb;SEL;toattrs;V;FVt4\ :if 0=RA~' ' 3/24/004@4 :)d @4C (G H I J)wi'..gaps'40Eclassesclasses, 'TDateTime'0P'sw'wi'Stop' stop the watch and return time since startP@ȕ Reset text box. Do not move cursor.@hd [7] Zwi'.bnRetry.Create' 'TButton'('wherelc' '>' '='  )('*caption' 'Retry')hXD 'tt'wi'reclength' get some information: record length)XH Flags[32]Flags[32]1=ReadOnly Set the readonly flagH\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')n\H Flags2Flags Convert flags back to decimal.exHL|:if ''COT added if statement 09/06/01LL Shift-Tab press. Move to the prior edit objectT"LHX OFNOFN,0 lpstrCustomFilter - Not used.HP 'sw'wi'Stop' see that time since start has not changedPP'sw'wi'Stop' stop the watch and return time since startPP`0 0'ff'wi'*Create' 'TForm'('*caption' 'TSplitter Example')'?PXxaaa'rr'wi'OpenKey' 'HKEY_CURRENT_USER\Control Panel\International'rXH:if 1P[2] Is a key word hi-lighted?HX First, if Registry API not yet defined in your APLW.INI file, run:"XH GMarkIds '' Turn off items hi-lightsH@d V(wi':FMV')~'gw.fAD' 'gw.fMI' 'gw.fEQ';]@`  NOTE: You must define the cuecard1 property for buttons to appear on the form`Pwself'ff'wi'*Create' 'TForm'('*caption' 'TRichEdit Example')PP'rr'wi'QueryValueEx' 'HKEY_CURRENT_USER\Test\Test\Test\Field2'PL wres1 suppress default caret move 07/15/01Lh [4] Zwi'.ed4.Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')')h\@0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')t\(4 wreswres err(P0'rr'wi'QueryValueEx' 'HKEY_CURRENT_USER\Test\Test\Test\Field'PL wi'*color' 255 255 255 added 07/26/01LP Return a 3-col matrix [;1]=keynames [;2]=index [;3]=values"PH wres0 Required to allow KeyPress to fire"HLw :andif 2warg[3] Right button clickedLX0 0'ff'wi'*Create' 'TQuestion'('question' 'Enter your name')'Show'XhH:if /'SIZE1' 'SIZE2' 'MAT' 'LABOR' 'OTHER' 'QTY' wi'aplname' added 07/31/01)"h4 to do: ADD MATCHING DESCRIPTION4H0 0wi'Align' 'Left' 'right' 'right' 'right' 'right'20H8  :if 0Twi'*:currentcontrol'A88d L wi'*where'(M N+H I-C D)8h [3] Zwi'.ed2.Create' 'TEdit'('wherelc' '>' '='  100)('caption' 'First Name')hH` :elseif 1=R return to edit box 07/10/01ULH\8 which sums up the names of all the controls to be centered on the line}"\( :select wi'class'A(Ѝ$tt:)@*$w`7Ct4(idhfile[1]) xfstie idhfile[2]4`)V1'Round' 'Square' 'Oval' 'Round Dual Wall ' 'Square Dual Wall' 'Oval Dual Wall' 'Air Distribution' 'Miscellaneous' 'Equipment''))lf wRXV lH`I wi'*SEL' (/((1 1[37 391warg]),0)+SEL )HH :return 07/10/010HXH A complete Progress Dialog using a TProgress object as well as labelsXT  A TInfo object is a small informative window with no caption barTT 257:HELP_KEY - Display help for the specified file and keywordT`FM wi ('*where' 0 0,2FM WI'..where') Overlay Class frame on history row`< air dist, miscellanceous and equipment<<8 wi'*..Send'0 1<H3 D(642)wcall'GetWindowLong'H'GWL_STYLE'HPd You may also use the Question utility (based on TQuestion)rmPX0 0'ff.st.pp'wi'*Create' 'TProgress'('wherelc'2 2 18 200)('fluid'0)XX" A TNavigator object is a coherent set of navigation bitmap buttons'X\0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')\` A TCueCard object display a single help screen or a couple of help screensfu`HXH :orif ^/((1warg)>47)^(1warg)<128 alphNumsdH8 :if 0(LA,'_suf')wi'*self'g8`# If several (or all) controls have changed you may use the GetAplnames method `TTmat[3;4] 3 3'Left' 'Center' 'Right'1000 2000 3000 1001 2001 3001TXD# In the next example, 10 is printed in the session only when the EditXP"'pr'wi'footer'('Copyright 1999 Eric Lescasse')'' 'Page #N'PXd& This object allows to call a modeless instruction as if it were modalX\#0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')i\`%checks "(FNAME'Eric')^SMOKING=1" "'People named Eric don''t smoke!'" 'ff.ed2'``' An object which shows how to create a form and use the special properties:']`\d'0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')ll\\(0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')]\X '0 0'ff.jpg'wi'*Create' 'TJpg'('wherelc'  '>' '>')('attach'1 2 3 4)'XX8) This object is used for copying files generally from a Network drive]XT<* keyword hi-light movement only valid in the first edit boxctTT, State: Full or partial keyword selected. Movement key pressedTX) A TIniFile object is a non visual object allowing you to read/write]XX* Specify the topic keyword to be searched with the propertyXP& A TPassword object is a special password entry form objectPT/ Control Keys: back(8) enter(13) space(32) left(37) up(38)tsTX0 0wi'Place' 'code'(('First' 'Second' 'Third' 'Fourth' 'Last')mat)XP@+ This object allows to set up PF keys under program control'"P` (0 0'ff'wi'*Create' 'TForm'('*size'0 200)('*caption' 'TComboDrive Example')on``T. A TComboDrive object is a Combo object holding the list of available drivesel`\(0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')t\T$v OEdObjects list of edit objectseTX,0 0wi'Place' 'Heading' 'Sample Report Created with the THTML Object'X`.0 0'cf'wi'*Create' 'TChooseFont'('flags'256 32768)('color'255)('parent' 'ff')`h [5] wself'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')esh`6:)4$Ԫ`H D(642)wcall'GetWindowLong'H'GWL_STYLE'HX* 513:HELP_MULTIKEY - Display help for a keyword in alt keyword tableX(( :if G(lP1wself'fmMdi.tBar2'wi'*Create' 'TToolBar'('buttons'1001 0 1002 0 22 29 45 0 31 25 34 30)1ll50 0'ff.ss1'wi'*Create' 'TSplitter'('Open'2 5 5 0)('split' 'ff.f1' 'ff.f2')('range'5 400)lT; wi'*style'(2S) record new stylesenT`6:)LTdk`pTK0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc'5 60  160)('caption' 'Last Name')('attach'1 2 3 2) p`00 0'ff.ck1'wi'*Create' 'TCheck'('wherelc' '>' '='  100)('*caption' 'APL+PC')`l|50 0'ff'wi'*Create' 'TForm'('*caption' 'TPage Example')('wherelc'  300 400)'DemoShow'"el`70 0'ff'wi'*Create' 'TForm'('*size'0 300)('*caption' 'TCancelButton Example') `<} CC,247 172 21 164 151 130 173 160 256 <,< :ends',80p :else 39 Right arrow18 PMV3OrRw23LNpU  !$$&&((000223489:B<=>BBBBDDEFKLMNSTUV[\]^``cdeghiuwxrj TYL'),' ',R[2]8</ :return return to edit box<(\ :end'( :if 1=wi':*cot' added check 08/03/01 P'IS NOT A VALID SIZE',TCNL|  wR#.)  c2',22224578:?EEEE4IJKPNPPSSTUVW[[] _`abeeeggijklmn{{{{{{{{ } |wb e CI=**    ""%%%&'(+,..03456789:;X@ABCGKKLMXQRXXXXXX\___`accefiiikooqrtvv{{ YYYVV!c%"!#$% c&##$'&c(..(23):;==AFFFFFHHLNNUU*W\\\d+bcd,fghooooooopqrwwwwwxy-{|}.i/ 0Z% )'2,5E8E;[K{]ea}X+%" Kfokt#.&52=;\Wwbwf|| Pn Zwcall'SendMessage'(wi'*hwnd')'WM_SETREDRAW'1 0PH UCSTOP 07/24/01SOUND sound errorH~:)h0*X(<   <8̞ 1. galvinized "80 :)9=~N  <)T 3 " PQ   HdA<H<Td:ݹ$;޹Pݹ38hl, (!("#$%h& $' (\C)<*w+Tx,9-Ă./041253X44h56D784L9:xܹ:;@3<(Hܹ=H&>D?0@EAĂBC<2DH9E$8F1GH-I0J-K(LM N-OPQ.RPS.TU3V|W,XYHZ9Pݹ[\/], ݹ^0/_ȃ`abc@def6g8|hyilj<:ιk9lP/moϹn/ohpPqr:szth4up9vw/x^y/zT{ 9|}X~9 p8`Ϲ`<0 0Ϲ\0@ > L8͹t͹|0D$D 0,ĉȤHExܹ|۹|ڹ(Eڹ Gٹ(عLع )|ɹʹ\`Plɹɹ<*cƹkPƹd ƹ8]vŹ y|Źy,ĹtG8{P ؼT߹ù܂6 gll,GtS¹`(7t+XqZFd D l s  lGFXGt¹<\pl<0I5LGDIH0 (߹!߹!v߹!ܚ¹"F#D$ d¹% <¹&H'h(3俹(Ī) +*P+ ,-./t-0ԁ1t"(2,*3Ȉ4MM5j6J 0 <D 07/09/01 catinated texta and textb<0 T wi'*suppress'0'0D6 W  is the max width available for itemsDdP F( wcall'CharUpper'(D))E((,'Y')'YES' 'TRUE')((,'O')'OUI' 'VRAI')dHX| :if 0=SEL added check 07/12/01H4:)`It'dl(jt kL%K`jx i2 E / / p ܪ <pe(l2#vYԧTE<d,4 l!"`#I$%,vd&ܡ'(DȨ),%*+,,7p-%./ i0h12I34T,5x67X8 b9| :;aj<5=q>?$4@xABCD,EpFBGH IJwkKyLH;M@N`OPQ/RT|STUV<@WXYAZ[@\p]^M_hj`Da/bX}c0pd?eCfgPh0$@i$jHkylmLn1oTp\qrsrt(u`vw<xhy,!z`{|x}~"m<p'|w$18.,!3 \ hSؐh: p[Hxb ܻ}h"LHZ$(x\`lU},`kk0~kl# ,~9jt~`X"XԂl+,`~d4|HȮ |T~j~j0j E;;?V@h|A B|(C`{D$#E1FD/(:G ;Ht4<ISJЦK<{LzMT INl4JO̺xJPXLQ6RRST4U8VWpXSYȜZ[p\]>^4_Ĭ`Qab(c dlefTg 40 NLS ED wi'*text'0DInsertId ID;newtext;p1;N;texta;p2;textb;T;SEL;textD4l} search number choices4 E :if BNVL `8da wreswres,tcnl," '=object' means same height as control object"d wreswres,tcnl,"  means default horizontal position in pixels (for a form means: horizontally center in screen)" wLYXrRwyXYqfu !"%%%&'*+,-00023456789<<<@CDJJJJKNOPQRSTbbZ[\]bbbddcggijkoouuun xyz |} t k 9WC   $%'')*+,0012345779:=@@@QRUVXXY```adddijkmmnopqzuvwzzz{~ %"0-J5J@JVNb[okuz} O$0)=:ZQXVuj8 (wi'last') wi'*Focus'8x auYV^XRw3.............................................001444789:;>?tOEFtOOOOOOOQRSttttYY[[\]^_`bgdggghijlttppqrttttyye|sjtt[ttGGOMtt ! 85tttt BBBBBBBBB   BB !#(!!()*+BB/01234B678BBB>?BBBDDFGIIJMMMNOQRSUSWZZZtt]^_bbbcttiiiittmnopqrttO:B?OtOFOtYQ|i; - !(63B><02 wres'Maximum item count',tcnl<<ln wres'Get or set the help file '<TIf the left argument is omitted, TCNL is used as the delimiterT8 07/29/01 :if ( wself)wi':*misc'8( :andif wi':*ok'( :)HD\tP*TN  I  <    47JxP,KUT?<@[A,BC.D0E#FpCGHHIiJKTL M<NXBOH2PFQRAST,UEVlW@XLYSZ[\0]^l_D`aHbDvcd9epfgJhi4j8kl|QmpnPoppq ^rHst4uv@wox4y'z{=|\9}$]~dTdX HT& @C  O HoS  H :if~0C :end_  H p H "x3 D(D'#'wi'newclasses')/Dwarg[2] include argument if it is an user defined Objectx` User pressed Enter in the last misc edit objects 08/07/01`` wi'*text' '0' 08/07/01`` wi'*selection' 0 0 08/07/01`l 'ff.ed'wi'*??SaveDocument' Use this instruction to get help on saving an HTML documentdl` P' Each field in Miscellaneous must have a value',tcnl,tcnl`` C(C7)/C discard unknown field types`pdtcff -------------------------------------------------------------------------didtcff -------------------------------------------------------------------------5d`d0 0'ff.mFile'wi'*Create' 'TFileMenu'('options' 'new' '-' 'open' 'save' 'saveas')dtW WdRF WGetSaveLongFileName A;Dir;File;Filter;Ext;Flags;Title;rc;nMaxFile;nFilterIndex;OFN;L;ReadOnly;M;io;nVer;fMulti[;AC0 0'open'wi'*Create' 'TOpenFile'('dir'(chdir''))('title' 'Select a file') ('filters' ('HVAC jobfiles: *.hvj'),P,'*.hvj' ('*.*'),P,'*.*')dHtcff -------------------------------------------------------------------------)d4Wddtcff -------------------------------------------------------------------------)d3<h 413(2+io)2fread V,5 read master component from UCMDSrhPWdDtcff -------------------------------------------------------------------------Hd40dtcff -------------------------------------------------------------------------Xddtcff -------------------------------------------------------------------------)dWdhtcff -------------------------------------------------------------------------_d,i@WTWd0 0'ff'wi'*Create' 'TFormEditor'('*size'400 600)('Edit' 'TFormEditorTest')'Show'dldtcff -------------------------------------------------------------------------1)dWW d  which occupies all the form client area and automatically resizes with the formWd4mHw\|phpdtcff ------------------------------------------------------------------------- d<C (K L M N)(1C)wi'*where'e c<d|tcff -------------------------------------------------------------------------d$8L`tT$l:)$T؈Ԩ0| P \ 0 :case 13 In edit box0hdpwself'ff'wi'*Create' 'TForm'('*caption' 'TGraphX Example')('sysmenu'1)('ontop'1)d4h ((L=M)/L)';' list of identifiers to localizer'hdHwself'ff.gr'wi'*Create' 'TGraphX'('wherelc'0 0 '>>327' '>>623')('attach'1 2 3 4)dd\tcff -------------------------------------------------------------------------d4Hd gg'ff.grid'wi'*Create' 'TGrid'('wherelc'0 0,'ff'wi'*size')('attach'1 2 3 4)dtdtcff -------------------------------------------------------------------------ddx0 0'ff.hl1'wi'*Create' 'THLine'('wherelc'5 5  '>')('attach'1 2 3 2)('style'0)d(<Pddh0 0'ff.hl2'wi'*Create' 'THLine'('wherelc' '>' '=''=')('attach'1 2 3 2)('style'1)d,,@TdT0 0'ff.hl3'wi'*Create' 'THLine'('wherelc' '>' '=''=')('attach'1 2 3 2)('style'2)d@dtcff -------------------------------------------------------------------------d0DXl43d\tcff -------------------------------------------------------------------------dH )dHtcff -------------------------------------------------------------------------')d4dtcff -------------------------------------------------------------------------d\` 08/11/01 IDIDV[I] closes matching iteme`<CY++/1 0 1 0/(K L M N)(1C)wi'*where'<25<Xl1A TScroll B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfX@ OPENFILENAMEOPENFILENAME,wi'D2C'0' @4D (U V W X)wi'*:margins'o4<\ error'Unknown country: ',CThe<< :if 0(Dwself,'_lab')wi'*self'e<t wreswres,tcnl," 8192:OFN_CREATEPROMPT - Notify the user when the file does not exist"tt wreswres,tcnl," 32768:OFN_NOREADONLYRETURN - File must not be Read Only or protected."t,y Dwi'*list' ,XC @ OPENFILENAMEOPENFILENAME,wi'D2C'0er@4 :caselist'>9 ' '>99'efe4@ Call the common dialog box function.@p8 wreswres,tcnl,"Each of them must be separated by the pipe character (av[124+io])"p(e :endo (X Allocate a moveable global memory block for composite data.)Xp wreswres,tcnl,"index: integer (the 1 origin index of the default selected filter)"p# 't(@|# :elseif 1+/2wi'..*kwparams'@t' wreswres,tcnl,"The fileters must be made of one or more 'description|filter' elements"tX V((NV WI '*class') 'Frame')/NV top right frames 09/07/01X@, :end error other than number 08/13/01@  H 4n @2 more than one period is a no no.@<- wi'*texta' (texta(SEL)wi'*text')<<4K wi'*textb' (textb(SEL)wi'*text')<</ GTurnOffIds 07/14/01<<1 GTurnOffKws 07/14/01< <t2 '34 36 HANDLED PRIOR TO THIS: I think!'0)<PL6 wres"Optional flags. One or more of the following:""P87 "move cursor right{39) one space "8<dW 'GWSDOC' ftie tn1+/0,fnums,xfnums<@,3 wres1 suppress default action@<l3 ccc cccr<@4 :if 1warg[6] 1 flag a repeat.@<D4 wi'*text' (texta,textb)<8<5 Increment or decrement item's count)8<4 Outside additional case statementsbO<@4q'wself=' wself 'warg=' warg temp trace@<6 :if 32=1warg 2/23/00u<@ 6 select first near matching item @8t5 VT[i] actual count887 V[V]T[i] actual count8@7 wi':*ERR' 0 Let GErrorMsg fireR@P; wreswres,tcnl,"Syntax: 'object'wi'file'filename"P<6 wi'*selection' (1 0+wi'*SEL')'<<9 wi( '*Set'),1F/D<87 State: ccc ccc or ccc ccc n888 cursor adjacent to the last char88: wi'*selection' ((T),0)0)8<< :while 82dr Jfread F H<8L: write item to the edit boxss88pC 07/19/01 wi'*SEL' ((T),0)8P wreswres,tcnl,"Syntax: 'object'wi'ext'extension"Pp <= (K L)'fmCueCard'wi'*size'<<L> 'fmCueCard'wi'*where'M Nta<00 wi'*must'(2warg)o0< 0<@ wresD1(E=E)penclose ET)< L@ Q <@ wi'imagenames'(W,'buttons.bmp')<<DB wi'imagelist' 'fmBm.i1'<< R wreswres,tcnl,"'gg'wi'Show'"e < (  84L State: ccc c. or ccc n. '.'Et84` (K L M N)4T wi'*where'4  J  <z Note: The function does no error checking<8XQ Ttexta,textb  T(-' '=1T)T')8 H $N Hc H O He  8  T< 84\ Move cursor pass the last item 8B <|R wreswres,tcnl,"'gg'wi'ontop'1"<<T wreswres,tcnl,"boolean: 0 or 1"<0T HT  `T H H<XU :caselist'TDateTime' 'TDateTimeFr'<W Z <U (K L)wi'*xRows' '*xCols're<<TX wresav[,256 256 256 256,1warg]gy< H :end[ :endH H(D :if 1=wi':*cot' (<b wres(1C ss 'DHTML Edit')/Cm<( 1 row: Type Heading'(0Pclassesclasses, 'TEditSelect'00Z T50+(1=4V)/V50N-1])004[ :if 1=3fread HJOB,i0 JJ 0\:if 0=CNO get default setting0^ F90[ F2208` wi'*selection' (1+wi'*SEL')80\ :andif 7=wi':toindices'00X] but retrieve prior toindices00] idsDEB (j,2)IDS000^ wi 'value'0)00^ LNV wi 'caption' ])00_ wi 'caption' 'Cancel'0F1F 0b T[1] (T[1])0 0hAX2F 0 8a :andif 1=+/2wi'..*idparams')88b ID(-1+(T)' ')Ttexta,textb888b wi'*selection' ((T),0)s88Dd wi'..*edobject' (EdObjects)8<s KG TELPRINTwi'Properties'ft<0d T[2] (T[2])0 00d File new defaults on exit08$e 07/23/01 T(1texta),textb80f into the hitems.sf file 08e (K L M N) wi'*where'88f SC wi'*labwidth'ws8D :end0xh D freplace HIDS,110  :endPL8Lg C wi'*where'G H I J 88g wi'*noresize'(C2warg)88g wi'*ontop'(C12warg) 888i D'HWND_',(2C)'NOTOPMOST'8((h wreswi'*' (0kclassesclasses, 'TFileMenu'])0 bold[3]18pi wres'#'wi'*resources'88i '#'wi'*resources'(C,'\')88i wi'*suffix'(C2warg)88j F1 2wi'TextSize'(C~'&') 840f :caselist'=L ' '=LL'/48 k (N O P Q)wi'*attach' 88m wi'*where'D,1wi'*where' 8(Ph C wi'*Delete' ((Xk :case'?XLicense'ect(h 09/04/010lclassesclasses, 'TFileMenuDef'00mclassesclasses, 'TFlatButton' 0(k :for I :inD(( m :case'WhwndOwner'n(8| (M N O P)L wi'*where'80 nclassesclasses, 'TFlexGrid'004oclassesclasses, 'TFormClass')0(|m :case'?WhwndOwner'(0pclassesclasses, 'TFormEditor'0(pn wi'Center'((do wi'Redim'w((o filter2warg ( H(o :if 2=wargre(( h typeargs0(0qclassesclasses, 'THelpMenu')0:end (Pp :case'VT_Variant'a(00sclassesclasses, 'TImagelist')0:else 0`sclassesclasses, 'TInternet'])00 classesclasses, 'TListview''0<s wselfD wi'*Create'C'*Hide'b<0H, :if~0Cwi'*check'0<lt wself(D,'.',C)wi'*Create'C<<t wself(D,'.',C)wi'*Create'C'<0s HH, " wi'*suppress'0"0<{ ZZ, " hhandle of child window""<dؘtcff -------------------------------------------------------------------------'Dd|vdowvilevSizve' vC' how`w wreswres,tcnl,"res: dir file ext title filters findex readonly""`d`xtcff -------------------------------------------------------------------------nsd` lpstrFilter - Points to one or more pairs of null-terminated stringse`Lx'ChxChSdvtcff -------------------------------------------------------------------------' 'dxGethvWor0t HH, " wi'*suppress'1"00Ty HH, " wi'*suppress'0"0<0. Enter key handler 07/11/01<0\z HH, " wi'*suppress'1"0<( Zwcall'EnumChildWindows'H P 0<0\{ (K L E F)'#'wi'workarea'000| wi( '*Set'),D08| (M N O P)L wi'*where'88 wi'*wherelc'(D1warg)8(| :case'<> '(0| :if~0Cwi'*:stylesheet'00X~ :end'00 :end'08 (U V W X)wi'*:margins'88Q (K L M N)4T wi'*where')80 :elseif warg[7]64+26g00d :andif (1warg)32 37 3900 :elseif /9 27=1warg00:if FileExist dir,'\temp.sf'l04 IDSFREAD HIDS,7 Matching ids40\ fdrop 99,-/2fsize 99se04( wi'scale' 5k'48 SOUND wi'..*Close'84F wi'value' 0s'40 FF'gw' gwapplication name0X FF\F mark char stringsXX< HG0,1G next 3 lines...ueXX S~TK\L=M flag all except $XXTG 5(4+io)2 list of utilitiesX4 wi'*caption' 'RD Dual Wall'40P toindiceswi':*toindices'00 SS1''0 900 SS7''0 10Xo 'GEditList'Inherit'TEdit' define inheritancedEXp6 NO  FM's index no: 1 2 3, 4 5 6 7 8 9`) LV2: t(frame,'.l',C) wi'*Create' 'TLabel' ('*scale' 5)('wherelc' '=' '>', S) locate on same row following prior item460' "'Age must be between 20 and 60 inclusive'"d̔t0@DPXl4|Еl\DPXl̖Ddtcff -------------------------------------------------------------------------dXӾlؗ|И\d  It sometimes happen that you need to read controls and get their current contentdppdttcff -------------------------------------------------------------------------d` ؛dTtcff -------------------------------------------------------------------------d@ dptcff -------------------------------------------------------------------------d̝8L`thH wreswres,tcnl,"0 0'ff'wi'Create' 'TForm'('*caption' 'GEditList Example')"h4x wi'*..suppress'0s4HG wreswres,tcnl," 32:OFN_ENABLEHOOK - Enables the hook function specified in the lpfnHook member.")$48L`Pt(P 0 0'ff.wb'wi'Navigate'(('oo'wi'installdir'),'apl2000.htm')')PRGMoveUntaggedIdLight;A;C;B;V;D;I;W;KWS;SV;DESC;SIO;toattrs;E;F;H;texta;textb;SEL;TEXT;K;GMoveIdLight;NHL;OS;CV;MIDS;RN;IDV;LHL;SIDS;LOS;OS;OSV;i;U;MO;ID;OSB;P;FV;T<wself(FM,'.ed1') wi'*Create' 'GWSize' ('wherelc' 5 78  '#8 5') ('handlers' 'size_Handlers') ('caption' ((4V2[NO]),' [9999]'))l 08/15/01 WRONG wres0 Release hold else the text will not move 07/21/01lH wi'caption' id Check box desc.THNumButtonHnd;message;p1;p2;return;select;texta;textb;title;t;BCV;BNV;COLOR;C;ED;F;IDV;ID1;ID2;ID;I;K;LS;N;P;R;SEL;SV;T;V\Ԧdtcff -------------------------------------------------------------------------dԨ`:)$joie X`< P< wreswres,tcnl," 8:OFN_NOCHANGEDIR - Restores the current directory to its original value if the"3 Ldttcff -------------------------------------------------------------------------d``تdtcff -------------------------------------------------------------------------dDXlڽڽڽdtcff -------------------------------------------------------------------------ؽddؽxDdtcff -------------------------------------------------------------------------|d =ȭܭ@< :select AC(,O)[(,O)O3D] c<Tͽhͽ|ϾpܰTdtcff -------------------------------------------------------------------------dh|̱0D ̲xдdxȵܵd=,dhtcff -------------------------------------------------------------------------d,4@T̷Юdܸtcff -------------------------------------------------------------------------dĭȸ@d|tcff -------------------------------------------------------------------------dThdtcff -------------------------------------------------------------------------dt0ĥĺ8xh defN define & execute local function)"hȻРܻ؟Td$tcff -------------------------------------------------------------------------tddؽtcff -------------------------------------------------------------------------dĽdtcff -------------------------------------------------------------------------d wreswres,tcnl,"0 0'ff.ed1'wi'Create' 'GEditList'('wherelc'5 60 300 260)('caption' 'Item')('report'('Item'OVER nl 3))('attach'1 2 3 4)"6 "}Vw rs0tL$ wres323 dr 842wcall'GetObject'H 24(24tcnul)d2Lt } wQTY wi phL NN, 'Vdeffread7,X/U' fix $functions from objects fileeh$d 0 0'ff'wi'*Create' 'TForm'('*caption' 'TFOne Example')('*size'300 400)'DemoShow'dP wres1 Must block Window's default KeyUp actionPp0 0'ff.tBar1'wi'*Create' 'TToolBar'('buttons'1 2 3 0 18 0 9 10 0 11 12 0 5 6 7 0 28 0 1003)"phXD wreswres,tcnl," '>>object' means width up to right edge of object"ohisl wreswres,tcnl," '>>NNN' means an NNN pixels width and no border at right of form if reached (Note: form is resized)"BInpwself(FM,'.ed1') wi'*Create' 'GWEquipData' ('wherelc'  70  '&80 80') ('caption' (V1[NO],' data')) ('handlers' 'data_Handlers')< used from any other APL+Win 3.6 Objectnd<<t'pp'wi'AddOption' '&Second Option' 'P'1NL<TT wreswres,tcnl,"Syntax: 'object'wi'XLicense'classId")T08n wi ('wherelc' '>' '=',S)800$ wi '*color' (toattrs[2])00T Swi'..TextSize' 'CLASS'00d= wi'*selection' ((,T),0)04 =>r ==== !")%))))8,-==81234==88:===bm 2) =:4ldLh A status bar object with additional predefined fields like the Date/time fieldd8 :andif (texta,textb)=1wi'*text'8 a I1 mIO1 0 O1(O"'")OI0D`'ff.ss'wi'coltext'(2 3 4 5)(( 'Column '),1+4) DD and forces its container form to expand as well)D<XQ 07/20/01 wi'*SEL' SELs< BF+/BF minimum width for each line containing centered controls)<('odbc'wi'Exec' 'select * from shippers' C<l wreswres,tcnl," 1. A global variable named 'hwndOwner' containing the window" 8l0 0wi'.ed2.Create' 'TEdit' ('wherelc' '>' '='  100) ('caption' 'First Name')('attach'1 2 3 2)('aplname' 'FNAME')0dK 'Print Error: PARSE FAILURE'0,p :endAF, C, C:)X#4Bw( 0 1. galvinized0x<FF GHistoryV2 NO;C;N;R;V1;V2;FM;S;W;Inp;Hlp;Ids;Sc;Kws;Desc;DESC;ID;MAT;SHOP;FIELD;OTHER;QTY;wself;Vex,h Esc key handler ,, :if ^/' '=wi'*text' ,, wi'*selection' 0 0,,8 VV, (KIDV) ID[K] ,,d :if 0=wi ':*cot' ,, Iwi':*cot'',, ccc or ccc or nnn,, GWQty'Shade'D ,, (SV IDV)2 3 Pu',,@ :elseif RGRoom ID ,,l wi'*text' T' ,, :if 1 GRoom TT,' ',, wi'*text' Tr',, :andif 1wi'*mode',, wi'*text' T',,H :andif 0=+/SV ,,t SEL01 0+SEL,, wi'*SEL' SEL,, ccc or ccc 12 ,, ID(-1+(T)' ')T,,$ ccc or cc.,,P GTurnOffIds ',,| R1 return to edit box,, GMoveIdLight ,, ccc xxxx cc ccc ,, :if 1( ID)IDV,,, :andif 0=1wi'*mode',,X to the left one space,, :if ' '=1T ,, GMarkIds ID,, :if 0=1wi'*mode',, NotValidItem ,,4R0 default to continue ,,` :elseif 0=warg[3],, Move keyword hi-light,, :elseif 0=wi':*cot',, wi':*cot' 1,, wi '*text' T ,,< wi '*Focus'' ,, F FSTIE R((1+A)A,0)0,,< :elseif 1vi texta ,,fm(^\wself'.')/wself' ,, SPECSFREAD HIDS,6 ' ,, Create optionsg,HK error'Set to avoid impossible resizes' H$V T1Tr$(G :if 0AXn(  C'' $@ Z[1;2]0A$(< :if'Form'H(( :case'ShowTaskBar'(( :case'?ShowTaskBar'(,0 opts(opts),[1.2]opts ,,X :select opts,, newmodeoldmode,, AX~CAX' ,,T YC wi 'class'' ,, Cwi'*children'' ,, Jwi'*:height'' ,,D (free hMem)1warg,, opts[;1]allowopts[;1] ,$> :select BC$P nMaxFile - Size, in bytes, of the lpstrFile buffer."P$P EICr$ H'WRES=' WRES $ :endnd$$ :end$ H D1A disk $l|'WEVENT=' WEVENTr$ t GEscHnd <NOClassIdnode K :end 8L3wi'size' A size form)80 LE wi'*color'0, wreswi'?Classes', o'warg=' warg (0K :case'?StyleSheet'( t :endize $$ :endrg$@ :andif ~1(T'ORD'WI':*onAction')ss'GWOrder'@ K UCSTOP rn,ĪT1T1,(~/V4 ss '.f')/V4, 00H X(((XX)=X)/X)~' '0(d wi'*Show'(,D (C D)warg[2 3] ,( wi'Center'(X| wres'Returns nested vector of object User Defined properties'XP wreswres,tcnl,"Syntax: 'object'wi'title'title"4)P(8 wi'Redim'(, :case'NonUsedClasses' ,8\ LG TELPRINTwi'Methods''88X Z "infoHook h;class;id;text"8Px8 wreswres,tcnl,"filters: the list of file filters"P<(('oo'wi'installdir'),'prod.txt')ntie 1<(h :case'ShowResize'1(8p Zwcall'W_DestroyFilter'P8(\ :case'?ShowResize'(( wi'*Show' (8 6. Equipment toc08( wi'Center'(YKwE( wi'Redim'1(( :case'ShellExecute'((X :case'SetAplNames'(( :case'?SetAplNames'(( :case'SessionFocus'((  :for I :in P Ke((b :for I :in W '((\ Zwcall'SetFocus'Hg(, :case'?NonUsedClasses' ,(: :if 2>9',, :for k :in 1ids ,,H idDEB,ids[k;],,} Twi'*text'',, wreshwndOwner,,  :case'WebBrowserClass',,8 :case'?WebBrowserClass',,d :case'W_CreateFilter' ,, :case'?W_CreateFilter' ,, :elseif 82=dr type,, :elseif 0'type' ,, (type args)1warg,,@ interface2warg ,,l :select wi'class' ,, QQ, T[N],O,, :case'UsedClassesByObj',, C((CC)=C)/C ,(q :case'?VT_Variant'(, 'Print Error: NO DEVICES' ,,p wreswssize-wa ,X wreswres,tcnl,"Syntax: 'object'wi'VT_Dispatch'interface"X, :case'UseClientArea'' ,,  :case'?UseClientArea' ,,L  DC wi'children' ,,x  :case'UpdateControls' ,,  :case'?UpdateControls' ,,  :if F1EC '' ,,  H'#'wi'hwndmain' ,,(  :case'?ShellExecute'' ,,T  wi'SessionFocus' ,,  wi'*limitwhere' ,,  :case'?SessionFocus'' ,@[ 09/08/01 NO1000(wi':*cot'),wi':*toc'@D9 (K L M N)(JIE)wi'*where'KDD sizes192 temp sizes for testingCD|t wreswres,tcnl,"bottom: 2 if attached to parent top edge, 4 if attached to parent bottom edge"|0E 1. galvinized0T5 Switch to selected library or directory on drive, or report itT4|) wi'*...suppress'04T (c)2000 Eric Lescasse[19dec00] 6/08/01 Removed Common[1047]T4x :caselist'Form' 'MDIForm'.4LG (0^.=ID MATIOTA T[AVB,[0.5](B)2B])6 then for..L0 'Print Error: SETUP FAILURE'0@ Copyright (c) 1996 Eric Lescasse [18dec96]@,  :case'?RemoveQuotes' ,, :case'RemoveComments' ,, :case'?RemoveComments' ,, :case'RegisterServer' ,, :case'?RegisterServer' ,,D wi'*suppress'0,,p AY~CAY ,( :case'?SmgrHandles'( P[1]0 0( BCHDIR '' new dir(( L10[2]L lib defns(<̢ 3. Oval (toc3)'< wgive 0 (l  :case'EnumWindows'((0 :case'?EnumWindows'( :endT( path2wargs'((L :if F3nc C (V2V2~T1(] Cwi C,'hwnd'( 4 TToolsMenu 'ff'wi'Show' @l:else Edit Mode Back Enter Space TabE@( :case'RemoveQuotes'(( :if F3nc C (l'RAsi[1;]Y(| 'fmInfo'wi'delay' 3(dV3V3~T1S (\ 'sw'wi'Start'($; :endmer$(@e :case'SmgrHandles'(P lpstrFile - Points to the initial filename buffer.9"PP P' wreswres,tcnl,"Syntax: 'object'wi'owner'owner"eP< 2. Square (toc2)<( :if 0O'0(Y:endrn<wself(FDUCT,'.l7') wi'*Create' 'TLabel'<X E( L)ss']:select' ']:for' ']:repeat' ']:while' ']:if'dXX" :for I :in E LES9feb01 addedX8 5. Miscellaneous toc08HKC.5B-A2'#'wi'units' top left corner positionlyH(5 :for N :in D((/ O(OG)/OH(, :case'>>L' ,Q  DRCF A;CMDCD d? :if wresHwcall'W_Const' 'INVALID_HANDLE_VALUE' Did we find something?Hd(x :case'?ShowEvent'($F :elseer$(x= (D E F)0H( :elset(L (Z/T[;3])J($ :end'$$ACenterSize A;B;C'$d$ HH, "RX" execute field validation expressiond(J :case'?VT_Dispatch'(( :if 0AY(,j GInfo 'MouseUp'g,@r \Q (H :case'VT_Dispatch'((\O :case'StyleSheet'J(@RC0dBV,V F(pD :if 2=warg'(Y:end((L (V T)21warg((6 OH/HFG((X :if 0=texta,textb(M HJ l0 :return Hi-light moved. Return to edit boxml0 wi'..*edobject' wselfrg04] wi'..*edobject' wselfg4\R/V2'' SZ/SRK''  :end8` wi'*attach'(1warg)8H$ (CV[i]) wi'*color' (toattrs[1+SV[OS+i]])H|0 0'ff'wi'*Create' 'TForm'('*caption' 'c:\temp\test.htm')('ontop'1)('*size'450 600)'Show' 'SessionFocus'|parpar, 'The second paper will be a detailed technical walk-through of the code that forms this basis layer. All the major functions will be listed and discussed, and the commonality of approach across Dyalog and APL+Win will be highlighted.'d:ca`] :elseif ~/12 24 30 36fi V[1] Must add a check here for valid sizes.`Ps p< Display factors (fac) in the top box.y<<Lp O wi'*list' (FF wi':*jobfilelib')<4wil@N L33:nX: are simple APL variables or functions which return a set of methodsX8 wi'*value'(F1exec C):8x\+ F( L)ss']:endselect' ']:endfor' ']:endrepeat' ']:endwhile' ']:endif' ']:end' ']:until''xLT Insert '0' as a placeholer for those items thatL,Z Twi'*text'ts,$Z GInfo'MouseUp'r$ Z GEscHnd $Z GWSize'Shade'er$  [:case'MouseUp' $@[ :if 27=1warg$ d[ :endP $[ :return$ [ :return $[ :if 9=1wargr$ [ :return $ \ :return$ 4 :elsen $P\ :ends'$ a :endrn $a :return$_UGt\%D GMoveKwLight was fire in KeyDownDD\ GWSize'Shade' return to edit objectD$c :endP$<h[ or 'Method' argument1 ... argumentN<D' State: Caret is within a string of text1D` I1 Air distributions items will be stored in a spreed sheet'`8 Filter[(Filter'|')/Filter]TCNUL80DR IDwi'..ed3.*text' 08`< GErrorMsg 'NOT A VALID SIZE''8\ :return Do not use GWSize 'Shade'; re-shading not required'\8^ 07/24/01 :return  :end88$_ Tab to next edit object.8bUG_L` :return(h` wi'*Focus'(` :if 1=I(` wi'*Focus'(g :endp1(g :if ~0R](Ti OEdObjects list of edit objectsT@e :if 1warg[6] 1 flag a repeat.1@ a GEscHnd $b :elseg$ 4b:case'MouseUp' $ :return$ r :end' L_ rR'LL 09/08/01 Iwi':*toc' Type of duct takeoffLL(RGValidateItems;U;T;V;A;C;B;D;ID;IDV;P;CV;OS;RN;I;E;V1;SVsLLf:case'New' constructor1LLd Displays current name of the job, section or subsection.L$tZ :if 27=1warg$L`:case'New' constructor"LL  The class handler must have the same name as the classrLLH class and material match. Check the other parametersLLw 512:OFN_ALLOWMULTISELECT - Allow multiple selections.L,tf :if ^/' '=wi'*text'er,,$e Esc key handler',,Pe wi'*Focus',@j select first near matching item@` 08/11/01 IDIDV[I] closes matching items`, wi'*selection' 0 0,,Hf wi'*selection' 0 0,  :end.00 \^ :andif 1'COST' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/06/01\LHj PP,' Enter a value in each field or Click on the'L f :else Hk Select item from the current visable itemsHh :if 2=I(0h :return(Xh :elsen(th wi'*text' ''n(h :end(h GWSize'Shade'((a:endselect(Da GWSize'Shade'(`e User pressed the backspace key when the edit box 08/13/01`(j :return(Xx GFileData 1R Reduce to a nested vectorystX,|e RSizeTabHnd ,@ l wi':*ERR' 0 Let GErrorMsg fireL@Lt":case'New' constructor3L(j Ignore all other keys((N wi'*text' ''e(,i :if 0'),' ',R[2]8DK GPutJobfile - Display jobfile in the Name fieldD< WI'..lDesc.*caption' (D[1]) 3/23/00<<` 07/22/01 is not within the text string)<<Ȅ O wi'*list' ('ONE' 'TWO' 'THREE')17<D  TEdObjects 07/25/01D4 :case 3 Miscellaneous4oUqq0APp 1:OFN_READONLY - Read Only check box is initially checked.P,T1T1,(~/V2 ss '.f')/V2,Dp P'INVALID SIZE ENTER FOR THE SECOND SIZE'D4t :andif ^/1TIDV4Dq Check items of square/rect registers and grillsDD  textb nnn ccc {revised}.DD Validates wi'*text' for valid items and countDT\ Insert a zero '0' and move to the next edit object)T$m :end,j GWSize'Shade'.,m:if 0=facPH T5((LFMT TFMT)[1+1i ss'Typical']) fmt (fac)[V i]P@ LA: 1=section facs 2=subsection facs 3=both@< :return return with no signal< 8w :endrn `ԧ wi'*selection' (01 0+SEL) move caret left one space`  :return ,\B :if 0=T wi'...*opened', File(  :select 1warg( X} DebugTrace ,4 :if 0wi'*text's, v UCSTOP x file:$T wi'*Focus'$,u wi'*Focus', vmat_Handlers $ :endts$ | DebugTrace |:select wevent l :end1 < :returnrn tW :endh3 STAV RIP($ :case'ShowEvent'(,L HC wi '*must', ujoffile  BEEPC' , Dwself,'_lab',0R :if 2=nc'hwndOwner'0pO0 0'ff.nav1'wi'*Create' 'TNavigator'('wherelc'5 5  )('visiblebuttons'1 1 1 1 0 0 1 1 0 1))p<@ :if 1FD[1] wi'class'um<   :endselect ,{ wi'*suppress'0,`P4 user changed the directory while searching for files.`<4~ back, enter, space, 0-10, A-Z, decimal<  :endte P[1]0 0 :case'KeyDown' T :elseif 2=R Tp0 0wi'Place' '' 'Now with Relative Widths (table is 100%) ...'T{ :endrn P[2] V n  input data. H :return 8 :endrn \ :elseit0؜ wi'*where'F G H E0$P9 :if 0C $  :endt' ( :end :select wevent D G[;1](G)(( 'N'),D),(G) '''D ܅ :end DĬ wi'*onKeyDown' 'TEditList"lv.onKeyDown"''D0ܞ classes'#'wi'newclasses'00 wres1C,tcnl00T7 wi'clipsiblings'P0,  T wi'report'H,,< wres'Description',, state: ccc ccc,D :end14h wi'*onMouseUp' 'NumButtonHnd'4 ( :if vi B 4 SOUND hE :end D`( wi'*onKeyDown' 'GEditList"KeyDown"'01DE =4 C'TControlClass"Action"'4`@ wreswres,tcnl,"?=question, !=exclamation, i=info, else=stop sign"`4< Ewi'CountryIndex'4X wreswi'*' default processingX`Ԋ wreswres,tcnl,"'RC'=Retry/Cancel, 'YN'=Yes/No, 'YNC'=Yes/No/Cancel"`L< :case 903 ontop"L\ (L/,D)L/,D format numeric columns\  :endle ` Zwcall'SendMessage'(wi'*hwnd')'WM_SYSCOMMAND'61458 0 61458=SC_MOVE"`L8! 1. select the whole property or method section belowLL 5. write the necessary specific code under the Add lines below ... commentdT wreswres,tcnl,"Syntax: 'object'wi'property'{value}"Tdx rcwcall'W_Ini' '[Call]InternetGetConnectedState=B(>D, D) LIB WININET'dT wreswres,tcnl,"Syntax: width'object'wi'labelwidth'"TTl wreswres,tcnl,"Example: 'ff.ed1'wi'allowed' '0123'"T0 A TFrame B -- TFrame class 048 warg( 'wherelc'),C4P wreswres,tcnl,"Syntax: 'object'wi'type'{type}"e.P0c T wi'report'(JH)0P wreswres,tcnl,"param1: parameter 1 description")P0X :for I :inT'a00 wi'*buttons' 'OK'04 wreswi'*property'4TT --------------------------------------------- sample methodT<x wreswi'*tellofselection'C<L wreswres,tcnl,"caption: a character string"3L@H D(2Z)+D-AO/AT@TL wreswres,tcnl,"Syntax: 'object'wi'helpfile'filename"yT@ wi'*onExitError' 'Common"onExitError"'@X(T wreswres,tcnl,"Syntax: 'object'wi'clipsiblings'{boolean}"X0 wi'*style'(2D)y'088T wi'*onMove' 'Common"onMove"'088  C((C ss' tcff ===')1)CtN8H wreswres,tcnl,"value: value description"r?H4L wres1tcnl,(Ctcnl) C4$` 8 Ewi'*:currentcontrol'80 wreswi'*labwidth'00  C(+/^\C=tcnl)C0 6:40qTț :if E if failed...TP$ wreswres,tcnl,"Example: 'object'wi'property'..."dPT wreswres,tcnl,"Syntax: 'object'wi'cols2scan'{value}"T\ wres'Get or Set the list of acceptable characters in the field'"\0 Common'clipsiblings')00( (A,'.tTimer')wi'*Delete' @0, wi'clipsiblings'1,PG:case'New' constructormP4D to you object. Do as follows:4, c2swi'*cols2scan'Z,4L wreswi'*property'4D :end allows tcbs,tcnl,'0123456789'-Dl) wres'Read-only property returning the directory from which APL+Win was launched'l$T :case'float'y'$4 (3C)wi'*:height'')4<\ error'Unknown TOKButton command: ',BED<8ԍ wi'ChangeStyle'1 128N88 wi'*aplname'(2warg)8< AXZ+4AW wi '*where'ins<:end7(L wreswi'*'6O(8  wi'*onSend' 'Common"onSend"'88 wi'*onExit' 'Common"onExit"'N8` wreswres,tcnl,"fgcolor: an APL+Win valid foreground object color"`l : wres'Must enter data: indicate that the corresponding field cannot stay empty'rslT~<] :if 0(KE,'_lab')wi'*self'O<P wreswres,tcnl,"Example: 'object'wi'cols2scan'..."P@8 D(Cwself,'_lv')wi'*list'F@ :endio10$ wreswi'*caption'0X CC,tcnl,wi'*onAction' inherit from ClassX@0 A TMsgBox B -- TMsgBox class0( C2warg(, K/GH[;1]C,D T'TROUBLE: SHOULD NEVER GET HERE.',TCNLeDD̪ I(F)//RN indices marked itemsD( :if 1=warg'(, :select wi'*type'C, FF GFrames 76 FF GFrames 3 6$66i6 FF GFrames 5 dI ID(-1+(texta)' ')texta last item or number 07/14/01dr   :end' < D(C wi 'class'),C wi '*class'<0% wreswi'*caps'0D4 --- Write and paint the new label captions1D ,FF GFrames 4 0a R0Hȸ (1=valid item in edit box) (1=inside the text)GModeHj :endV2,` or 'property' valueid,:end8@:if 0<(ED wi'*text')~' ' 2/25/00T84))@'nn'wi'AddConnection' '\\TPDIN3\SIMPA00' 'G:'@;0 0'ff.l2'wi'*Create' 'TLabel'('wherelc' '>' '='  '=')('*caption' 'Label n2 (centered)')('just' 'center')0 0'fmInfo'wi'*Create' 'TInfo'('caption' 'This is a small nice looking information window...')('color'(255)(255 255 255))('WaitOn' 'ff')('CenterOn' 'ff')('delay'5)'*Show'0 P :if 33=1wargt0T Mouse click on the keyword End will fall thru to here. 08/19/01T<(OS SV IDV DESC SC RN)wi'..*idparams'g<4 wi'..lDesc.*caption' ''014L GInfoMsg'FIELD MUST HAVE A VALID NUMBER''L8O GKwOff Turn off the keyword itemsl8L :return 07/30/011LPp6 :if LOST(/RN)(SV2)/RN No. find new offsetPH$ There must be a number in the 1st edit objectH :end;](GKwExit wi'*caption'(4 V[]0 8Է :goto paintls8D (CV[i]) wi '*caption' (IDV[OS+i])0DD GMarkKws '' turnoff keyword hi-lightsDPD BEEP changed BEEP for SOUND 07/05/01 cPH Note: Ctrl+Back Arrow will move the cursor bar intoH8, Display matching item description8L if 9=1warg instead of the onKeyDown handler.1L8 wi':f1.cbSection.*value' (V[1])n88X KNT+\KNT accumulated totals])8H R[1]=1 Text box has only valid items and/or countH$ SOUND LE :andif 511fsize TN Added check for jobfileL0  Sum duplicate items counts.0<D(GOpenJobfile;elx;elx;P;R;T;A;S;B;C;V;FF<L:if I11 '.' is number elevent 07/30/01L,0 (A B C)fread HJOB,9X,( :if 1=warg( rVt  !!o$$%t'tt,..ot1tt6<<<<<<?@ABCDEFGHIJKLMNOPQRTYYY[[t^``attthjjlmtottttwww|}~ *  f6YQrhm}<p the first string for invalid chars<\Hy :if (EdObjects)I Continue if the last edit object\Ծ0 wreswi'*where'00, F'''#'wi'*units'00Dl wreswi'*where'00 GTurnOffIds00 Move hi-light to clicked item08 \---\Wwce)t e lxRE'TS(,ID~' ')=IDV~' ' flag ids that match the ID's sizeT<\ :elseif 1+/2wi'..*params'<L :if ( ID)(ID)3wi'..*kwparams'L@x set defaults: keyword hi-lights and params1@X SV[(SV/SV)]2 mark as intense (red) 1st in a seriesX` (SV KWS DESC)2 3 4 wi'..*kwparams' marked, names, descriptions`<( P'<',S1,'> IS NOT A VALID SIZE'b)<PTO(M'') M,M nested array of (item n n .) (item )Pd T(-U)texta drop chars from text box 07/21/01d  :endT  :endwhiles $Xs:if 2=+/'.'=wselfr$8T 0 freplace HJOB,11 09/04/018  LOSOS K:andif 1<+/V1 P|M((A' ')REPLASPLIT A),[1.5]C matrix: (items) (count)01P 0 SVSV $8w Owselfem$x9 :if R(4 :if 3=+/'.'=wself($R GNLN;T(<:elseif 1SV[OS+/RN](E SOUND L  Note: GMoveIdLight will be called in the onKeyUp handlerL` SV[OS+(VSV)[OS+/RN]1]2 bright hi-light 1st id on current page01`T SV[(VSV^S)1]2 mark full id in a string of idsseT,hs into the keyword area,<a :if ^/((1warg)>64)^(1warg)<123e<4 wi'..lDesc.*caption' (P[4])4D Fired when the SETUP object receives the FocusDL tab(9) space(32) left(37) up(38) right(39) down(40)'L8` FV(CV wi '*color')toattrs[2 6]8  10 (< wi'...*kwparams' Pe(:endselect@(:if 'MouseUp'wevent'(,  (c)1999 Eric Lescassets,l:end0  Qwi'FindWidths'D0p:endV''1,&:end( :if 1=wargue(kBEEP( 1 2 3 4 5 6 7 8 9( (D :end  :else ( :andif vi ID(,@ A TEdit B -- TEdit class,$H BEEPle"$( :if 1R'( L R0 Bc $  *toattrs$ (:select IDNOor $L3:andif (V)+/0=V $$l :end$|u :endrn P[2] V s$%$? VP[2]fMI  :return L' ,0GEnableNext 07/26/01, h:for i :in C o :end D$ :return $ :case'attach''$$ :case'?caption'$$ :case'caption'$$ :end'$$ :endc'$$D :case'?classes'$$ :case'classes'x$$ :else$$  :case'check'$$H wi'*Focus'$l HXG Assume that the user does not want to enter a valuetX ț:elseDMt02 lpfnHook - Not used.K0DD Block the right button default drop menu action.D0 :if 'SIZE1'wi'aplname'0T :endι :else@ e'pp'wi'Quit' :for i :in NV $BUG;WSELF;I;V;T P$0G hInstance - Not used.0, :if 1=fi wi'*text' ,Dи T WI'.lDesc.*caption' C JWG-10/30/01dsD0M:return End of basic handlers0D` GInfoMsg'FIELD MUST HAVE A NUMBER'DDD :andif 0=text 07/24/01wi'*text'DD ***ATTENTION: this function requires )EVLEVEL 2DD sizes192 temp sizes for testingD(T :return(,\ MM,tcnul],D If here. We were in the OTHER edit box'sD0L End of valid key checkrs0$,'ee'wi'FontBold'1$ p:for i :in HV ( :case'?Children'@( 8  0 0dl .1?5 ,'ff'wi'Show' , :goto err,  A A  B B 4, :ELSE Single-file case40h# GInfoMsg P00 a valid number.g00T :if 0RSizeEnterKeyHnd00 :if 13=1warg0L|4 wres1 suppress default caret move 07/15/01L :end, :case'TComboList' ,, :endDid_Handlers;texta;textb;t;C;ID;P;R;SEL;SV;T;V;IDV.DH= (wi'..*edobject') wself 08/13/01H,K GKwDefaults,,0L GWMarkIDs',D0 Mack all modifications to work as a size_HandlerD,L and also in KeyUp.,,( GInfoMsg,L4  Q,AL` User pressed Enter in the last misc edit objects 08/07/01`,(M :select wi':*cot'T),, :enda,0 :elseif /9 27=1warg00 wi'..*edobject' T00P GWSize'Shade'0(  :if 2=J (,h0 :select F',$8 :return$(@ GTurnOffIds((( wi'*Focus'((t :if 0=Vgs(( 0 0InsertState(( wi'*Focus'(D V(DT),V  WTPW-I  :andif 1^/B=1 :case'KeyUp'  :endn |:if 2nc'A' ll R((B),2)0 le  C~0B es $ UCSTOP$$ :return$$T :elseT$$L :return$$p:select warg[7]ts$$ :goto exits$$< :goto chk$$ DebugTrace R$$BB, 'Dummy text'$$< B\B\C10,C C$ :end$! :ends$$` :elsen$$ TV WI '*color''$4t0 E~0Gwi'*wherelc'4, Required:(F) EdObjectsr,4L(si[1;]) 'KeyPress - warg=' warg4,g:if 1V1^V24X :andif wselfEdObjects 4 :return O(# :andif 0=V[I]s( q :endL q CKV/DESC $ :if LOSOS$$D a hi=lighted item$$ VD 'Label's$$ VVD 'Label'$$xt:if 2=+/'.'=wself$ s :return  CKV/DESC $  funtie TN$ GKwsMouseHndX;T X[ :ende V2P 1e,X R1 Return to edit box,p :end x :ends' $ RDUCTSELECT ''$$ wi':*cot' 4 $$| elxelxCV$0;RIwi':*FMV' 07/19/010$x L2: elxelx]$ wi':*Close'  SELFwself $ :case'?check'a$$ CC[avC;]$l, DG,1,D add row order, imageindex & line numbersl<:elsel( :if 0=( ID)(ID)3wi'..*idparams' is it a full or partial items? 07/21/01l$\ :elser$ X :return $XB :endct$FCAB-EV[]0 D:if 0V <:elseif 0=+/Vn $  :goto error$ t Check Quanity x:else08 I2,z :end,; TN0 ===============0,D% :endV,00 :returng0  :goto error  SELwi'*SEL'  :goto err $< :if 32=1warg$`KNOCK,P :goto file, 4 :else 4& :return 07/05/01V4  :if vi S1 4 :if ~( ID)(ID)IDV4,@ :select wi':*cot'ms, JWG(L1: RGValidateItemst(,| T(T' ') Twi'*text',Dd sizes296 temp sizes for textingD RV i = TEXTTEXT~' ' $ CLASS'OVAL'' $(T& :returnrn( ,:case'KeyPress' P1:case 'Show'ee : :ends , (c)1999 Eric Lescassed',  :return ,K wi'*text' T0,$  :else $ :if 2nc'A' l h7IdsHnd;nexttext;sids;texta;textb;text;CV;C;DESC;IDN;IDV;ID;I;K;MAP;NO;N;OS;P;SEL;SV;T;VhLL :if N1sizes1 temp during developementLX@ UHW[2]+.5HW[4]-S[2] center dataclass descriptionX0l wreswi'..?attach'0$ RGValidateItems$d s (- :if 1=wargs(P$ wreswres,tcnl,"Clears edit object if not empty"1P( :goto L33( x<:if 9=1warg LT Sizes will be intialized from match data tablesLP& wreswres,tcnl,"Syntax: 'object'wi'caps' 0 or 1"P$T) :case'wherelc'$$) :case'?last'or$X sizes2 16 24 36 38 40 48 50 58 60 temp sizes for testingXP wi'*onAction' (a,tcnl,wi':*onAction') 07/03/011P:else(8 :orif 0=ID(X P' Each field in Miscellaneous must have a value',tcnl,tcnlX( S1(T)wi'*text'n( T[3]1L:end=, :end 7(\i :if ~0R(X0 wselfED required for GEnableNext 07/26/01X(/ :orif vi text,T( wres1 0+ wi'.*edobject' wself0( wi'*Focus'(X TEdObjects (name, section, subsection and factors objectsX :endAD0 wi'*selection' SEL0( wi'*Focus'rn(\ wres'Get or Set the button above current button to get the Focus'\(t :orif vi text,T(0 newtextDEB newtext0I :endrn$ ( :if 0=wi'*text' (X, :if 1warg8 46,47+10 back, period, numbers 0-9abX(===== end of move 0814(0 wreswi'*next'0l T5 :endP:else( Ignore all other keys(X*RA GWYesNo B;C;D;E;F;G;H;I;J;K;L;M;N;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfX( :return(0, wi'..*edobject' U0($ :if ~0R14(0 wreswi'*next'0X' wi'*onMouseUp' 'id_Handlers' block cursor/drop menu but allowX0 :if (TEXT)>wi'*limit'0(P :return((9 wi'*Focus'(d TFMV[I+5] active AIRDIST, MISC or EQUP class frame0d(L:if ~/9 271warg s((( :case 2((/ :case 3(T| U(V1~viT)/T select non=number char strings1T( :if 1=wargt'((p CommonwargM(T State: n or or ccc n add the dot1T(Q :case 5((, wreswi'*'(T E(~^\E=' ')/Ewi'*text' drop trailing spacesT(, wi'*onAction'C(( or 'property'value(h| KGIH 1 if control contains missing valuenh(D :return((p :if 32=1warg(T6 wreswres,tcnl,"Example: 'object'wi'buttons' 'ARI'""T( :end'(( TEdObjects((. ===(( GInfoMsg T(drtcff -------------------------------------------------------------------------d(t :return((- :return(( :if F1EC '' C((,hsize_Handlers;V;T;ID@((d :case'PaintDesktop'(p  wi'*selection' (I,0) Position caret on the item in the edit box 07/27/01pHh  BDEB B,' ',C,' NOT ',D,'VALID ITEM',(A>1)'S'HT I/1+(/V SS ID)/V index to ID's countTH B' < ',(3,(U),((+/V),3)' - '),' > ',tcnlHT<5:if /'SIZE1' 'SIZE2' wi'aplname' routine added 07/26/01!TD sizes1192 temp sizes for testingb)D \ rcwcall'W_Ini' '[Call]InternetCloseHandle=B(H) LIB WININET''\xq:elsed:end  :enddx wreswres,tcnl,"Example: 'ff'wi'aplhelpfile' 'c:\appli\eurohelp.sf'"ddD GInfoMsg B 07/08/01 GErrorMsg BDD IDU select 1st error stringlDio1,|VEdObjects wi '*text' ,X|Y wselfED required for GEnableNext 07/26/01sX,l :return,$ؠ :end6$T :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'T, T(-ID)T@,x D :else@dS sizes26 12 14 16 18 20 24 30 36 40 44 48 temp sizes for texting0d<1 4. RD Dual wall (toc4)er<lLi M'$' must match the separator in obj file"l@ wi'..*edobject' (T[1+T wself])@8 wi'..*edobject'(EdObjects)8@ GInfoMsg' Place error messaage Here'@:else( :case'aplhelpfile'(DhJ Required TObject case statements for user definedDhXN 07/26/01 SELwi'..ed1.*selection'  texta1(SEL)T textb(SEL)Th8ؚ :if 0Ewi'*:font's8\ wi'*selection' ((wi'*text'),0) position cursor\\# :andif ~vi 1T text may not end in a number for partial checkg\(8 :case'> 'n(L R0q=D SV[OS]0 07/27/01D4ė initial number of items/row4$ Validate data:$$ :end r$`DD-Fx, K1 simulates a click on a TOKButton when there is nonex$ A(-(A)'.')A]s$((DMM,(M)' ' pad with trailing blanksD4 Hwi'.H.*Create' 'Label's4, :goto file,L* wres1 suppress default curso bar moveeLdT 5. write the necessary specific code under the Add lines below ... commentd(, :case'#< '( Pav[io+124] D( :if 1~V flag invalid char stringsDD  BB,TCNL,' <',(U),'> IS NOT A VAIID ITEM'D $!:if 0=V[2] D0NV(~/(NV) SS '.bn')/NV Delete the buttonsD4 IAVIDSM[;1] sort items)4  :if 1Vs1 0 GWSize'Shade'g0D :return return to edit box 07/09/01DDd :if 0=+/2wi'..*idparams' 07/10/01D\M' ',M 2D :return return to edit box01D \PGCombHnd;wself D9 CKNT[I]-10,KNT[I] total count of each itemD( OFF,'.f1.cbSubSec'(("PF wi'*kwparams' ')(, R0 B 07/05/01),,4" wi'*selection' 0l,$th :if ''M[1;1]$( P[2] 1,1(P[3])0'((0? JWG 5/28/98 8/23/98(4  wself 'oo'wi'*application'44` :if 0Ewi'*formclasses'4:endld` A Inherit B -- Set onAction event handler for object A inheriting object B`4 assign history objects handlern40m === Check for valid keys00(7 wreswi'*caps'0@& R0 'ERROR 2' Changed to BEEP 07/05/01s@0D R1sS0@ :if~0Cwi'*check' JWG 3/4/00s'@@ wself(T[I]) wi'*Focus'@D4,\ :if tcnlJ ,0 wreswi'*last'0@ GInfoMsg B 07/08/01 GErrorMsg B@(8 wi'*SEL' (I,0)V(1Pl~ wres'Get or Set the last object the have the focus'dP40 check for a valid items4@؄ 3/27/00 :andif ^/1TIDV01@P Illegal keypress since there is no data to checkEPX* T wi '*color' (toattrs[1]) turnoff all keyword hi-lightersX(l0 :endxt(T A,'_defwi"def"' save _def variableRT27,4; :if vi 1textand,\`Z wselfA wi'Create' 'TEdit' create an TClass object\HXz Handle alphNum keys on keyboard and numbers paddHXx ID(-1+(E)' ')Etexta,textb 07/10/011XP% OFNOFN, ,Filter lpstrFilter - Points to one or more pairs of null-terminated strings specifying file filters.rs :endX' wi'*onMouseDrag' "wres1" 07/11/01 block selection of textXL Size edit box must have a number before exitingLX wreswres,tcnl,"last: 'last object {ff.ed1 or ff.ed2 ...}"X$,0T$ :if GMoveIdLite TEXTlf00 wreswi'..?wherelc'.00l wi'*selection' (I,0) 0,0 or 'property' value',,/5(H :end'(,} (4, :if ~warg[6]'(( wres'TScroll'(( :if 1=Cwarg(|&( :end14(@8 A(1=+/V)'A' select invalid char strings@(8u :if 1=wargD(@| 07/27/01 wi'*onKeyPress' "equip_Handlers"@\4 ZN 08/01/01 pass keyword index number\`Ț wi'..wherelc'A(1warg) call parent wherelc property`3T ID(-1+(E)' ')Etexta,textb Last item01T(2 === Check keywordsrn(L comment added 12/5/99 TT,tcnl,"TForm'Action'"3L<  wi'*selection' (wi'*text')<PE R[2]= (valid takeoff data) or (unused error error number)P4< P'INVALID MATERIAL COST ENTRY'4,tR N1+(textb)' ',@H1 wi'*onMouseUp' "data_Handlers" 07/17/01@3LHj Note: For some reason wi'*Focus' does not fire3L<  5. SQ Dual wall (toc5)s<%T U(V1~viT)/T select non=number char strings1T@$ R0 'ERROR 1' 07/05/01@0h+ :if (EdObjects)wself'0:,& :select 1warg0,X7l7 @{ V2(FEdObjects) wi'..*kwparams'@, :case'TComboList' ,H if last items a partial items reset error flag01H41`;,TT`, IDS: Segmented vector with items followed by a descriptionTT+HDt Data O.K for filing. Pass to the calling function.)H7Lh t(i) wi '*Close' close prior frame(s)L< 9. Specialties {future}s'<T0IIDV IDDEB(IDNCV[NO]) wi'*caption' index to item clickedTx42(6 :else0((5 :end(D8I textbNtextb adj. for new numberDDh dot not valid in a size or qty itemdD( :end'n(\`=gg'ff.grid'wi'*Create' 'TGrid'('wherelc'0 0 '>>' '>>')('attach'1 2 3 4)\0l wreswi'*last'0: BEEP hpU E[;1] '' column header (none in 'list' view)h,,2 GWSize'Shade',\9 wres'Get or Set the object(TEdit,TCombo,...) label justification'\@ IV/V index of keyword to hi-light@@82:elseif ^/V Vflags valid takeoff items@-0$ A TGEdit B -- GWCombo Object0<:if U[4] item must be a number<(D wi'*Focus'(\ wreswres,tcnl,"Note: value must be expressed in pixels except:"\;6:8:4:x6:`:4:8|Y :for i :in CV)8L6:: 7=8, [28h. 08/07/01 :if /4 5 6 7=I8,0 :if vi 1textb,lw7D<tt;'>'8  B'THERE ARE NO TAKEOFF ITEMS'88X< wi'*selection' ((T),0)'88; Used by duct classes and equip class384978; C('IS' 'ARE')[A1+1<+/V] 8x(0 F<ow'<91]<wi<('w<0 3D --- Do not release wres2 else the defaultD\0 0wi'TAlign' 'Left' 'Center' 'Centre' 'right' 'right' 'right' 'right''"\8t2 :if 0TO wi'*text''8 L :return  funtie 25  :return ?H Returns the currect class object name 07/19/01)HP Called by SizeTabHnd in KeyUp casersPT|s Translate the keyword exit for use by the Switch function.T4 :if 3=+/OS=OSV4$d AW[1]'SIZE' $DhA (C[i]) wi'*color' (toattrs[1+FV[i]])D0" IDSIDS[I;] ordered items0F$dirchdir'' '$ L :end (8 :if 32warg 3(\>GInfo RAeDD0 write code to light selected itemsDVD$  :endes$ A :else 0Ԟ P[2] F reset offset vector0C A:for i :in C T wselfA wi'*Create' 'TEdit' create an GSize1 objectT =:case'KeyUp'I `te wselfA wi'Create' 'TButton' create an TClass objectng`H Common takeoff class of material header labelH=4 wreswi'*noresize'4 :end01 Size_ MB_OKutd :end~Vx SIZE0G:endselect  \ 10 $A :end$$PE :elsee$D6 HH,',',(G),'A1,X',(G) OTHERD(% GKwDefaults((E wi'*text' ''(  :if 1FNVn (4"si" (si[3si;])(,P :case 'shop' 'field'',0 wreswi'*caption'c0=0LIMIDV n( F wi'..*idparams' Pd(P:if toattrs[1] wi'*color' 3/7/00 click routine added1P Q:case 'KeyDown' ! R100 D ysD$ :if 0=U$ :if 2=IDSn ( :for i :in IDV;L(< :endSC$P SCrnw50$(H frame: ??.fIdsse.($ :return AD4J 07/29/01 :if ( wself)wi':*misc'=DPio1 environmentrP$t RKeyWords;T;KWSe$D8I R'FIELD DOES NOT CONTAIN A VALID NUMBER'=DD wi'*text' '' empty second size boxDDK (t[1]) wi'*visible' 1 hide scroll objectD$  :else$(  :end]($  U1T$(xT(R,'.ed1')wi'*text'(DP Create and populate labels in the keyword areaDDI W(-+/2wi':*margins')+1frame wi'*size'D0 NV1frame wi'*children'0(J :return(,hS 07/27/01:if 0ID1~' ',,}:return$ :endrn$,XL:if 0=(texta,textb)~' ',(N :end2](H :end0,4 T'',$M wres2$( :return ' (D Single keyword selectedD$ Twi'*text' $4h< :if 1vi texta ccc nn4D GWSize'Shade' return to edit objectD(D :endor((N :else'(0T texta(SEL)wi'*text' 0 $. 13=warg[7] (J :orif warg[7]=190(L Immediate exit: The KeyPress event will process characterL(P wi'*selection' 0 0(D :andif (1warg)33 34 PgUp PdDn keyD\GCopyJob8( :case'Frame'( VP[2] 1$ :return$0* :end0, :if 0textby',,` Cwi'..fKws.*children',,i:endH,Q and also in KeyUp.,$̦:case 27 esc key$( :endrn((O wI'*suppress' 1s'(( wi'*text' ''s($4 :if 0=t$$S :endrn$$hP :return$( (T[I]) wi'*Focus'( 0\ :elset 4 :elseif vi text4  :else D Requires: HANDLERFOR from HANDLERS workspaceD(~ :return($x :return$,`4AUPPERCASE A;C;code;ELX,4d :if 'OTHER'wi'aplname''4$ :end $4\T :if /16 17 18 201warg4,Hc Required:(F) EdObjects',(XV :if 1=Rn(TD+ --- Keywords were turned off when the focus moved from the0T4LU wi 'selection' ((text),0)447 (1C(1,STPTR 'A') CALL code)045 W[4]L0 ( GKwsOff(U (2V)0(~ BEEPte($DW :if /0>wargs$W :endrn4M GWSize'Shade'44U else return to the edit boxt4$ DebugTrace s$(qty_Handlers0814;V;T;ID(W :returnV :return] :endrn4 GWSize'Shade'144d :if /16 17 18 201warg4W :elsenLX :end1(0L :if 0>object' means height down to bottom edge of object"l0P === Handle character keysrg0T, I1+(DM)DME allow for cyle bach to 1st itemTHDEB si[1;] ('warg=' warg) ('wevent=' wevent)H4h textatexta,Ktextb40$ wi'*selection' ((t),0)0dI wi'*color' (toattrs[2]) have to find out why this is required 07/09/01d$  " SEL=" SEL $ `'WARG=' WARG H MB_APPMODAL :end(|y :case'?wherelc'd(Hhl idparams[1] offset to the captions to be displayedfH HP idparams[3] nested array of items (label captions).HDh :elseif 5wi'*scale' "DDM GInfoMsg P,'You entered <',U,'>'dD$ :end]$$Lf C''T$$n Dwi'*edit's$ _ :elset 0@ :elseif 1+/^\' '=textas0$n Dwi'*edit'$  SOUND  Y:end:end$ p MB_SYSTEMMODAL$$p MB_DEFBUTTON1$( hwndwi'hwnd'((Dp:if 0=1wself ss 2T(P State: ccc Caret is isolated on a non-empty rowP$ MB_DEFBUTTON2$4R0 Fire GWSize'Shade' by default4hL wres27D WS_CLIPSIBLINGS  67108864  2*26h(y Ttexta,U(( :if~awi'*value'(:else o :else (w :EndSelect((Q :return(X c (CV[i]) wi'*color' (toattrs[1+SV[OS+i]])eX4 :end @$ :else$ ,GInfo'GWMat'nt DebugTrace$ :case'findex'ag$, (i) wi'text' Tp',$Xt :case'?findex'$4 re-file selection vector4$t :case'filters'$,M DC wi '*mustset'',,tV(/NV SS '.edS')/NV,:return:endd GG (Hw :goto exit( D7 OSTrn Hpw (CV[i]) wi '*visible' (~^/' '=IDV[OS+i])H`:end0(@ :if 0=newtext(H (CV[i]) wi '*color' (toattrs[1+SV[OS+i]])])H(T :if 0H(Dp --- May be moving from the items or edit area'sD0$ plus new default jobfile name0X0 GMarkID ID 07/10/011Xt 07/31/01x objects.081 Create a empty hvac jobfile0\ R1 (TE),1SV/IDV valid items and items count 07/05/01s'\0P wi'clipsiblings'10\ V1[V11]2 mark 1st keyword in a series with bright (red) hi-lightlq\$ :end $ P :end't  :else0 wres'TEST EXIT',tcnl=0{ :else { :end ( :andif ^/V=0((D{ GWSize'Shade'(tz V[I]1 { :end  :else=I $4| B  'property'$$ or 'Method'$$2 :case'?orient'$4 0 0(WI'next') wi'*Focus'4, :if LIM S1FM wi '..TextSize' '999'4  Equipment ,p (A,'_suf')wi'*Delete' ,J R10`2 Ewi'CountryIndex'02e'XH on entry to the takeoff data input field. 07/25/01X,\ :end, wres0:endor? :returnS LH_ TEdObjects (size1Qty), [size2], and data objectsL0 5=Ignore, 6=Yes, 7=No04|q (P Q)wi'*:gaps'4(, :return((L1:(1FLAGS[;2])Lend(D wi'*text' T 07/13/01D  MB_APPMODALn p :endD< AY.5(2wi'*..size')-F++/AX DL Zwcall'SetWindowLong'H'GWL_STYLE'(2D)L  MB_OKCANCEL   MB_TASKMODAL $ :if 0=N rn$$D :return$0 :if ^/V0 x :endrn ܛ Button types@ D F(2F)2wi'*:charwidth'D(([ :returnw( :endNODL AY.5(1wi'*..size')-E++/AX D$@ UCSTOP$DX wi'*:currentcontrol'(Twself)01D,T :andif (IDT)-,^ GG   wres0 n Da wi'*Focus' Dl RYesNo Q - Asks question Q and return answerxD$ԝ State: nnn$H BEEP BEEP instead of SOUND 07/05/01dH h :else `_ :end1(@ :endif(H :ende( 09/06/01 09/01/01rg(0( SOUND)0(Pwi'..*idparams' ](({ BEEPd(($ t(CFS) wi'*Show'(( :return(  :endrn L :andif 'OTHER'wi'aplname' 08/07/01LL0 GWSize'Shade' 08/09/01"L(| :if 0=textat(X wres"Define horizontal and vertical control gaps in pixels"X,H\ Twi'*lvname',, Gwi'*list' ,8 F200  p2''n Ȝ wres0 rn (H :return(( :endwhileV(HL GWSize'Shade' return to edit object1tH0 :if ^/wi'*mode'S0XH :caselist 9 37 tab, left arrow: Move lsft one keywordzeXs :end f :return :else:elsenHq A'SQUAREDesc Square ductROUNDDesc round duct'H,} to the SETUP frame area.,:endH\Z wi'*headings'D record property valueor\, Fired on a MouseUp event,$ Twi'*lvname'$LLm handle tabbing between hi-lighted keywords01L d FNVFHN DX the char in the edit box.D$P :return$4, (S(STPTR'Z A B')CALL S)0 4D :andif~0D(Q'#'wi'focus')wi'*aplhelp'D$^:case'lv.onKeyDown'$  :return 0 # C'#'wi'newclasses''0$\o :select 7warg$  r :endrn $(:case'lv.onFocus'n$`h I11+EDV wself move left one field 08/08/01`D :if 1FD[1] wi'class'LD$L BEEPP$0 ID(-1+(T)' ')T0Lp wi'..*edobject' wself 08/06/01L ` :else \ :endrn  :endn $L wi'*suppress'0$ < :endrn  :return X  wi'*numeric'(^M) mark numeric columnsX(` D wi'*suppress'1(( D wi'text'Cn($| wi'*suppress'1$  :end  FLAGS[;1 2]0 wself'gw.fMI'  ZA MATtoSS B;T lsi[2si;]  H FLAGS[;1 2]0 ,l FF1D,,< GKwDefaults,hT :if 1<,a if multi-valued, blank the edit boxh0t :return0(\' T wi'*Focus'(, Requires: (O) TMsgBox,WI '*Open'0 wi'*selection' ((T),0)*'0, wi'*text' ''',\wi'*Show'\r :elsetD  AV(AZAW)wi'*where'D(R'fmNoYes'wi'Show'?((| Turn off last hilight(DpPlusMinusHnd;BNV;BCV;TEXT;t;I;C;F;T;P;N;wself;textD,ԥ :if 1<+/'.'=C,,б ED wi'*text' T,, :if 1vi textaV,(\ Twi'*lvname'P((lp:if 'Edit'wi'*class'(( wi':*cot' 3s(dT IF[;1]NEW  IXF[I;] select first params for the same type class01dlz DG,1,D add row order, imageindex & line numberslDS :andif 0=text 07/24/01wi'*text'D,+"wi'check'=" (wi'check'),\xpcode[title] Msg message -- Template function for various message types)\D wres1 suppress default caret moveD() :if 1=warge"A(`g wi':*toindices' IX 09/01/01 indices may be added`$Rtitle Msg message$(L :elseif 0=warg[3](  wgive 0 4 wreswi'*caption'4HcT'TT.CB1' WI'Create' 'TCombo' ('wherelc' 5 5  200)1H<8 :select(,O)[(,O)O3E]s<0 OSLOS 0`$ wself1EdObjects 3/22/00 must be called by a data entry edit objecto`L, wself'gw' seems to be required during development'L :returnsiD :andif 0N Create a jobfile if trueD$ funtie TN $T? (V/C) wi'*color' (toattrs[2]) hi-light first keywordT$L :for i :in A$$ - Square duct$T̳ wi'...*lDesc.*caption' (KDESC[I]) 3/9/00T$x FHN GHistory 3$$ jobfile'XXX' 25 $$D FHN'FH',i$T Copies default parameters objects: sections subsections factorsT$  FHN GHistory 1$$ - Oval duct$$ Tfread 99,NO$T\ :caselist 32 39 tab. space, right arrow: move rightpT$, VV~jobfile[1]us$$D - Round duct$$:case 9 Equip$$ Miscellaneous$TL Right move from an empty size object is a no, no!T$ :for i :in T$T TEdObjects (size1Qty), [size2], and data objectsTT| :if (TEXT)>wi'*limit' number of chars allowedT0 wi':*jobfile' jobfile')0X/ JWG-10/30/01 NAME('HVAC',1/(N)~V),'.hvj' Empty default job6X0Ж GInfoMsg P0$ :return$p1,p2''10( wargwarg-320  :elsen Ⱦ :else x :end1 $ :for i :in t '$( :if 32warg '( :case 'KeyUp' ($wcall'MessageBeep'1((y :end (( :return(( :if 27=1warg(( :if warg[7]27 9(( UCSTOP( \ :endt (X NFI N~','($t :for i :in Ts$(T" :if 32warg (   :case 'qty' $ ccc 123 ccc$  :endxt 0 Search numbers)0$ :elseif 3=Tme$+L1: Z125  SOUND 0 :if 13=1warg0:else:| :return:if 0=NOn  :end  sids'':if I10'  :return 0 t wi'*font' font0$P if warg=32$0 R10)00a :returnL0(L :elses(( End or matrix routine(4N A drop is not valid here.4,0M :if 0=NDS,D4 wres'Convert double words to characters'D0 :if 0RSizeEnterKeyHnd0$$ :return$$(= GKwDefaults$( hwnd  hwndOwner (0 :endt` z[;1]split rc plug LOGFONTs back into result`0 :if 0EG ROWFIND F04| si[1;] 'KeyDown - warg=' warg'4(P :case 2 D((X :case 3 Gr($w :return$( M1M(H :end ( FilterFilter,4TCNUL( :return(H :IF 2=nc 'hwndOwner'(0 P[2] V n(V GKwExit(h :endC,a and also in KeyUp.",,= wi'*Focus',0  L(\M='\')/M 0 P :return p Dir 1A rs < Ext 3A d $T :return'$$} GWSize handlers$$ :IF 0wself x$$ :ELSE $( :if 1GModern($T Twi'*text'rn$$ :if 7wargt$( :if 37=1warg((J wi'*limitwhere'"($0:andif 2=warg[3]n$$X to HANDLERFOR.3$$4 TitleTitle,TCNUL$$D nFilterIndex6A$$xu :if 7warg$ & Check Quanity 8 Descripitonn , Fexec CV,$ :if /0>warg$$l GKwDefaults$   :end > BC/B   :if vi S2 $_ DebugTrace $,dGEnableNext 07/26/01,Pk    1P  :else (x wi'..*kwparams' Ps(h:else$ :else$  :endXT D Note: May be called by any other UDC function:t.D( :for i :in CV(( wi'*ID' ( ID)(0t aa,tcnl,'GWDesc"Action"'0$ :case'?attach'$Dh Twi'..fIds.*children' list of itemsD4 wreswi'*sorder''4lE:end 4 :elsee $p or 'Method's'$X W[1]L1  Ȩ :end $ GWSize'Shade'T$ Լ:if 2nc'A'  $G :elsen$L :endrn P :case'last' $L T(~^\T=' ')/Tn$DH :return 07/28/01DD Block the right button default drop menu action.D04n wres2 07/19/0100 wreswi'*last'0$, :selectwargr$$p :case'class'XT$  :case'caps' $10 07/14/01T $,4 wi'.*Focus''',, wi'*text' T,4P_ TT[11+T wself]')4( :orif vi text,T ($p :return$ ( :else' 0S wreswi'*next'30 , :endF $:if 1wi':*cot' $  :end \. :andif wselfEdObjects and in the first size edit box\D,:if 'KeyUp'wevent 07/09/01D$Hv GDataMouseHnds$$ wi'*Focus'e$ :end0D Note: The wres2 must be retained when exitingD0 EditKeyPress604 :case 27 Esc key handlerl4$ :if 1=1GMode$ H(P :return(( :end'(:endselect(\ IDV[i] T(  :ende 0 wreswi'*caps'000u wi'*onAction' action0(d wi'*form'D'(( :if 1=warg'(,p SOUNDr,, :if 0 'i(( :end((( Initial(, file:n( wres'GWQty''($T B  'property'$xe D1D4X (c)1999 Eric Lescasse [10jun99]4 4:case'Action' $V:case'MouseDown'rn$4Й wreswi'*aplname'x4 :return$q R1$4 F wi'.lvAnn.attach'Dt4\ :else:else$ GBackIds's$D,~ :end 07/15/01D( :end(؛ :endfN  :elseg $4:if ~1wi'*mode'$D :return 07/15/01@D4 :case 39 right arrow44 :case 37 left arrow114(, :select 1wargg(x VD[1]V n(l :return(D (CV[i]) wi '*caption' (IDV[NOS+i])D( :else(| paint:  :return $( :end $DtoattrsNOTACTIVE HILIGHT ACTIVE TAGGED MSG DEFAULTD(|RGEditMode;T;ID;V;TEXT(T :endtND (NOS SV IDV DESC)(wi'..*idparams')[1 2 3 4]D  Default items 4T :if Fwi'*clipsiblings'4$ BEEP$:if 3=nc'TPFKeys'$ :elsen(T R1(4 :if~0Cwi'*check'4D{ :andif ID 07/21/01D @p paint items 4, HH, " wi'*suppress'0"4| SOUND5N4 wi'value'(Fexec C)40 State: ccc c , ccclf0` 10H$hvPF wi'*idparams'$ :end1 $:end$ exits$(P wi':*toindices' T(< :returnR0[ wi'*.e1.text'F0x!0140 wi'*suffix'(C2warg)4$Twi':*jobfile'P$:return cont: D M,tcnl,(((1M),14)14'Inherits:'),MD4 :return4(<(F,'.ed1') wi'*Focus' ($ T[1]I $0l V1,wi':lvAnn.report'00 V1,wi':lvAnn.report'0 :returnNDT :select Cwcall'CharLower'(2warg, 'all')D0D Clear description label0 :endЌ:end0:if 0=A N0ؖ :if (0texta,textb)0 :end:,عclassesclasses, 'TButton',x :return 90l!wi'*texta'(texta(SEL)text)0 :else1$ R0 e'$ H`Uwi'..fIds.*ID' 0 Second click flag call in the ..fIds MouseDown handler` g:if 0=nc 'LA' ,0RT wi'*text' 'Estimate1',zGTurnOffIds,܋T wi'*color' (toattrs[2]), hRGToClass;IQ Dw :return 07/25/01D$dNR[1],'\',R[2] $( Under constructionE(pR1TIDV,classesclasses, 'TAgent'n,(  :if 1=G1warg s(H write code to light selected keywordsH 4 :return ( :if vi TEXT( W[3]LHP thH_ M(L)M (`EAD3(1E)wi'*where'(T :orif 0=T wi'*self' LES5feb01 addedT$XT :return$:select BQdu ;>QTYUsStuvW]^XrZw\xPVNR  !##===***==0======8==;==Ed d GClassesA D :if GMoveUntaggedIdLight 07/09/01D0| NonEditKeyPress0^:else:end:, -- Greggway properties,si[1;]DT* GEnableNext 07/26/01D$HILIGHTWHITE BLACK$x{ H:else,l wres1,$p wres1XT$ :else,̠ :goto exit,P :end1D* Note: Enter only active when focus is inD($ wreswi'*'rn((\ :if 1=warg(, TEXTTEXT~',',< Awself  :end n(  or 'property'value($ or 'Method'p'$ Awself $ Requires: (F)dex$$4:if 2=nc'debug' r$$X:case'onKeyPress'gs$$| C1+avC$$ C0,255'$$( :case'integer'$$ :case'margins'$$`g :case'Document'$( wi'ApplyStyleSheet' ( :case'Action' tZ0 2(R,NW)M \ :if 2nc'A' ܅ :else' 8 :ende ((0=NC 'P')/'PPW''C((  M 2 1 3 (N,R,W)Mtor(( wreswi'*''(4D wi 'selection' ((TEXT),0)4( :end(X :end t:select Bst, cswi'*casesensitive',0 :if 0Hwi'*report'0T:select Bp,\ J1K[;1+warg],( a'TEdit"Action"'s( wres2 Z:else(io1$ A  object name$,l? :for i :in T,,n LE wi'*color',, GE wi'*value', P:case'Action'' :if 2nc'A'  $` :case'?next't$$H:case'MouseDown'UL$ :end$  or 'Method'$(O wi'*onAction'C((\M wi'*edit'A'($  :selectwarg'$$ :case'class't'$(P  :if 1<Hs((  :if 0Hr(@  :end v$  Gwi'text'e$$  :if 0Ge$$(  :end$(` :if 1<H($P HKH$$p  Gwi'*text'$$  G(H1H><\H)/Gr$$  :if 0Gp'$$ :end's$   HG' ' n l :else  :case 38 \ :andif debugM (H :if ~0R(,L TEdObjects3],(|  wi'*Focus'( P :endtP :end t ,` E((2D),5)0,`io1(  wi'*Focus'(,(N Zwi'*suppress'1',  A GWEdit B' 0H :goto exitF0,\ wres(\C='\')/C,(4 === Check keywords ((8:if ~/9 271warg (0b wi'*Focus'0`xP:)d*DL( `<> (rc OFN)  wcall 'GetSaveFileName' OFN<R0 0''C Awself P:select B `GWSize'Shade'v  :andif debug' :case'onClose' $ :end' & :if Ke 8 elx'dm'$:case'onExitError'$0wi'..*edobject' (EdObjects)0 io1  dGInfo'KeyDown' $x" GDataMouseHnd'$  :endT  :endrn Dlb DTB GKwDefaults GTurnOffIds]D$8 :elseif 1=Rs$$ BEEP $  :return  :else DH+ :goto format2 07/23/01D :end $4 wi'*Focus'$$@ :return$$a - DW Square ductp$,X :if 1'DD :if TF added 07/26/011D4j :if ~(text,T)>wi'*limit'4, :select wi'class',((/ 'fmBm'wi'value'Cs((  :ende(x. Awself \,:select BT( wres'TObject'((/ C'fmBm'wi'Close'r((3 :if M(08 :endp'0(x0 M0(0/ :end)0(P/ :endg($V :return$$textawi'*texta'$ D :endn' 82 :return $8 :elseR$D class mat type wrap lining seam shield.D(N R1 T((I :end ((; :if 27=1warg((4 :end'C((8 wi'*text' TEXT((4 '***ERROR ***' (,@i Requires fns: WhwndOwner,( :end4T wselfwi '..*edobject'4( :if 01SEL( | :endn' $8 :elses$  :end $ :case'?next's'$ ش exit: $ 5 :if~Z6 ]$ 5 :endif $ :else$ \ :return $8 :if 1vi TEXT$$= :end$(84 wi'*text' TEXT((6 TEXTTEXT~','h((t2 :if 1vi TEXT( D5 :else $d5 :case'?last'T$$ :case'class'XT$ 8 :end $0 :if 27=1warg$, (c)1999 Eric LescasseM,HL :andif warg[6] repeat flagH,x tab handlerP,$ 3 wres1e$(110n((]:andif C[D'^']='$'((;:if B'SYNTAX ERROR'($ :return$$; :ends'$$(< skip1: BEEP rn$(E texttext~' 'j($ GTurnOffIds$$< :elseif 1=Rn$$ :if 0=T~' 'T$$@R :elses$$P :if 1=1GMode$$:case 102 square$$L=:case 101 Round$$ L257:$$1 :case'?fields'$$ or 'Method'r$$= B  'property'$$8A UCSTOP$$P :return$$ :else$( or 'property'value(`h wreswres,tcnl,"left, top, right & bottom refer to the object edges"`(0 :case'>>9'(:case'W2C'P, :orif 0=+/^\' '=T 07/15/01PX"io1 :case'KeyUp'On  DebugTrace  :case 115 T :endds $ T1T$( :else( :return(   :else (0F :return( :return1(C :if R<100(4L, :if 1=E  :andif 2=Eb4D80R  dir file ext title filters findex readonlyDD|F E wi'*color'255(255 255 255)"D0H :if 0RSizeEnterKeyHnd00س GWSize'Shade's04P Email: lescasse@uniware.fre4D+wi'*color' 255 255 255 07/26/01D,7 '#'wi'tooltipenabled'1,(9 :ends( ĵ :endL' 4,K 0 0wcall'FindClose'D4hI :endoc X:case 'KeyUp'n (` Pwi'..*idparams'((ؿ Commonwarg'f( ̻ :case'list' $ :case'?color''$ G :ende , wres'Description', $ TF ( or 'property'value($ :else"$X :return(K :return(:end0 F2fi 1F0$|6:case 'MouseDown'$, t wi'*caption' 'CLEAR',:end< H d :end] $T wi'*text' T'$(_ wi':*ok' 0((_ :end($[":case'KeyDown'"rn$$x[ :return$(ȯ :if 32=1warg($\ GTurnOffIds t $$(M P[1]OS+1$$tQ :andif 0=TEXT$ h :endn' $ WCFSC wi'*where'$ M :end' $M :return$ Z GInfoMsg P $[ :endselect$ X2 :end1 $Q:orif 0=text~' 'T$ N Gwi'text' (O HG' ' T LM :elsen $lMWFH wi'*where' nr$$O :if 0=V.$$|K N0C+FI V[I]$ 8P :endrn |P:case'Change'n N":case'Change'" $OZGGetJobname CNO$,@ R1 return to edit box,$0Q :end1$$ :return$ pXdirchdir''R $S :goto scroll$$ :endrn$$O :if 1=warg[3]$ XF :elsee S SOUND' TS :elsen O :return $Q :else $D It a number. Move caret right one spaceeDD Insert '0' as a placeholder for those items thatD$ U wi'*Focus'e'$$ textbwi'*textb'$D :andif 1=+F is there only one?1DLsFfi 2F T:select BZ$m dl .25$ W :case 40) $ W :end'$ R :case 38rn $d wi'*Focus'$$tV SOUND$  R :endtA $DW :andif 2V$  ,- Round duct $ wres1'$$X MEMO freplace tn,7$$L EE$4` 3. FG/ductboard'E4 Z :end1 $Z SOUNDV$ \ :case'down' ,sel added 07/24/01.D(; :return|u skip1$ UCSTOP$$xi :end$ h :if 2=I (W :andif '.'text((H TEdObjects((B UCSTOP ?( :returnDe :elseif 39=1warg added 07/24/01DDg :andif (text)=sel added 07/24/011D R :end ,$  T wi'*text' '', text'A SPACE' g :ende 4k :elseif wself1EdObjectsnt4 @h :elsen ,4 SOUND',Di :end 9k Hlskip:,v:endselectx  :end0$f L257:s$$|Ntextwi'*text' $ x}:select wevent  DebugTrace 4 GWSize 'Shade'4 Pf :endrn ؠ,G wi'*text' (text,T),$̂ :endts$  DebugTrace p:for i :in Te  H(f :orif warg[7]=190(`i:end i 10:(̭ :select 1wargn(,` GMarkIdss',,k GKwDefaults,hpKeyUp:pP :end1  :endus (n Commonwargtor((L wi'*onAction'C((% or 'property'value( `C :case'just' (D wreswi'*'tt($3 :case'?Show''1$$4 Requires: (F)$$ :case'?wherelc'$H T' ',(wi'*text'),' ' pad for end item error.?HhkBEEP0 - SOUND 0 \K :elsef p  j ccc 123 ccc0 q:if 0=( ID)IDV t debugTrace'' $o or 'Method' $0 UCSTOP Error.rs08 :end default object8$j :end$  :return pH$ Move to next edit box if current box hasHplo :andif /'SIZE1' 'QTY' 'COST' wi'aplname' added 'COST' 08/01/01added 'QTY' 07/31/01p<\ wi'..*edobject' (T[I])<( :return(  :ende' $ wres0,Gs$:select B188 :else1<TO UCSTOP 08/29/01<   :case'Sort' D GWSize'Shade' JWG-10/29/01Dx0)P| wreswres,tcnl," '&limit{width}' define control max number of characters and width as {width} average characters"49:)h!I`, ?,@<AHBB(CTCADhDdDE̽EEt\FpG:HH<IܿITJK|L MN8N0XOPQ40 TEdObjects0:)8Ox|Ld ` P 0k  XePdt8YddY|dhlY !"(#$s%8&0'(,)*+,Lm-.@/d0́1ȡ234056P7H78D9\(:p;<H=D>?@(A<BCD4(E`F0G|kHDI%JHKX$LMNOP8Qt RprR RRRt+S\ZTUV &W̨XY Z[\Ԝ]^_`4a bc4dref8gh`ij kl m$no$pq r sPtďu@vw0wxyz({|}x~(HDH!<fdup<d8؏lD؇0X4T874 Ы'Xett \8| }Ě , Z\6l(h ܜ(ZaXP4HL5|@X t1ȻxآxL<$ hP`0tH \exԦ U=X<  45 4 ص xxȵPdD$[\ D!t"#4$%d&'()*W+V,`-.D/u01P203|4t5(6789Թ:`;<=H>?@A B40{CDTET8FGԯHItJ KL@MPNO'P|QRhS8TUV@VWWXYPZ [ؿ\@]Ę^_Լ`a,b cdefgh iļjkll mnopԨqr st,uDvtwxyz,{| }0@~ 8 ȍ 8 ,Ld<(PhtH@ GX\̬H 4XD GMarkKws '' turn off keyword hi-lightsXX$$ Ttext,T,'.' 08/01/011X< :if ^/((1warg)>64)^(1warg)<12301<:)cD4DT     T@hPXxdH$0lZЍ0 h]!"$#$L%D&d'()ԟ*+@,-P./40D123456789,:0;<=>?@AB(C؛DdEp_FGdHIJK<LMP_MMHMMNOPQTRXSHTlUtVW`X4Y8Z[L\]_^_4``abcdedfgh|i8j|klm_nܢo\pq rstuЖvw8 x$yz{| }<~@X \  /H@ؙ4 |Hxģ`4$8l@ \ X| (,$@̥T d ؕ x  ܌<XX l'( $ht(VV(|VTLp' Ltr( L ( P.LT`h  0l8    o  TXPdW<pX"\.$d\! \g!"#Ě$%P&'LZ(x9)!*+,,@-D./<3012!34344H56le7!8h9:o;s<=?>@?!@zAB8eCDd)EfF XG(HpI!J.KL)MN OOt!P``QR*STU2V8WDXY@8Zx[l`\`!]@X^L!_`8!a$b8c0d$!ef4sg\hhip jklxmhn )ohhpq[r.st\ uvw wxhy z{Dx|} ~h~ j)):)x- TV,8PA-pT(W h  C  0=dѻR ѻ0лLλx%ͻ k\8+4d7d$?d hj!"#ͻ$8%/ͻ&Ė'/lͻ(t$)*D+,8lPͻ-E.M/(0104ͻ24\3T44H5C6J78Tkͻ9T3:;;*<="ͻ>W?p/@EAqBBCD$RͻEȻFX1GD,H?I G̻JK$1LHFMLN"O<P\̻QRSCTUxk̻V<WXIY<Z[\@$]l^_h)`Dadbxc0d<efgJh)i0Ejkl]?@XApB|CD3E|iF#G<H@IJ4Kl LMNN`NĺN,NOPQ RH@S/TqUV6WX$YZ[ \];^W_Dc`aذb%cdte|fVg+hȴi@jXXk_lImnبop~qrdwstȔuP0vwwxyhz{|z}Tz~#-@32zU|0_phtTtȲ'|&Gh&8X><}pzZT&F`lxaH|l`ph@&d(`dXtt=0&,&a%%Ut(%`)%%Xt\0D@?d4Ta8'Ht%@8 %'$Zt]$xk" ,|Xp$ ax`p| |t{xl$Dxv$ Xa^ a   Ԅ  1# b@P`܅L ̷8!p  !"t#$r%,T&$'p()**+A+X},-T./dA01,q2345 67l}8K9H:;<f=x>e?#@ApB@YC|2D<EFGTHIX2J9KL|&MNTOP|sQR STpUVWXl YZ[\] ^__ܻ`abc@[drefg|KhqiXhjkld5mTnnoqpT~qqrsqt@~u&uhqv},<y:end  07/15/01<4p :if 0Ewi'*:font' '4c<( rcwcall'EnumFonts'hdc facename fp 0 '<(x :if 1? @A4pB3C(bDlwE4]FGrHd1I "JXCKl41L 9M D0Ժ Cwi'*dataoldvalue'04x PlusMinusHnd4Dthdata_Handlers;texta;textb;t;C;ID;P;R;SEL;SV;T;V'sD, :if 1 GRoom T,4/'C/SCRNW[1 4]SCRNW[3 4]:..',C448 '*** TROUBLE CLASS MISS MATCH't40DJ WriteDuctSelection IX00< TEdObjects04X aa,tcnl,"TObject'Action'"4PPwself'fmMdi.sBar1'wi'*Create' 'TStatus'('fields'1 2 3 4 5)'PLx0 0wi( 'TAlign'), 'Left' 'Center' 'Centre' ,(7 'right')PL8PGInfoMsg'THIS MAY TAKE ABOUT A MINUTE'8 :end014d in the Greggway product.4<R VSPLIT IDS change to a nested array<8 wi'*text' T refresh edit field 08/11/01 07/24/01'*S<, 07/22/01 is not within the text stringr'<HDt The following may not be required sinceH0$ R1rn04\ TDEB,(((vi T)TIDV)/T),' '4<0} wi'*selection' ((T),0)rs<8, CLASS'DUAL WALL ROUND',8  wi'*selection' ((U),0)8 LY^r\}SZRVQWUwXfl  ""$%&')',,-.11124456789:<<>@@ACDEHHHIOOOOOOPQ]]TUVWX]]]]]^_`addggghijklmnstuvwx{}s+A,$t>0, :else d0p6 wreswres,tcnl,"WARNING: the 'attach' property MUST be set before the 'caption' and 'suffix' properties!"0x* :elseif ^/1 0=wi'*mode''0\80 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\8 0 0GMoveKwLight wi'*text'8Xo :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'XPH if U=choice or partial choice place in data input fieldP< GErrorMsg'WRITE CODE FOR TAB KEY')<4d HH, " wi'*suppress'1"4P The TMedia object is an APL+Win Media object with additionalP8 wi'..*edobject' (EdObjects)H'88F(V WI 'self')/V'sw' 'fmInfo'8@  release (or close) the temp.sf file..@0` CV1wi'..fIds.*children'0@8b wi'*...suppress'0v@L8:)8T8pi L0 :if 'HVAC'fread TN,10<D( R<tX t(frame,'.l',C) wi'*Create' 'TLabel' ('scale' 5) ('wherelc' 13 5,S) Position first itemt0f :if 0C wi'*self'0,4 VC wi '*color',t4| wi'*selection' ((T),0)4 |^:if D'Section' $ :elseer$4 5?r >>>> ""==%&(=*+,-./0134667>>====>& " =340O Move to next edit object0H# T(-T)texta drop partial itemHH0e Creates an empty default jobfile name Hvac(n).hvjH!:)<*H;DD88e t = e ,_ 7uH n4xcek&to|Fve1f4 !"#B$%&('f()l*+,f-.T/01t!273H4k5h867̆8t94:;< => ? @8nA`dBlC$jD<E F@FGHIdJ]K LT~MNO03PQ Rh=SLTUVl/WXxY_ZH[\w\]^ 8_`(a!bcdpewf g0hiX?jTjklcllm+no$<{ Factors: section: typical shop field<4 F wi'.lvAnn.report'H4$4sfuntie jobfile[2]$,(F,'.ed1') wi'*texta' '',PČTwi':*FMV' List of takeoff class framesP wreswres,tcnl," 'ff.ed'wi'attach'1 2 3 4 attach each edge of Edit to corresponding edge of form"p6 rcwcall'W_Ini' '[Call]InternetOpenUrl=B(H, *C, *C, D, D, D) ALIAS InternetOpenUrlA LIB WININET'/00_ C'activex',(ts)~' '00 :if /33 341warg0)0D| :andif 0T 07/10/011DtH :andif ~/'SPACE' 'PLUS' 'MINUS' 'BACK' 'NEXT' 'ENTER' wi'*caption' added NEXT 07/29/01t<) :select(,O)[(,O)O3D]<8D :caselist'=L ' '=LL'8< @r(V78XrZR9w "#$%&'(,,LL11456789???AACCDJKLMNOPQUSUUW]]]]]]_`ocooooijooooqqrsuwwysss}~\M,"SM]Wf_<H8 wi':*jobfilelib' V (jobfile[1],V~jobfile[1])sH0ܠ wi'size'(F24)400'0,A(xfnums=T[2])/xfnums89,`:end  :else < psY^rZ\ !"#$3w ll !$$$)))))*..../11l5567:::;<@@@@ABFFFFGHLLLLMNRRRRSTXXXXYZ]]]laabffffiiilllppprr2 ^5ja<4X wreswi'*wherelc'4f:else (Z :else((O '>Xe idparams[1] offset to the captions to be displayedsXtB '=dG wres'Name of APL variable which contains data to install in Edit control'dClic` wres'Get the list of supported country codes (read-only property)'`CLOCT wi '*class' nested array of class namesLPR:select 1warg Note: case statments require integersPEamed0L 32:OFN_ENABLEHOOK - Enables the hook function specified in the lpfnHook member.dEtratFediPEDebugTrace  wselfwi'..*edobject' blocked 07/07/01tPXB :andif 34=warg[7] 07/17/01XH0:end  07/18/01)Hhi wreswres,tcnl,"width: if >0, means distance in pixels from left form edge"hx F wreswres,tcnl,"0 0'ff'wi'Create' 'TForm'('*size'0 300)('*caption' 'GWOKButton Example')".xFctodF SIDSSIDS,RN[1]SIDS,MIDS rotate MIDS to hi-light to the left)dI---xI---8sFRd-1 FSq-2 FOv-3 FAd-4 FMi-5 FEq-680 Move hi-light to clicked item0Iu o,J---d0 P2+1wi'..TextSize' 'Test'(wi'*font') entry height in list boxatdJpti(KPg :end 07/09/01PKdJRWGetSaveLongFileName dir (jobfile[1]) 'HVJ' 'Save Greggway Jobfile' '*.hvj' 0dL' ," textawi'*texta' ',4 GWSize 'Shade'4,& GMoveIdLight,8O :andif 0=+/SV 2/25/0088M :andif (vi texta)' '=1textaon8\9BNVBNV, wselfwi('..b16.Create') 'GWButton' ('wherelc' '=' '>' '=' '=')\@ GMarkID ID 07/10/01@<`p wi'*...Send' <L@S P' LARGEST VALID NUMBER IS < ',(K),' > 'LPK GTurnOffIds 07/09/01PLn GTurnOffIds blocked 07/09/01 2/25/00sLL` rQS L\PM 2/2/00 CV wi '*color' (toattrs[1]) turnoff all hilightss'\U0p iVla'PO wreswres,tcnl,"Syntax: 'object'wi'desc' charmat"P qwidRin xR]\'  '#8 9')('handlers' 'qty_Handlers')lrt CC,139 155 147 180 186 158 174 144 138 137 150 151 248 35 177 178 160 190 159 176 125 161tD ʟЅ wreswres,tcnl," '>' means place this control (or form) to the right of last control (or form)" 4 wres(DE)TELPRINT C4Tng PR:case'onOpen' ELE6oct99 mPU---pV0 0'ff.ss2'wi'*Create' 'TSplitter'('Open'1 5 5 0)('split'('ff.f1' 'ff.f2' 'ff.ss1')'ff.f3')pp0 0'ff.vl2'wi'*Create' 'TVLine'('wherelc' '=' '>' '=' )('style' 'medium')('attach'1 2 1 4)=p8 toindiceswi ':*toindices'S)8 V 8W H k CV1wi'..fIds.*children' item objectILH WDOWDWMWERSWub Wm  XC  XDKB4XDWEHXDWTpOEPLXG :elseif 2=warg[3] 07/17/01XpX \ S ID1(~(ID SS' ')^ID=' ')/ID drop trailing blanks\Xsi LYDOC`Y tY L. :if 0=( ID)3wi'..*idparams' 07/18/01LTpg Ctrl+End Scroll to the last items page 07/15/01 TPU D(C'')C error messagePP'  '@6 6')('handlers' 'id_Handlers')1lLO Cursor at the end of the text. Hi-light if anysLL@ HlpFM wi'.lHlp.*Create' 'TLabel' ('*caption' 'Help')LPXDebugTrace  wselfwi'..*edobject' blocked 07/07/01sDPD`60]H_ trailing space indicating a cursor move to beHaPKGb 8TRILa (CV[i]) wi '*visible' (~^/' '=IDV[NOS+i])01L0bmanb]' 8((b,L\ VV,T[i], '0' catenate the implied count placeholder\hz[Kc2])<O wi'*...size'AS<l(i wreswres,tcnl,"value: 0=dont spy 1=spy 2=spy eliminating some mouse events",lc1] d1dBUGd de`\ continue; Single keyword only IS hi-lighted. Not bright (i.e. red)x``EwselfWI'..b1.*Create' 'GWButton' ('wherelc' '>' ('=',FF,'.f1') 18 25,0 5)`8 wi'*selection' (01 0+SEL))8dBUGTE7XfJlflfL$fVDu fu@N ID(-1+(T)' ')T 07/10/01@f$g$8g|$Hafuntie jobfile[2] must close before usingHd ,PP  :if 1=wi':*cot' Duct class takeoff?tP hH`g wi'..*lDesc.*caption' (DESC[I]) 3/24/00H4hhh0T] C(wi'*value')(wi'*list')[;4] scroll bar thumb postion5Th(11 i \wi'count'8TĄ :end 08/01/01TL؃ 'wevent=' wevent 'wself=' wself 'warg=' warg7LXA GWEdit B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wself XXX* wselfA wi'*Create' 'TEdit' create an GSize1 objectXTЇ :return 08/01/01TX* KV1BV wi '*caption' key chars for each of the buttonsX@x Cursor at the end of the text string@L$ cc?.. caret bar next to a partial itememLT  UCSTOP 08/01/01TL  next to full id. Add a space and returnLL! block back, space, left and right repeative movesLX& MIDS(((IDV)RN[2]),RN[2])IDV create matrix of the itemsbXTX :if 46=warg period 08/01/01TT :if ~/'SIZE1' 'QTY'  wi'aplname' added COST 08/01/01TLwres1 07/12/01 block default Windows actionm L@̉ with no multiple partial items selected@:if I object.t wreswres,tcnl,"'fmInfo'wi'*Create' 'GWInfo'('caption' 'This is a trial')('color'255)('WaitOn' 'ff')('CenterOn' 'ff')'*Show'"4classesclasses, 'TFormEditorTest'4@8t must reset edit box variables before@@ :elseif (1warg)39 Right arrow@@ :return 07/14/01@LPO block back, space, left and right repeative movesL@n wi'*onFocus' 'GEditList"Focus"'01@XDwres0 3/7/00 Try with wres0 to see if lockup can be eliminated.sX@u wi'*text' ((,'F10.1' FMT fi B)~' ')@@0 wi'*text' ((,'F10.2' FMT fi B)~' ')@X؏ (C[i]) wi'*visible' (~^/' '=D[i]) hide blank labels X@p P'<',RA,'> IS NOT VALID <',A,'> COST ITEM'@,RF WGetSaveLongFileName A;Dir;File;Filter;Ext;Flags;Title;rc;nMaxFile;nFilterIndex;OFN;L;ReadOnly;M;io;nVer;fMulti wreswres,tcnl,"Example: 'ff.edAge'wi'check' '(AGE>30)^AGE<50' 'Age must be between 30 and 50'"D P'INVALID SIZE ENTER FOR THE FIRST SIZE'DT T'' required for next :if statement if second size boxo!TX GErrorMsg 'THERE ARE NO SELECTED ITEMS TO PAGE TOO.'1eX@@ wselfA wi'*Create' 'TEdit' '*Close'@4Й Move cursor left44classesclasses, 'TControlClass'a.4@8/Tab-9 Space-32 PgUp-33 PgDn-34 End-35 Home-36@4 :if /33 341wargle40dc ZZ,26 261+E2C0@ AI/'A MATERIAL' 'A MATERIAL' 'AN OTHER':@@u wi '*selection' (1 0+wi '*SEL')@h` wres1 08/09/01 don't change this any more! suppress default key action"hh DM[DM;I]DM[DM;1+V1] replace non=obects w/last item/last rowfth4t# D'T',,'ZI2'fmt ts[4 5 6]4h wi'..*edobject' (T[(T)1+T wself]) added (T)... 08/08/01h($tq wreswres,tcnl," '>label' means adjust horizontal position by width of Label"t4(jobfile[1]) xftie jobfile[2]4`)V1'Round' 'Square' 'Oval' 'Round Dual Wall ' 'Square Dual Wall' 'Oval Dual Wall' 'Air Distribution' 'Miscellaneous' 'Equipment''))H\T(T' ') Ttexta,textb change to nested arrayTHT= GWSize'Shade' 08/13/01TT wi'..*edobject' (EdObjects[I]) 08/13/01T`FM wi ('*where' 0 0,2FM WI'..where') Overlay Class frame on history row`<{ S1FIELD wi '..TextSize' ' 99999.9'<TT I11+(EdObjects) exitobject 08/13/01TXP} Note: wi'..*edobject' is set in SizeTabHnd 08/07/01yXX 0 0GMarkKws T Check for partial keywords1XTD GMarkKws '' turnoff keyword hi-lightsTTH GKwDefaults hi-light default keywordTX :andif ~vi T edit box does not have numberXX GMarkKws '' turnoff keyword hi-lightsrXT :andif +/2wi'..*kwparams' Rev GWToData 2/28/00TXH 0 0GMarkKws T Check for partial keywords)XT :if RGMarkKws text,T Mark full or partial items01TX wi'..*edobject' U save new object nameXTL T'' required for next :if statement if second size box01Th  :if 0R R initialized on exit from data vaildation functionsh,2((Iwi':*FMV'),'.ed1_lab') wi '*caption' (GNLN GFmtPrompt (wi':*cot'),wi':*toindices') JWG-10/30/01 New takeoff line promt8ySA1wi'TextSize' (wi'*text') font8\9 RA TextSize B -- Returns text size in pixels for texts B with font Ay\8c :if 0Ewi'*:font'88P AT.5Y+C-+/AS8, wi'*.tTimer.enabled'0,, Swi'*status',, D(162)S[;4],@$O :if /'SHOP' 'FIELD' wi'aplname'@, D[15 16;]2 2C,8S :if (1warg)8 13 32 37 38 39 408<$ A TScroll B -- TScroll Template Objectt<<` wi'*onDelete' 'TObject"onDelete"'<<hF wi'*borderstyle'(C1warg)<,F wres1rn,l))@T: Char key, other than a number, pressed@,: GWSize'Shade'n,@| texttext,T add the alphaNum char@@  :if /'SHOP' 'FIELD' wi'aplname'@, :endj',;) :if 1=wi':*cot' added check 08/03/01 P'IS NOT A VALID SIZE',TCNL\  wR.! !"#i5*/555578:;=BHHHH<LMNSQSSVVWXYZ^^abcdffgijklmntttt vyzj m K QE 22(             #$&&(+,-./0123P89:;?CCDEPIJPPPPPPTWWWXY[[m^aaacggijlnnsswwx|aaa^^i- )! "#  i$% i"((&,-'4577;@@@@@BBFHHOO(QVVVj)\]^*`abiiiiiiijklqqqqqrs+uvwyy,o- .R(#,*5/8H;H>^Nfcv P #C|^gclw( /,75VQq\q`yv\ (`M :if warg[7]>110t(^ QTYUsStuVvW]^XrZRw\xP3 zz$%}*/012789:;<ABCDEFGHIJOPQRTdddd^ddddRfgznor{{w{{{ 0x Zwcall'ReleaseCapture''0H :orif ^/((1warg)>47)^(1warg)<128 alphNumsH<PK :return return to edit boxE<Hq wres'Get or Set the application .INI file'eH0 wi'*visible'00Lxv GWSize'NewClass' Fires the onFocus event in GWSize.L :end%8p:)Ш$(p  ܠ  һ ϻ h λ  8 ӻ ӻ(\D0(x4$h\q@m4X+\XS І0ȠdлdtϻлH V!Ȧϻ"0#$|ϻ%&$'l(Lϻ)*+,(-Q.</.0Z1P23Ћ4s5N6[7ϻ869P:7;<л<`|л=8л>?t@AkB4 C(DEhF޷G\H|I\J$ 8<[ E wi'*caption'(wi'*name')<4` wi'*style'(2warg)44l wselfA wi'*Create' 'Frame':4<@s A TControlClass B -- TControlClass class<4 Kwcall'GetSystemMenu'H 04D% rcwcall'AppendMenu' hs 'MF_STRING' 901 '&Spy'Dx\ '#'wi'*countries'1 33 46 supported languages (1=USA, 33=France, 46=Sweden)xh "1QTYUsStuVvW]^XrZRw\xP3 0$%00*+,0000000:<=>?@ACC0F0JKLM000T0000\00`a00f00j00opqrs00wx0[0}{vvvp00W0ES0O000A0=0722200 0000  000) ))#)&)))0+00.00" 0*hHT wreswres,tcnl,"chars: a character string"H4  C wi'*value'E4P(; wreswres,tcnl,"param1: parameter 1 description"3P`88 TV,ID,' ' add item w/space for curson`(4 :case'?labelwidth'(0lN wi'*XRedraw'104# Copyright (c) 1994 by Jim Weigang4DM :if 1warg(8,47+10),(64+26),96+28D$ :case'?margins'$ GJQTYUsStuVvW]^XrZRw\xP3 IIIIIIIIIIIIIII/01II67III<=>?IIIDIIGII CIICNO0:)Jֿ\m, ئx袷0 x tB0 X D pL(X],d<>D`4H!\|8dxX|0#` [!["l#P$%>&l 'mT()0*`+L[̘,Ȫ-pa.f/SD0Z1Z2 Ė3p84L5ܪ67얷84490:8Z;Z<T=06>5H?Y(@YA`Bt|ChD,E`FBGDHxYIJpKЏL||MDNHYOYPAQRSh[TP8U`V<W\XXYCZ[\̈]X ^X_XXd`T a b$cld eDpf(XgWhi`Bjh`kdlWmWnTopqkr@srtxuTvEow8̀xWdyh 4t8 J47++\(1+(H-50)4)4 44Զ --- Write char into the edit box4DebugTrace4) d W2+(M)[2] %:)3ItsOT(k@ĦTAtA䨸\@O,N 0 warg'clipsiblings'10<x2 AV(AZAW)wi'*where'dA<x  ES/x<  (c)2000 Eric Lescasse[11jul00;23sep00]33<x 83:)NBX'D(Y(t*(8)M**ȫ*b+E,,,,h-8.xy.x.,/$i0$&0%00_1<2l=3Q\ɻ4@ɻ5ʻ6#|7<8ʻ9L6:};a<.=|dʻ>#?T@ܳAOBNC<DbɻEF.G`ɻH4IdJțɻKlL/M+NL$ʻOW߻PPh߻QNRdSh&T=UPV|̡WLXlY|8Z6[ Q\\y]pl^  x4L wreswi'*wherelc'04@T ZZ, ':else tree( wself),first,/Ttree'@t`e:) 4pep^_|t4Function called by UCSTOP: 40= wi'*text' Ue0ĕpw255:),H[Pr<- l   ` LXTmܯ4W0pN :if ~( exitobject)EDV0D< Note: The wres2 must be retained when exiting8D0 SCrnw[1]ROWSSCrnw[3]08 t wi ('*caption' (IDV[C]))s'8< GEnableNext 07/26/01<Tw hiwRV hhhh+"#$%'(+++,hh1275778hh>hhACCDhhhhMMP hUUU XY \]^_`hhcdehhQ klmnppi stuvyyythhhhh`hhhhhKhhhhMVPUhhYd]mv3 h*%Y5F7T< or 'Method' argument1 ... argumentNts<I :return  QTYUsStuVvW]^XrZRw\xP3 !!!&'()*+00144577===BCDGHKMNzUUVXXY[[]^`agegghikppwwwwww{{~}`"mg@PPPHH%( 3R0Mk`@H1 state: caret is on an item in the edit box@`. Use Control Panel to change the Number of Decimals in the Number tab, then:`06 3. ductboard>0 d :elsel | QTYUsStuvW]^XrZw\xPVNR !!''''()++///0204:7:::CCCCCCCCCDEFMMOOQRSXVXX]Z]]]__`abddegghkkkunopqrstu~~xyz{|}~koohFTLPI (J'MZQs|4 A GWButton B -- GWButton Object4T:)T||x}t/2 p 4P :caselist 'qty' 'size1' 'size2'4h:)h` tt.,,{0 /  ` t 0HT0Ҷ Ѷ|ҶHUpѶ8@Ѷ4жeζͶ4жh&60 <!|z϶"dζ#;Ͷ$,ζ%t˶& '()*\8+t=,8-./0Č1Ȼ20>3`/4546L78X 9&:ԍ;<=H0>$?ܜ@$9APBCDE/FFG-HHILJK.L<X˶M+NPOfPpQRStTUVMWXYZ@[ \ ]d^_`abcd4ehIfg,h;ijklmnho pT5qrps|tuvwx0y z܎zuz{P{|@}܈~P x@h`Q<Ld/̍0 ̮8t`t<X.,j|*H3[̶\̶Dpt̶t|8̶4˶DxͶ4$1xȲ8(XؿX h0d wi':l1.*where' W0<| 07/22/01 space, right arrow or enter keys<H CNO,TCNL,'CNO[7] Daily Progress and TO DO notes'HKP[1]0 x :if 1F~E0 mark container children having an aplname propertyx`DebugTrace renamed and ediited from qty_Handlers0814 & size_Handlers0814)`ht1 V((1000+~io)+1+P)~P next possible tie no above 1000hl{0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' 60  200)('caption' 'City')('attach'1 4 3 4)l`wi':.sc' '*tabstop' tabstop does not seem to be persistant 08/29/01sa`\ example would be to reposition them correctly after the TGrid is created\\( tGMoveKwLight text 07/24/01wi'*text'\`! :if 0=text~' ' 07/24/01 edit box empty?`PԸ :elseif warg[7]190,64+26 added period 08/01/01"P\! tGMoveKwLight text 07/24/01wi'*text'\h wreswres,tcnl,"borderstyles: 0=No border 1=Inset border 2=Outset border"h\t! File data and clear all edit objects 07/27/01\\" PP,' Enter a value in each field or Click on the'\`" :andif (EdObjects)wself 07/24/01 First edit box?`P| and integer during the KeyPress eventP`h :if 1=wi':*cot' added check 08/13/01"`\D State: Initial size/edit box is empty or a dot (.) key was pressede"\\# 256:OFN_NOVALIDATE - Allow invalid characters in the returned filename.\\0& 32768:OFN_NOREADONLYRETURN - File must not be Read Only or protected.\T$ :andif +/2wi'..*kwparams' Rev GWToData 2/28/00TP@% and integer during the KeyPress eventPT$ idswi'..fIds.*children' visable items objectsTT< idsids wi '*caption' visable object namesTP% :andif /37 39=warg[7] 07/23/01PP% C wi '*color' (toattrs[1]) turnoff all hilightsPP8 wi'*selection' 0 0 Move caret to its home positionP\& -----------------------------------------------------------------------\\& OFNOFN, ,File lpstrFile - Points to the initial filename buffer.\\' OFNOFN,nMaxFile nMaxFile - Size, in bytes, of the lpstrFile buffer.\T)TRYGW 1 duct class/default (i.e. toindicesfread HIDS 11)ET`(UNTAINT flnm -- Restore usability of APL file left tainted by network crash`\T( :elseif 37=1warg routine added 07/24/01)\\d) :if 4(text)'.' over three decimals?\`*  rR ee`TFF wi'onKeyUp' 'BEEP  wres1 ' trapping Alt+F4 >07/15/01T\p :andif ~vi T edit box does not have number\\* wres'Determine the border style for all existing status fields'\\x* wreswres,tcnl,"Syntax: 'object'wi'borderstyle'borderstyles"\\+ wreswres,tcnl,"Example: 'statusbar'wi'borderstyle'0 2 1 0 2"\`4+ OFNOFN, ,Ext lpstrDefExt - Points to the default extension string.)``X :if 1=wi':*cot' added check 08/13/01`\  S0 40 init property\ 0, :if Fwi'*clipsiblings'0@lQ State: nnn (right align)r@0- ((Z=',')/Z)'.',08- :caselist'Check' 'Option'88H0 E(wi'*:height')-8 '80x. Zwi'*xText'(K)(L) 00B ZZ, "infoh id class text"00D3 wi'*size'(D E--S)082 AR(+2 2AR)+W X~AQ8XFF wi'*font' 'New Courier' 14 0 'ansi' full size reduction 12/1/99 XX wreswres,tcnl,"Syntax: 'object'wi'orient'{orientation}"dXXLs wselfEdObjects 07/15/01 had wrong edit object onceX8t3 :if~'Status'AF8P? :if 1=+/^\' '=T 07/15/01 P005 wi'*size'(wi'*size')083 ASARP Q)884 :if~'Status'AF8Xs OFNOFN, ,Title lpstrTitle - Points to the title bar string."XX3upperUPPERCASE text -- Convert all lowercase characters to uppercaseX8? ASARP Q80`5:caselist'ShowDemo' 'DemoShow'00t: :if(nc C2warg)2 30xh7 wreswres,tcnl,"editor windows. Examples are the SmgrWindowName and SmgrWindowText fns."xp8 Therefore the cuecard1 property must be used before morebutton, closebutton and helpbutton"4pt' wreswres,tcnl,"and: 'object'si'Overlay' '' to restore the Status Bar" tx wres'Update all controls in the specified container object using aplname control properties'xx9 wreswres,tcnl,"string: an ActiveX class substring to be found in ('#'wi'xclasses')[;1]"sxpA0 0'ff'wi'*Create' 'TCueCard'('cuecard1'(,tcnl,(nl 3)[20;]))('wherelc' '<>' '<>'400 200)2pt6 wres'The Overlay method lets you display a status bar message covering all status fields'tx{ wreswres,tcnl,"string: an ActiveX class substring to be found in ('#'wi'xclasses')[;1]"26x( A wi'spy'0(:case'New'e0A wres'#'wi'VT'interface 90Tld wres1/wcall'GetLocaleInfo'C'LOCALE_SDECIMAL'(32' ')32'T@x, wi'..*edobject' (T[1+T wself])@(0: HA wi'*hwnd't(P2 State: ccc c or cccc or ccc n 07/14/01PXX except in labor fields which may have three decimalsXX= GInfoMsg ' <',(av[io+1warg]),'> is not a number'XXT> 07/24/01wi '*text' TEXT just in case KeyUp has firedX8@ :if~'Status'AF8X> Initialize variables required by data_HandlerseXP= (V[wi':*cot']) wi '*Open' cot's matching framePX' 60 60 320)('caption' 'Address')('attach'1 2 3 4)pP?GTOPSETUP FF Setup top paramaters plus history area. 09/01/01P0J wreswres,tcnl,"" 0@<@ Start a new line of input@PH 'temp' fcreate 99 used to temp store frame defintions"P0K wreswres,tcnl,"or:"0X selwi'*selection' (caret position) (hi-lighted chars) 07/24/01XpM0 0'ff.ff.edName'wi'*Create' 'TEdit'('wherelc' 45  250)('caption' 'Name:')('attach'1 2 3 2)p0\L wreswres,tcnl,""c0@(I T(wi'..fKws.children')[R]F@0L wi( '*Set'),C00L :if 82=dr interfaceE'00N wresav[,256 256,1warg]0tD9 wreswres,tcnl,"You must provide as many styles as there are fields in the status bar"tp\|0 0'ff.l1'wi'*Create' 'TLabel'('wherelc'5 5  200)('*caption' 'Label n1 (left justified)')npXJ renamed and edited (combined) qty_Handlers0814 & size_Handlers0814yX@L :andif 0=vi wi'*text' 08/08/01@0,| wreswi'*Wait'E'08\R wi( '*Set'),1F/D8p V0 0'ff.op1'wi'*Create' 'TOption'('wherelc'5 215  80)('*caption' 'Option 1')('just' 'right')p07 wres0 none08R wresD1(E=E)penclose Em'88R :caselist'TDateTime' 'TDateTimeFr'880f (K L)wi'*xRows' '*xCols''8@N :if 1V^/^\' '=O wi '*text'@<0. :if 1=1GMode 07/14/01<<S caret not positioned on a full itemin<<\T --- Invalid click. Return to edit object<<T DEB GDataMouseHnd GMode<88! wresF wi'.lvAnn.desc' "8< Scroll items in the items area.1<81 R1 return to edit box)80J NAME xfcreate jobfile[2]08U :if +/2wi'..*kwparams' 3/4/008<pU 7/28/01 R1 Default exit 07/10/01<8V Called by GWEquip and GWToData80V untie existing jobfilef~(0<h :case'?desc' Greggway Property<@S wi'*Focus' 08/13/01@<dW or 'Method' argument1 ... argumentNs<@W P' IS NOT A VALID SIZE',TCNLn@< 'TO DO: Write code for Enter key'<88U F wi'*.lvAnn.suppress'0n80WDAE2 (2D)wi'*where' 0<\X wi'..*edobject' U 3/24/00)<@X second edit object. 08/13/01@<Y ((wi'..*BNV')[15]) wi '*enabled' 0<@47)^(1warg)<128 alphNumsroH8 Kwcall'GetSystemMenu'H 188 c E'oo'wi'Check'(wi'*:name')C80tcclassesclasses, 'TEditList',i00lfclassesclasses, 'TDundasGrid'00fclassesclasses, 'TDualSelect'00f Clear description label00f CV1wi'..fIds.*children'00,g 1 GMarkIds IDs00g RGMoveKwLight wi'*text'04g wi'..*edobject' wselfd48$d (G H I J)2/'#'wi':*margins'80g :if 'SIZE1'wi'aplname''04$h :andif vi wi'..ed1.*text')44h wi'..*edobject' wself:44h :andif 0=vi wi'*text'g)48Xh :end default object84(iDebugTrace for debugging48\i exb84i'case: KeyUp' ('wself=' wself)S4D* Ttexta,1textb 07/23/01D4+ wi'..*edobject' wselfH44k:if (wi'*selection')=wi'*text'44l:if (wi'*selection')=wi'*text'44l wi'*textb'(textb(SEL)T)w44 m wi'*textb'(textb(SEL)T).44m wi'*texta'(texta(SEL)T)d.44owevent'' Required for Switch ?44o A[2;3]1FF wi'TextSize' 'OVL't44(pfuntie 99 Release the temp file44p JWG-10/30/01 Twi':*jobfilelib'44q read only edit field or lable.a44' '='  '=ff.ed1')('caption' 'Country')12hP-wself'ff'wi'*Create' 'TForm'('*caption' 'TOpenFile Example')Pl 'ff.mHelp'wi'*Set'('abouticon' 'aplwin.ico')('abouttext' 'Copyright 1999 Eric Lescasse')l`P8'Agent'wi'Merlin' '*Speak'(wi'Av2Ansi' 'Je sais trs bien parler franais!')``x right('0'+convert(char(2), datepart(month, E.DateCreation)),2)+`l8x0 0wi'TTitles'('Key' 'Column')'The Rest ...' 'Regions' 'Second' 'Third' 'Fourth' 'Last'l\/0 0'ff.ss'wi'*Create' 'TFOne'('wherelc'200  '>200' '>500')('*border'1)\Pw'ff.ed'wi'TextSize' 'This is a rather long text'('Arial'32 1)PT| :if vi wi'*text' 07/24/01wi '*text'1T`y0 0'ff'wi'*Create' 'TAboutBox'('icon'(('oo'wi'installdir'),'aplwin.ico')))`H A TForm object is a Form object with many additionalsH8 % L wi'*where'(M N+H I-C D)8ldy0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' 60  200)('caption' 'City')('attach'1 4 3 4)lP,z0 0'ff'wi'*Create' 'TForm'('*caption' 'TNavigator Example')PT4} :if (text)>wi'*limit' number of chars allowed1TT P'MAXIMUM FOR THIS FIELD IS <',(wi'count'),'> 'Tlwself(FM,'.ed1') wi'*Create' 'GWSize' ('wherelc' 5 78  '#8 5') ('handlers' 'size_Handlers') ('caption' ((4V2[NO]),' [9999]'))0f :case 37 left0hw0 0'ff.bnRetry'wi'*Create' 'TButton'('wherelc' '='    0 20)('*caption' 'Retry')h`z The 'must' property argument is the field value considered as missing value'`\y0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')\T@ TEdObjects (size1Qty), [size2], and data objectsTT@ Right move from an empty size object is a no, no!T`0 0 0wi'.ed4.Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`\0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\P|0 0'ff'wi'*Create' 'TForm'('*caption' 'TNavigator Example')PPP simple Message Box dialogs, or for asking Yes/No questions'PP0 0'ff'wi'*Create' 'TForm'('*caption' 'TListview Example')PT U(T,T[1])[1+T wself] new edit object1T` 0 0wi'.ed4.Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`T  GKwDefaults hi-light default keywordTP This object allows to display JPEG files in an APL+Win formhP\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')\\40 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')y\\0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')\` 0 0wi'.ed4.Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`T@ GMarkKws '' turnoff keyword hi-lightsTTh wi'..*edobject' (EdObjects[I]) 08/13/01T` Use the type property to specify Data Types and such restrict input in fields``( 0 0wi'.ed4.Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')`H$ current qty_Handler renamed qty_HandlersOld"H8z Kwcall'GetSystemMenu'H 08H 08/06/01 renamed current size_Handler qty_HanlersgeH80 Kwcall'GetSystemMenu'H 18\P '<>' as the second wherelc argument means: center the control in the form\hċR[flags] WGetSaveLongFileName specs -- Use common dialog box to get a file to open"h\0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\` [6] Zwi'.bnOk.Create' 'TOKButton'('wherelc' '=ff.ed1' '>'   0 112)`T GWSize'Shade' 08/13/01T\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')8\PH Use the method to display the help file or topicPH0{ SubTotalPosition: 0=totaux en bas 1=totaux en haut'H8+ ATZ+AT-AO8Hh A TFone object is a Formula One v5 or 6 object i.e.geH8 Fwcall'W_CreateFilter'S8\0 0'ff'wi'*Create' 'TForm'('ontop'1)('*caption' 'The wherelc property')8\h8-----------------------------------------------------------------------------------eh\h0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\` [2] Zwi'.ed1.Create' 'TEdit'('wherelc' 60  200)('caption' 'Name')`T\ T'' required for next :if statement if second size box01TP textwi'*text' capture edit box before KeyUp placesZPP( Called by SizeTabHnd in KeyUp case1P\,0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')\h if the selected file already exists. The user must confirmh\܍0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\` [8] wself'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '='  )`Tx :if 46=warg period 08/01/01T`0 0'gg.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Country')`\0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')\\0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' '=' '=')d\`0 0'ff.bnRetry'wi'*Create' 'TButton'('wherelc' '='   )('*caption' 'Retry')`P  SizeTabHnd by which time the defaultPT̑ UCSTOP 08/01/01TT  :return 08/01/01TTt :end 08/01/01TTȒ Ttext,T,'.' 08/01/01TT wi'*text' T 08/01/01TTp wi'..*edobject' wself 08/06/01TT# :if RGMarkKws text,T Mark full or partial itemstsT\l0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')\Pp KeyUp event will have reset wselfdPP  State: First size/edit box is empty 07/24/01P\ē0 0'ff.ed1'wi'*Create' 'TEdit'('wherelc' 100  200)('caption' 'Name')'\h 524288:OFN_EXPLORER - Display Windows Explorer when OFN_ALLOWMULTISELECT enabled.r'h`Ȑ0 0'ff.bnRetry'wi'*Create' 'TButton'('wherelc' '='   )('*caption' 'Retry')`hL OFNOFN, ,Dir lpstrInitialDir - Points to the initial file directory string.h`X 08/06/01 added wi'..*edobject' wself before all GWSize'Shade' statements`P wi'*fields'(C1warg) field typesP8pY :select(,O)[(,O)O3E]'8d8tcff -------------------------------------------------------------------------d\0sons7 2 1 1 2 1 3 1 4 3 5 3 6 1 7 6\</ Swi'..TextSize' 'Sheet metal ' bold<< Swi'..TextSize' 'Sheet metal ' bold<[0Ԝ:l N<8wself(FDUCT,'.l6') wi'*Create' 'TLabel'<X Enter(13) and space(32) have the same action as a tabX0 S[D;]1''0 8 00@ :if (S)DS[;1]100p S[D;]1 C 0 000j :if warg[3] ShiftTab00П GWSize'Shade'[00| wi'..*edobject' T08ܠ wi'apptitle' 'GREGGWAY SYSTEMS't'84X :caselist'>L ' '>LL'/40:return End of basic handlers00 'WhY DID THIS OCCUR ' 08 :if RGMoveKwLight texta,textb88P :elseif 1=+/2wi'..*kwparams'88 suppress move from an empty box'80x$ :elseif warg[7]64+2608 wres2 signal and error88$ (C[i]) wi'*caption' (KWV[i])288 (C[i]) wi'*color' (toattrs[1])8|:end<J'pr'wi'PrintTable' 'bbb'bbb('=' '>' 0 50)<0 wself wevent warg00h ED wi '*aplname'S0Xt wres'Returns nested vector of object User Defined methods'tsX0 :case'?UsedClassesByObj'AS0X wres'Forces a top level window to be "ontop" or not "ontop"'X<' '='  ) ('attach'3 2 3 2) lLdB'#'wi'size' screen dimensions in LC units.L,8 "handled by KeyPress" ,,D GEquipScrollIds,, R=1 Return to edit box,,S wi'*wherelc'(1G)C,2G ,,X :endn,, :endu',, :case'left',,ܫ :select E ,L Zwcall'AppendMenu'K'MF_STRING'903'&Topmost'LD wi'*value'((D0)[D[;3] Fexec C;1])D8 :if 0(Cwself,'_lab')wi'*self'8L Zdef"Rexec A;elx" "elx'R''''0'  RC"L0@ 'Print Error: NO DEFAULT PRN'0X 0 0wi'.bnCancel.Create' 'TCancelButton'('wherelc' '>' '='  )edX\{0 0wi'.like1.Create' 'TCheck' ('wherelc'('>ff.ed2') '='  50) ('caption' 'Like')('*caption' 'APL')('aplname' 'APL')08 E wi'*color'L0T '(Common)' ('(',wself,')') ('(',A,')') ('(',warg,')')TT$ Another better way to solve the above problem would be to createT, :if 0wself ,,D :else ,,p C'#'wi'xclasses' ,, :case'?XClassLicense' ,,Ȱ :case'XClassLicense'',pA@  Converts lower case character to upper case@@@ Comment: Tab(9) probable will never be fired@, :case 3 ',, :case 2 r',, Cwself,'_lab',,  :if~/':\'C ,,8 :if hndOpen0 ,,d :case'?clipsiblings'L,, :case'TTree'T,, :case'TPicture',, :if 1 wres0 07/19/01<  SOUNDD q :elseC$v :elseD` :end t@T wi'*selection' (1 0+wi'*SEL')')@ hW :endD P R1   SOUNDd  :return Y :return A :return PI function fail because it could no ntie the temp file.P HX SOUND  :endt' 4 :return  :end) A :case 45 t :return h :else  BEEP' << D(Cwself,'_lv')wi'*list'< :elseif 1=COT @( do not have a count but that one is implied.@w :returnrn0p State: nnn or nnns0  :endf  :endN $ :return x UCSTOP z DebugTrace D :return = FU/F (x - Rd Dual wall((ܬ T wi'*onSelect' ''($W :end'$$ :end$$$Y :end$$D\ GTurnOffIds$$\] GTurnOffIds$$_ :case'Overlay'$$ 'temp' ftie 99$$ :ends"$$( - DW Round ductL$$V wi'*text' T$$haAwi':sb.*status' $$H back fore$<d wi 'onClick' (D, '''bnRecall''')d<$\ H0$$ :endif$$ GSStoMAT tcnl,G $$ FSStoMAT tcnl,F $$\ GSStoMAT tcnl,G $$- :endt$P8 Z(size vector of 0) (items matrix) (numeric count matrix)PLZ:andif (wi'..*edobject')EdObjects 07/26/01L  :if 0+/FV $ :for i :in SV$\ԪA TOKButton B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfP'\H= :return L'ff'wi'Show'e $ FSStoMAT tcnl,F $ԭ :return4R^/R3wi'..*idparams' 2/3/004< OS((SV)-/RN)OS 2/14/00 check OS<8O 07/10/01 Called by GValidateItemsl8L wreswi'..?wherelc' parent's helpL0. Delete all duplicate items0<$  wi'SEL' (wi'*selection')<Lharray3array1 OVER array2 -- Place one array over anotherL,0V(/NV SS '.edS')/NVX,4R0 Fire GWSize'Shade' by default4@:)sdL|4o`|Ѻ؛`Һ Ѻ Һ l_ Llк h(кк7ԣ@($Ѻ`|_Ѻ^кWLѺκ  !Dκ"#$Ļ%<|&'HL{(<)p*+,(-.x/L0j12 3L+4 5 @0` :andif 0=warg[3]00` OS((FLAGS)-C)OS+SCRNW[4]0<( :if 12 wi'..*kwparams'<(GKwsOff;T;A;B;C;D;V;If(dv:endrnḼ :elseif 12wi'..*kwparams' 07/22/01L :andif 1=+/SV , :if ~2SV[OS+/RN]lue,, :if ~2SV[OS+/RN]V,$\ Y UG ,@Tb T2`J DMDM, DM,DM objects to handle move to the right01`T :if /35 36=1warg  added 07/15/01 End, HomeT< or 'Method' argument1 ... argumentNs<@x 1. Top frame: Mouse of keydown action1@LL  R0 07/16/01 No. Let's exitLP,}M(TO' ') TO change vector of chars into a matrixPl| wi'*style'1 Enter closes the form (default button)yl GInfo WSELF P\ Adds implied count of 1 for items w/o a user entered countPd ((X='')/X)tcnl  is same as newline characterdP BEEP 07/15/01PP< :if GRoom ID is there room in the edit box for the IDP ~ fall thruSV $0 :elseD$P' :end exit if ID in not an item (full or partial 08/03/01Pp R0 d :else <Lk onKeyUp handled in KeyboardHnd for now<<:if 1VSV^S 07/25/01<H There must be a number in the 1st edit objectH8L:case RA Top DUCT button exitn8D LA=initialized to skip refreshing the edit boxDD (CV[i]) wi '*caption' (IDV[OS+i])DH May be in the second edit box which only acceptsH8TRY Launch Greggway Enter Data GUI8L` :if 0=T 07/22/01LH 0 0GMarkKws'' Turnoff keyword hi-lightsHL GKwDefaults 07/22/01L$X wres1 b'$  P(V,V)[I] Tp SV[(SV^S)1]2 mark full id in a string of idseTP II+5 reqired offset for other than DUCT classP4 :end called by GEqupBackIds?'4$4 :end$8, Twi':*toindices' 0 09/01/0188$ :if 55S JWG-10/30/018  :end :end jXc:andif 'L'1T Second item must be a singleto 'L'esX<tQ change GWQty to GWSize 08/05/01<8 (jobfile[1]) xftie jobfile[2]8P[2] V t:end`\ ZD wi'*Set'('*laboffset'(G H-2D wi'*where'))('*labwidth'F)` P:else:end, Iwi':*toindices'n',$Y a hi=lighted item$ :elseC, :if 0=GMarkKws IDs, | :return (P wi'*suppress'1(( :if 1=wargx'(( wreswi'*''C(( wi'*onAction'C(  :else $:case'onMouseUp'D$(w CommonwargG((| C2warg'( o :endn  :elsef ( :endG H :else h :end  :endrn $h:case'onMouseDown'$:endX :caselist'TTrackBar' 'TList' 'TEditSpin' 'TDateTime'edX8 S'apldir' 'apptitle' 'check' 'countries' 'country' 'handlers' 'inifile' 'installdir' 'ontop' 'resources' 'sysmenu' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Center' 'CenterOn' 'Check' 'CheckClose' 'Children' 'ChStyle' 'CountryIndex' 'DemoShow' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'Show' 'ShowDemo' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'Wait' 'WhwndOwner' 'W2C' 'XClass'8H< wreswres,tcnl,"boolean: 1 if OK button was clicked (or Enter was pressed), 0 in all other cases"@ TEdObjects list of edit object@pTL AP5(AW wi '*wherelc'),0 extra gap between centered objectsp4 GE wi'*text'48 wi'*.e1.selection'(0,C)8D Gwi'TextSize'D(wi'*.lmsg.font')D4 GE wi'*value'4Lt VUIDV3Pwi'..*idparams' mark valid itemst8LL  :if 2SV added 07/27/01L$ (C D)2wargr$$ DC' ' '$$0 :case'apldir'$$: :end'$$x :endt'$Ld:if 1=wi'*ERR' Suppress duplicate firing of GErrorMsgL$ :case'?aplhelp'$$ C(D1D><\D)/Cn'$Lt mat, shop, field, and other edit boxes.)Ln V[]0 l :case'ontop' tells if the message box must be ontop or notsl:elsel( t'ffdb.bn1' wi'Create' 'TButton' ('wherelc' '>ffdb.list1'   ) ('attach' 1 4 1 4)l$x :returnr$$ notvalid:t$@* 10V SOUND :elseV$ SOUNDr$P:else2, Size check,0u 0 0GMarkIds ID0,T  :end,0p R1g0 4 BEEP'  H x:end BEEP, :end,s:else1, :else,( --- validate data(,\ or 'property' valuep',Dd Add lines here to construct TFormClass objectDu :elsei(x equipment edit boxrn(d: Awself D :elsen, :for i :in V/topFrames,( or 'property'value((T: wi'*border'1(( wi'*onAction'C(\X wres"Get or Set the message text to be displayed in TInfo form""\`pC if last item is the partial item select full item, catenate and exit`\X'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'ddd d mmm yyyy' \ :end L l@ d h7 'FULL or Partial=' (SIDS(^/((U)V)= U)/V) full or partial numbs);VhLT wreswres,tcnl,"next: '{ff.ed1 or ff.ed2 ...}"LXQA GWCombo B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfX0# :andif 'SIZE1'wi'aplname'0Pz P'THIS FIELD IS LIMITED TO <',N,'> NUMBERS'1PL/ wreswres,tcnl,"next: 'keychar object {char}"LPi wres'Get or Set the last object the have the focus'dPXA GWButton B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfXP wres'Get or Set the next object to get the Focus 'ayPp :endrn :endX sizes1 16 24 36 38 40 48 50 58 60 temp sizes for testingXX k wi'enabled' (TB) gray if no matchX0, A GSize1 B -- GWCost Object0X< k wi'enabled' (TC) gray if no matchX0 wi'*onMouseDouble' ''0(  FG  \ wselfA wi'*Create' 'Frame' create an TClass object'\0 === Greggway case statements0l * zXH St wi'..TextSize' (IDV[C]) (wi'..*font') caption sizetsX0 & GWSize'Shade'0X*error (~'HVAC'gwsys)/'*** gwsys is not set for the HVAC system *** 'yX0 wres'Get or Set caps'00'elx'error(^\dmtcnl)/dm'0Xl wres"Changes the color of the label to the specified color"X0P  Tel: (33.1)46.05.10.760d :if 1=warg if no property value specifiedcedT- wreswres,tcnl,"Syntax: 'object'wi'keycharr'{char}"1TTH windows fires the KeyUp event.TT) wreswres,tcnl,"Closes form if edit object is empty"sTh< (A,'.lmsg')wi( 'where'),0 0,G resize label according to form.nhT8 State: cursor adjancent to a partial selected itemTdx --------------------------------------------- Template property and Methodtdd0\tcff -------------------------------------------------------------------------tdpTL :if /2 4=wi':*cot' Air dist. or equipment takeoff 08/14/01p40 GWSize 'Shade'44`(EdObjects wself) wi '*text' ''4H0NVwi':fSetup.children' list of frame objectsHT. I1+I/I offset to the labels trailing numberT4XH sizes336 temp sizesd.4Hd square class is active. If the size is valid moveHT\ T(T wi '*opened')/T current and prior opened framesT40 Dir nMaxFileDir ,nMaxFileTCNUL4D` wres'Get or Set object''s keychar order'D4 (c)2000 Eric Lescasse[21jul00]4DT State: V[5] = an empty, all spaces or a '0'DHU (wi'..edobject') wi'*Focus' 07/06/01H, GInfoMsg P,D0= State: V[6] = an empty, all spaces or a '0'D,@E GKwDefaults,,4t warg''01,0< wi'*text' (text,T)nd00 :IF rc=0 cancel or error'0Dr 07/27/01 GEnableNext 07/26/01Dr0):)Q(H<S=<=,{< H Ķ l@ R SĶ ; 0 Iö ;,Ŷ ;Ŷ ĶYöPDX``8tԎ0V 88,Gо| (i!п"Hv#E$U%DD&<='V(X)V*,S+X, X-.J/L0X1J2,X34Y5PS6,Z78X\=9hO:TZ;8<h=L 4q wi'*count'(1warg)40d C'TEditList"Action"'0|Dp select first near matching itemDLd wreswres,tcnl,"next: 'sorder object {integer}"L<0 R[1]=1 data string O.K; 0=invalid data<T :if 35=1warg Move to the end of the text string1TDp Puts (writes) data into the job file jobfile[1]DLt wreswres,tcnl,"next: 'sorder object {integer}"L|D CNOCNO,TCNL,'CNO[3] Data file definition'nD@|_ Each size object must have a value@D the char in the edit box.D@ P'<',(V[3]),'> IS NOT A VALID ITEMD'@Ln 2/29/00 wi'*style' 2 4 16384 right adjustL4< Validates the misc data inputV4L wreswres,tcnl,"last: '{ff.ed1 or ff.ed2 ...}"LH [ assume that user does not want to enterH(D wres0 release hold. Let KeyPress handleD, :andif vi T,4q P'INVALID ENTER FOR QUANITY'40* :returns08ؘ GTurnOffIds)8$ =<5 8. Sub-contracts {future}er<( R=1 data string O.K(PL ID(T-1+(E)' ')Etexta,textb Tadded 07/05/01kP@ wres1 suppress default key action@w.f8sPd wreswres,tcnl,"Syntax: 'object'wi'last'{object}"P8: (OS RN)1 6 P=I8t @  GWCost'Show' move to new field@8)RGValidateMiscData;V;G;P;error;I;U;H8`!X ID(-1+(E)' ')Etexta,textb 07/10/011X@ ! wres1 suppress default action@@d% TEdObjects wi'..children'd@"dS wreswres,tcnl,"caps: 'caps: 0 upper and lower case; 1 upper case only"d@ wi'*onMouseDown' "GWData 'MouseDown'"@#H0 wres0 added to release mouuse clickHL\f wres1 suppresses default key actions except KeyUp.LP wreswres,tcnl,"Syntax: 'object'wi'caps' 0 or 1"PH Twi':*FMV' class frames names)HP( is active. Do not execute GWData'Shade'rPH$ 0P R[io+96+26]R[io+64+26] U0\ sizes1 8 10 12 14 18 20 22 24 30 temp sizes for textingr\$ \# sizes2 8 10 12 14 18 20 22 24 30 temp sizes for textingg\(% \( wi'*onTimer'('''',A,'''wi''*Delete''') onTimer on form\%`Ț --- After debugging consider opening and placing the combo_Handler handlerty` &\` tm('hwnd_',(2rc=0)'notopmost') 0 0 0 0 'swp_nomove swp_nosize'\Hr0  wi'..*edobject' wself'0\4 Misc classe Qty, Desc, Item, mat, shop, field, other\'ߴ'ִH(ִ0\( 77/' UCMDOBJ'W'0(ʴ0( NN, 'elx''elx'''10)´0p back, space, left, right0`h wreswres,tcnl,"color: an APL+Win valid object color specification"`\*8(, P'INVALID SHOP LABOR COST ENTRY'8Tl  wreswres,tcnl,"Syntax: 'object'wi'up'{button name}"1T0p* GWSize'Shade' T0|&0 + IDwi'..ed3.*text' rg0Xt BEEP 07/28/01 sound success.X+500@ wi'..*edobject' wself90`  rR>  o `4$ state: item in the edit objectn4H0H :case'Page'0t-8/ :if 1V^/^\' '=O wi '*text'8T  IDVIDV,((/SCrnw[3 4])-IDV)/ '' pad items if requiredT0- wi'*text' T70L]0 0'ff.ed5'wi'*Create' 'TEdit'('wherelc' '>' '='  '#10')L-Q.f0- TEdObjects r0.0x. GWSize'Shade'0@3 wselfwi'..*edobject' 2/28/00'@< wres'Get or Set the TButton type'<0/ wi'..*edobject' T0T+ IDNOMSCrnw[3 4]2 1 3 (SCrnw[4 3],1)(/SCrnw[3 4])IDM!T/02:return End of basic handlers0<< (wi'..*edobject') wi'*Focus'<T6 wi'*style' 0 16384 left adjust, suppress hi-lightRTؾ8  B('is' 'are')[+/R1,R2] 08/13/01841 M[(M=' ')/M]tcnul4X,E wselfA wi'*Create' 'TEdit' create an GSize1 objectX 211X wselfA wi'*Create' 'TEdit' create an GSize1 objectX4 :ELSE Windows version 44@ 2. Minus key decrements the items' count'@D State: V[4] = an empty, all spaces or a '0''DT 'object'wi'caption' '' to delete the TInfo windowT422ws.H4 :if~AA( AFwi'*class')'Form' 'MDIForm'1HD38XN:)I80ZTEXT PUTDOC CNO;tn;A;V;B;R0<ʹP wi'*scale'(wi'..*scale') pixel coordinatesP@` T wi'*onMouseDown' "GWYN 'MouseDown'"@4 Zwi'*font'(wi'*..font')4H& F23+(2F)2wi'*:charwidth'HT ) Right move from an empty size object is a no, no!T8 Rwcall 'CommDlgExtendedError'08,Hf :if ^/' '=wi'*text'xt,@5 'TOPMOST UCMD FILE MUST BE UCMDOBJ')@@6 OFNOFN,0 lpfnHook - Not used.U@@ :IF nVer = 0 If Windows version < 4@\  0 0wi'.bnOk.Create' 'TOKButton'('wherelc'('=ff.ed1')'>'   0 112)\\R :if( wi'type')'integer' 'float' 'positiveinteger' 'positivefloat'\ :elseo$ wreswres,tcnl,"Example: NAME'Lescasse'  0 0'ff.ed'wi'*Create' 'TEdit'('wherelc'   120)('aplname' 'NAME')"<  :if warg[7]8 32,(47+10),(64+26),190< :elseXp QTYUsStuvW]^XrZw\xPVN########$%&,,,,-.004445759?<???HHHHHHHHHIJKRRTTVWXZ^\^^c`cccfffghjjkmmnqqqptuvwxyz{xx~mjIWOSL O,R`V\Zyp0  wi'*text' '''0hL wreswres,tcnl,"key: a character string serving as a key in the help file"h< === 3.5 objects required case statements<t=8|s wi'*attach'(1warg)8D0> State: V[7] = an empty, all spaces or a '0'1D=`\w.f@ inherit TObject properties and events'@@ :if'oo'wi'Check'(F wi'*:name')D"@DX sizes1192 temp sizes for testingsD ` :endce X :endrn n :return `x  08/06/01 added wi'..*edobject' wself before all GWSize'Shade' statements` hg L280:n Y :endn(v :if 32=1warg((@ ===rn( ? :endn ,A GWSize'Shade',(V :if 0=wi'*text' (0, Twi'*text' 0 Z :endt $ :elsen$,X :elseif R=1],ntoattrsY :end4PFDebugTrace for debugging4,tQ === Enter key handler,,h T wi'*selection' 0 00,( :returnte(DXR wi'..*edobject' (V/O)D$L :return$ dH :case 8 (U :endf(T SOUND Sound error: A number must be in 1st edit objectTA :return$@H :ends'$TtC idsids wi '*caption' visable object namesT<D If a number there must be only oned<<D Move caret one space to the left<<W wi '*selection' (01 0+sel)<TD idswi'..fIds.*children' visable items objectsT4E :elseif wself1EdObjectsg44 wi'..*edobject' wselfrg4 :endn(G ===(@c more than one period is a no no.@4F :if 0=wi '*text'4@F :end error other than number 08/13/01@4@G :if wselfEdObjects4HO P'FIELD IS LIMITED TO <',N,'> DIGITS'H4dE Convert char to uppercase.'4G :endp1(H ===(D@ :endn(M :return(8 :elsen(LQ :return($H :return$ 8Y wi'*Focus' U L280: |Y :endg] H :return 4Z:case'KeyUp'rn @ :end Z RAV G :endtt(`@ GInfoMsg T( J :endP Itext'A SPACE' TA :elsen @F :elseif 1+/2wi'..*kwparams'@ 8K :endt $XK :endr$ (J :endP $HJ :endts$ lJ :endce $K wargr$  :elsen $J wi'*Focus'$ J :return $U wi'*text' Trn$$Y :if 9=1warg$$|K :return$$K :if 27=1warg$P wres0 release hold and allow KeyUp to handle01P$ :if 13=1warg$$$] :return$$\L :else'$D$M :elseif 39=1warg added 07/24/01D<\D wi'..*edobject' (V/O)'<D :andif (text)>sel added 07/24/01sDs :return(LN :end 0(@O Char key, other than a number, pressed])@0tN GWSize'Shade'0lhM :end 9(E :end](0T GWSize'Shade'T0N( GWSize'Shade'?(0N :return(T :return(@M texttext,T add the alphaNum char@U :elset(@ :return(H :return 08/08/01H@I UCSTOP signal error@d System is in the edit Mode. (i.e. the caret is within the data text string)1d80)/I;]~' '),'=' ..new lib@dml\dmd ID(-1+(T)' ')TDTB texta,textb get last set of charsgd`82 size/edit box has a number and the caret is within the text stringg`L handle tabbing between hi-lighted keywords1L( E'#'wi'version'((x :if 1=warg[3]($m :return$$0 GKwExit R$L Shift-Tab press. Move to the prior edit objectdeL@hC Global ELX must be set to: elx'Trap'o@l_ENT4 the MouseUp case statement4`@ 3@, hwnd0 none] ,<< removed left argument ductobjs 09/03/01t<@@Z'ff.ss'wi'rowtext'(1+10)(( 'Row '),1+10)@zP8,] P ('<',(R[1]),'>'),' ',R[2]8( GTurnOffIds(<@ 3/9/00 This check may removed<PV :andif /37 39=warg[7] 07/23/01PX you should not have any other UCMDOBJ file tied at the same time.gX,09 Cwi'..fKws.*children',L4 whether to overwrite the file.L̉|@ Go directly to the KeyUp case statement@8e :andif RGMoveUntaggedIdLight84% TT[11+T wself]014@la wres1 suppress default actions@?EAT=4W GWSize 'Shade'4;EXHfLd data_Handlers 08/07/01LLF :return 08/07/01L4 :if'Frame'Hwi'*class't'4,TQGEnableNext 07/26/01,4l wi'*textb'(textb(SEL)T)nt4<p :if 0=(wi'*text')~' ' 07/10/01<8 :elseif 22wi'..*idparams''8$f8fLfM`ftf35CffM 1ffR SgPf ( 1 2 3 4 5PX4 GInfoMsg ' <',(av[io+1warg]),'> is not a number'gXXxb selwi'*selection' (caret position) (hi-lighted chars) 07/24/01X$h88 ductobjsductbox object names for..8hp24t)dB :if 51fi (text,'1') over three decimals?1d(3 rRw "#'')*-//044449:AABCDEFGRRRRUUUVWXbbbb defghijknnopqu{{{{{{ : G@1 . 9/)MA]Rb{j<( :if ^/((1warg)>64)^(1warg)<123<x :if (1warg)(47+10),(95+10),110 kb nums top row, nums pad nums, and period 08/01/01x04 return to the edit box.g0( wi'*mode' GModes($HF :endes$0 wi'*text' IDs0L RV @EBH0 back, space, left, right00n:end 07/19/0100d file  Default filename00pw :if 'ID'wi'aplname's0:endPL wres1 Must block Window's default KeyUp actionPDؠ BEEP Signal and error.DP` to the far right. Move to the next size/edit objectP@t second edit object. 08/13/01@8 tGMarkID IDt'8|pqT to see if it will work in the round/square data fieldTL0u wi'*color' 255 255 255 added 07/06/01LH8VF  Optional flags. One or more of the following:HT0r:if 7warg warg will be empty during startup and anT\P o wi'*selection' 0 0 Move caret to its home positionPT'L4 :andif 0=vi wi'*text'n48pW F wi'*selection' ((T,0))8$dtopbutton_Handlers$8:caselist 9 32 33 34 35 36 37 38 39 408P@ :end 07/15/01wPD] last items is a number or a space.')DPl R108 <:if 0=+/V 07/25/01<@` :case 39 07/14/01 right arrow@TBPP wi'*onAction'C ELE20dec99)PHȀ caret at the end of the data text stringH4# IAVIDSM[;1] sort items)4$  10$$ :elsen$ dE :return3 RGMode;wself ,x :if 1vi T,$\ K1$$ :end'$$ :ends$$ GTurnOffIds$ \N :end D Q-F+T+X= P:endV H AW(AX' ') AX  :endif :else T[2] V1 , wi'*style' 6,, IDV(1+(T='')1)T,(` Additional labels(   :end $\ :selectwarg$(Ptext'1234 5678 9012'(( :case'?cols2scan'L((D warg78((д :case'cols2scan'c(4xG 0 0(topFrames[1]) wi'*Close'4T C1(FMV[NEW]) wi '*children' added  before ( 02/07/01 nested array of class names 4:if 9=1warg H4 :else elseH( :case 903 Topmost( :end :)6_o   V  \ p Y  4 8RGValidateAirDistData;V;G;P;error;I8<& 07/22/01 space, right arrow or enter keys<00 'Why did this occur ' 0:elseX FFREAD HIDS,8 map of valid duct types and matching parametersX  :if 12P  :end @ Mark selected items. Intialize offsets (OS)@p9P|f :if /(37=1warg),^/1 9=warg[3 7] shift tabP(L Afs[2]+/5,2,S[2]( t :else8 4P wi'*font'(wi'*..font')'14  R1 8 F1 2wi'TextSize'(C~'&')E84 :if 0=SEL4ؒ:if 14V1 8 :elseif ~(1warg)16 17 18 19c84 paint:\ (h  T wi'*text'n(@ (id,I) wi'color' (toattrs[1])s@HS sids(~viT)/T selected ids in the edit boxH, wi':*toindices' IXXT,, tframe wi'*children',D|X wi'where'(24I-1)(40J-1)24 40DL8c else caret will move an extra spaceL8Q --- Error and data saving routines84Dh (c)1999 Eric Lescasse[15jan99]4X? idsids wi '*caption' visable object namesX SOUND $P :case'class'es$ V[1]1( wi'..*kwparams' T(Х( fsframe wi'*size'(r4d wi'*onMouseUp' "data_Handlers"4Pn (CV[i]) wi'*color' (toattrs[1+SV[OS+i]])P@ OSSV2 new offset01@PH LA - Indicates the ID is a string of text, not just an ID]P  :else' P wi'*selection' ((T),0) 07/12/01P(*BUGx F wi'*suppress'1 needed to change control without triggering eventsx4 F1 2wi'TextSize'(C~'&')E4\ :case'Action'' $8A GWEquipData B;a$h@< MGIH 1 if control contains missing valuehD 07/27/01 wi'*selection' ((T),0)ctDLh Move cursor bar to the first space preceedingLPu :if 4=wi':*cot' 08/28/01P4 wi'*onKeyDown' "data_Handlers"4  :else , GW property' $ A  object name$D:andif ( ID)(SV)/IDV ID must be a marked itemD$ B  'property'$ <n :end end of backup key handler<P wreswres,tcnl,"Example: 'ff.cb1'wi'suffix' '$'"1P@ Second click on the same item label.@D wi':*cot' (3A) Class of takeoffD,m C(''C)/C,$ :case'allowed'$$| :case'?count''$0AF8r error'Unknown TEdit command: ',BP8`,V TFMV[wi':*toindices'] 09/08/01 active duct cla0ss frame`OO$ :case'count'T$,p T[T'^']' ',4 B(~0C)/' /c=',Ch48T :if~0Ewi'*form''8(< paint all items gray(<з P[2] SV 2/13/00 save new paramaters<ԦX( (SV KWS)( 2 3)wi'..*kwparams' keyword no, array of keywordsXTB8 :elseif warg[3] move left8RY $ :endT @ :endXT L:case'Action'' 4 ,| :if ^/wi'*mode'B,4 0 0(topFrames) wi '*Open''4,4 DESC((T='')1)Ta,X Assume that user does not want to enter a cost or labor value.hXTsgT I(DV=1)REPLDV convert to integers indices1T$hAGKeywords RA;BC$$ :endR $Lا V[V]T[i] actual countL< i.e. "/DUCT Change duct type"<(d :if ~C32768(sgh  :case'next' @ :elset' x :end $:if 91warg '$$ or 'Method'r$ P F SystemMenu A -- Changes the System Menu for form wself1P,Ĭ DESC((T='')1)T ', combo_Handler 4ģ wi'*onKeyUp' "data_Handlers"4P8 wreswres,tcnl,"pathname: complete DOS path name"PP wreswres,tcnl,"Syntax: 'object'wi'ontop'{boolean}"P<t IDV(1+(T='')1)T(IDSIDS[1]) IDS<$  :if 1=1GMode$вPD R GMarkID ID 07/21/01P8lD Partial and full items match char stringDn4 F wi'spiedevents' E4( i wi'*Delete'(4t wi'*count'(1warg)400 wreswi'*gaps'0X wi'*list'D change list propertyX8 (A,'.lmsg')wi'*color'(2warg)8( t wi'*color' color(>:else( t wi('*size' S)A(|OO0< R[io+96+26]R[io+64+26] l00P EditKeyPressrg0$ T1T$$ :endn$$( T1T$D  PP,tcnl,'YOU ENTERED <',text,'>'D( === Check keywordsrn((x*:if ~/9 271warg (D" 07/20/01 wres0 07/12/01 release holdrD4 T wi'*onKeyDown' 'GWYNhnd'4$ :ende$,l Cwi'..fKws.*children',0 CLASS'DUAL WALL SQUARE'0H :andif 1vi wi'text' 07/24/01TEXTH(| :orif vi text,T($̸:for i :in 1HA$( :if 37=1warg(D :if 0=CheckSize text 3/6/00'D,h and also in KeyUp.,0 GDataKeyPress043 :if 0=+/2wi'..*idparams'4D Note: The wres2 must be retained when exitingD4h wi'*texta'(texta(SEL)T)d40H === Handle character keys'0D BEEP Signal and error.DD\ :elseif 0=wi'*text' 08/14/01D0 return to the edit box.0, :end01,0Dd GDataMoveCursor00] a valid number.004  wi'*textb'(textb(SEL)T)')4D 07/20/01 wres0 07/12/01 release hold01DDR :if 1vi text 3/9/00Dt wi'*selection' (01 0+wi'*SEL') 07/20/01 move caret left one spacelxt, Fexec C ,,| Required:(F) EdObjects',DЭPwi'..*kwparams' get keyword params01D8, :elseif 12wi'..*kwparams'8(| :if 37=1warg(( wi'..*kwparams' Ps'((x :orif warg[7]=190((l wi'..*kwparams' P(TB$,% :endn$L^:if 13warg Enter key press. Check takeoff dataL X :endQ 80 :elseif 12wi'..*kwparams'8$ :ends$4 wi 'selection' ((text),0)4P4 Drop last number char in the size/qty edit object.01PH :elseif (vi text)^~vi av[io+47+471warg]HP| PP,tcnl,' Clear Button to start a new line'P$D :returns$(@ wi'*mode' GModes(4 :if 0=CheckSize textrg4H :elseif 1=R return to edit box 07/10/01H name_Handler \| GTurnOffIds moving to a new edit field'\, T wi'*text' '',44DebugTrace for debuggingU4@( second edit object. 08/13/01@0L :elseif 0=wi'*text'100 wi'..lDesc.*caption' '''0L :andif 0=1wi'*mode' 2/27/00ceL$dWHITE255 255 255$4Awself'oo'wi'*Create' 'TObject'4,8 wi'..fIds.sc.*value' U]),@a R1(l'oo' wi'appname' 'TT'( ̖ :endrn (L Twi'..*kwparams'(< \> ZdefZ create local Wtree function\4 wi'*font' 'MS Sans Serif'84 4T wi'*Focus'1 l8:end%TIEJOB,+8$W L1+/nnums,xnnums,080Ժ GMarkKws ID08 :while 0=NHLIDV[OS+/RN]c8HZ GErrorMsg ' WHY OR WHY DID THIS OCCUR?'HHThe owner of the current form is defined either byexHPl Skip if the mouse click was on a button in the top frame.PPP (27D)C WS_CLIPSIBLINGS  67108864  2*2601dP @:case'sysmenu' $` :endmer$  :else $FAE4wi'*where'r$  :endH $ :endmer$ _:case'where'H $_ CAG+.5AB-AG+E er$<(u Initialize jobfile[1]'new file name')< :if 0=+/SV T :select NO([ GTurnOffIds( :elseI@D] wi'..*kwparams' P reset keyword parametersD< :end 07/16/01<Pf :if ^/V 07/15/01 P, GMarkID ID,$D :for i :in CV$P V(wi':f1.*children') all of the forms childrenP P[1]OS R)tU:end:)[t俻ĿH%|»ش0p x\» <» P < \*tD TD$D 8 F wi'*color' (COLOR[1])8P wi':*jobindices' (2A) data stored in jobfile cno-9PhHL NFI 44A HVAC(n) numbers?HPg move cursor to the begining of the text edit boxP0  wi'*selection' ((ID),0)m0 :elsenH wres'Get or set the scroll bar orientation'HP at the end of a valid item or count string of chars.s'PT SV(ID)IDV ss ID flag partial and full itemsT0 Ptcnl,P,'named <',T,'>?'0$H:endrnp:returnL3 Round or square duct. Adjust TO for implied lineal feetLLHZSIZE GParseData TO;I;B;T;A;C;M2;CM;V1;BV;M;N;KNT;SIZE;V L  f88 Note: wself clicked keyword label8X4s :if 1SV ^/( ID)=,(ID)IDV Last items is validX8б 'Need to handle the misc. class'0188 LOSOS save current offsetN 8<  wres'Get or Set the combo style'<L This routine to be revised. there must be a better way.)Lė(xK'===================='(< V[I] 'X' delet LF<X܃ MFREQ A wi '*where' M[1;] unique no.; W[2;] frequencybX< Factors: section: typical shop field1<< DebugTrace 07/14/0101<L :if 0=F wi'*text' add routine 07/26/01L$:if 0=nc 'LA' f$tHZ :ende<$  subsection: typical shop fieldS< T:for i :in C6 D6 K3S~( wi'*class')'Check' 'Option'D@<"wi ':*toc='" (wi':*toc') 07/04/01'@T,V 4. adapt the :case'?property' or :cas'?Method' documentationT@ (t[i]) wi (('*Close' '*Open')[1+0 IS NOT A VAIID ITEM'D  :ends'  :end  elx'L2' 4C wselfA wi'*Create' 'Edit' C4D|F wres"Set the default button - 1, 2, or 3"DD K wi'*tooltip'(K wi'*caption')'D, :case'TComboList'H,D wselfT wi'*Create' 'TListview'('*scale'5)-D  io1 L wresR  :end    :return 4, wi'*gaps'(21warg)4(4 wreswi'*''C(0 T wi'*value'10 n tt~','n' D@ Empty edit box. Move keyword hi-lightDD$ GKwExit (2P)/3Pwi'..*kwparams'sD$ :return$04 State: ccc n or ccc c 0? --- Note:X t1t( Ttexta,ID( FF \% wi':*toindices' IX 09/01/01 indices may be addedny\@ wi'..*edobject' (T[I])@4 wreswi'*attach'014<n :if RGMoveKwLight texta,textb<  :return 0d HG ROWFIND F08 (NV[i]) wi'*caption' (TIDV[i])8 :endnt( :return CV( :else$p:end 07/29/01n$<4:if ~1'DATA' 'EQUIP' 'ID' wi'aplname'ns<<  :endnt 0 t wi'*color' (toattrs[1])0$ Additional labels$$P :if LIMCC+1\C$  :elsen $ܽ SOUND$Xd H V(V' ') V'NEXT TYPE YES NO PRINT NAME'sH` b wi'*Send' 'Selection'C tell the appropriate party`` I11+EDV wself move left one field 08/08/01`hxYbbb'tt'wi'Read'0 10 read 10 first records into character vector hd :andif ~/'SPACE' 'BACK' 'NEXT' 'CLEAR' 'ENTER' wi'*caption' 07/27/01d8 (NV[i]) wi'*visible' (~^/T=' ')t8Dh  Note: jobfile[1] is assumed to be an hvac fileD? :endgeT wreswres,tcnl,"Syntax: 'object'wi'Scroll' nboflines"T CC+1  , MB_ICONSTOP - stop sign,D6 :if ( ID)(ID)wi':*kwparams'DP wreswres,tcnl,"Example: 'object'wi'property'..."1PPpU :orif 'ID'wi'aplname' 08/13/01.PPY Question: Why does the result of 'object' wi'UDC function'.PPL St wi'..TextSize' (IDV[C]) caption size(wi'..*font')PP,]:andif W+/SV[C+1],2 4  t wi'*where' check for full rowPT fill empty mat,labor and other fields withT :end \$\ :end$H kwparams[1] offset in IDV for the upper left captionH,< MB_ICONINFORMATION - i ,0 :end]0,P DebugTrace,<x wres('#'wi'*apptitle')~0<0 GTurnOffKwssf0( textaNTn((T :else.(( paint all items gray( :return J$d :else$( t wi('*size' S)rg(@` state: User clicks on item in the items area@@ F(AX(E wi '*vcenter')~0)E@L$* idparams[6] (number or rows of items),(items per row)nL4L< wi'*text' U full or partial idLH- V1NV wi '*where' array of where valuesHpX V(V' ') V'1 2 3 4 5 11 22 23 24 30 31 32 33 40 50 60'onXP8 idparams[1] offset in IDV to the takeoff caption marked asPP$  P[ PDf :end 07/10/01DQT wreswres,tcnl,"Syntax: 'object'wi'noresize'{boolean}"TLܱ wreswres,tcnl,"Syntax: 'object'wi'APLHelp'"LL Z4 12'WS FULL LENGTH ERRORRANK ERROR DOMAIN ERROR'L4\ else in the gwsys\hvac directory4(@$ G(AY(E wi '*hcenter')~0)E @\ t wi ('wherelc' '=' '>', S) locate on same row following prior item\H| wres"Sort rows according to sort property"H8  T wi'*onChange' 'ItemsScrollHnd'88 wi'*selection' ((U),0)8OOhx'ff.tree'wi'CheckBox'2 3 5 add check boxes to nodes 2 3 and 5 and check 2 and 5eh( :if '.'ID(T wreswres,tcnl,"Syntax: 'object'wi'suffix'{suffix}'"T@LVV^(C1POS[2])^C2POS[2] Column position flag@<8 '#'wi'*apptitle'(2warg)1<<DI frame: fm.fRD.fKws, fm.fSQ.fKws, etc.<Hx JavJ sortH4 @< (id,1POS-1)wi'color' (toattrs[1])?@\Ħ wevent'KeyPress' required fof data_Handlers 07/29/01t\L  PQTReyLR<1\msegstr{delim} MATtoSS charmat -- Convert char mat to segmented stringm\TLh Passed tab and shift tab checks. Now check directionL tiL :if vi wi '*text' always legal to move fromL) keLX a edit that has a numberngLH C (MK)/C keep only specified classesdHT :for D :in C loop per objectTH Zwcall'AppendMenu'K'MF_SEPARATOR'0 0H8 b Ft Save new first item8HH Zwcall'AppendMenu'K'MF_SEPARATOR'0 0H8 T(-1+(T)' ')Ttexta)8< and state of the wi'*text' property<8  " Numbers and keywords ".8H.b8P The TInfo routine is buggy in Win20008Tx :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'T<H+ Use tab to next edit object.<$ :end'$D:if A=0  wcall'MessageBeep'1  :end Wrong pathD$ :return$D Must save currect text before Window's default=D( :if LIMd, matcherH,@:else0 D(2(D),1 1)Dn'0:endS@ :end:end 0 E' 'D' ',D0<5 :endDp :if 1vi text 3/9/00D(< :if 1=warg'(  :else X 2. By the Hwnd of the form pointed to by WSELF or containing thec>X<8GInfoMsg'Write function to file hvac data'<|m 08/11/01 IV/V First item with the max number of matching chars|@ wres1 suppress default key action@< GEnableNext 07/27/01<H 0 0GMarkKws'' Turnoff keyword hi-lightsHt"6<,,, Ld wres1 suppress default caret move 07/15/016L\Hy wi'*selection' ((wi'*text'),0) position cursor\H+ PP,tcnl,' Clear Button to start a new line'sH<UGH-CV(/CV ss '.ed')/CV Class edit objectseH`8m'rr'wi'QueryValueEx' 'HKEY_CURRENT_USER\Control Panel\International\iDigits'"`(" :andif 1=+/vi B ((p) :if 1=warg'( SOUNDhS1M P:endh UCSTOP?FUNTIE tndM' ',M T4 :elseR,A:return 07/14/01,, :return,'<4@ R1 return to edit box44t wI'..*edobject' wself T448 Flags[13]Flags[13] nVer4<0] R1 return to edit box0<Lr NAME'HVAC',N,'.hvj' JWG-10/30/01L08 OSLOS 08 RGRoom 3.5 Objects Check object8@ OSSV2 new offset.@D; GErrorMsg 'KeyDown: ',tcnl,(V),tcnlDX :caselist'TFOne' 'TSpread' 'TGrid' 'TWebBrowser' 1XDر ccc 123 cccc ccc 123 ccc1DD]wi'..edobject' wself 07/26/01D(@" :return(H* :andif (SEL)=T 07/16/01HXl NAME freplace jobfile[2],2 Same as file name to startXXp wreswres,tcnl,"Syntax: 'object'wi'XClassLicense'string"DXL<{ :if NHLIDV[OS+/RN] In current page?LH7 :end end1HT ccc nnn ccc Skip if cursor move from the end of textTL\@ retrievs current name of the job, section or subsection.L4b specifying file filters.4D (si[1;]) " Move cursor left."'DD` :if 3=wi':*cot' 3/24/00"D4( C('#'wi'xclasses')[;1]T4  :return,C :IF 1wi'*mode',L:FH3 wi('wherelc' '>'  '=' '=',4) ('=',FH1)),5 0 4L4  T(wi'*SEL')texta4(RGCloseMatch ID;K;V;T(4( U[1]0U[1]-1D4L|  Job variables: sections subsections factorsL,0B:case 39 Right arrow',4  wself'hh'wi'*Create' 'TDoc'4 :else,@ ' This should not occur',L|  P'<',RA,'> IS NOT VALID FOR <',A,'> MAN/HOURS LABOR 'LHa At this point the text should have only onesH4 N2'#'wi'margins's4$0 :goto paint$ ID,ID,P wi'*text' T',\\k right('0'+convert(char(2), datepart(day, E.DateCreation)),2),\8< here with matching "onEvents".r8Lc in a matrix to display all items in IDML :return0)$nVY EHQTYUsStuVvW]^XrZRw\xP3 GGGGGGGGGGGGGGGG-./GG45GGG:;<=GGGBGGEGG AG4T :return 07/28/014@ GInfoMsg B 07/08/01 GErrorMsg B@0H~ T WI'next' (FM,'.bn2')0 38QT 77%%%'(77-7772775774r(SV IDV)2 3  wi'..*idparams'4D`10 GMarkIds (IDTEXT,T) Revised for GWEquip.DQ q|QTYUsStuvW]^XrZw\xP3VN {{##${{(){{-./118888888:;<>?@{{{F{{KKK{{QQQST{\\\\\\{{cccfghij{{{ qrstuww{{z{|{{TZ`{{{{{{. {{ {{{ """{{{ {{{{  {{ {{{{{{{{!!%&{{+,..{{{234{{8{{{{{??A{{{{{{{{KLMNPQ{{UUXYZ{{]^_{{{{hhhh{{{{{{{{{{{{v{{y{{&#+(-<K@KB{\T\{mg{r{{!(%.,{AcKUP^Y<X inherit TObject properties and events<<\ to trace the order of execution.<H[ clear edit box; If empty move to prior edit object1HLL[ Note the reson for the .1 delay with could also'LH,V2'RD' 'SQ' 'OV' 'DWRD' 'DWSQ' 'DWOV' 'AD' 'MI' 'EQ'HHJ :elseif (0TEXT)^^/0=F text ccc n n ccc sHH  :if 1=wi':*cot' added :if JWG-10/30/01H@L wres'Get or Set object''s sort order'@:elseXX:)P>8hDDxdp ĕ Q P dO Oܬ`Ox,F\@|d` T!?"#($%&h'd( O)*P2+ R,-.l/,0t123d4p5T6U7U89p:,_;<<@=0>t~??@AB|CwDEFlWG HIdJKLMN qO0PhX<\ t wi ('*caption' (IDV[C]))<4u :case'THLine' 4<8 3=array of key words 4=descriptions]<HT% (warg in onChangeU[1])=index to G as if G.HTT State 3: Caret '' on or next to a partial or full itemTX t(FM,'.l1')wi'*Create' 'TLabel' ('wherelc' ('>',FQTY) '='  '>')XX 3 GPutFactors '' New jobfile. Install default factorsX`' :andif 0=/1 2F[I] Are there any on the new page?01`XHK (K L M N)IU where propertyXL@S be eliminated if the keyUp action was suppressed.LHR Keyword are only active to char input when inH\ :if /II2(F[OS+/RN])//RN flagged items in the new page?\`<0 0'ff.med1'wi'*Create' 'TMedia'('wherelc'5 5 '>244' '>328')('attach'1 2 3 4)`d< wi'*text' '' insurance. some tiems text had two spaces 07/29/01)dTc round, square, oval, rd dual wall, sq dual wall, oval dual wallTHd :end 07/28/01Hd I(SV[OS+/RN])1 select 1st item in currenct screendm 10Dlm--- Class of Takeoff Round, Square, etc. frames D4  nFileOffset - Not used.4@L 07/17/01 wi'*onMouseDown' "equip_Handlers"@D Creates a history frame with children: framesd?D, GWMarkID,:endIDVP[3]DH Kws wi('wherelc' ('>',Ids) ('=',Ids) ,'=')D@h R0 Return to edit box @Hd OSU[1]RN[2] new new offsetHnDP[3] rnL0K:if 1=wi':*cot' JWG-10/30/01)L@\ wi ('.wherelc' '>' ('=',FF,'.f1') 18 25)@4 Awi'..*fKws.*children's'4Tg Pwi '..*idparams' Ref to ItemLabels for definition')TLc wi'*style' 16384 do not hilight selected textL4_ nMaxFileTitle - Not used.4T_ :caselist 33 34 38 40 pageup, pagedown, up arrow, down arrorT@k wres1 May cause lock up in NumButtonHnd@LTb wi'*style' 16384 do not hilight selected textLHД P[1]OS save offsetH@l/ U[1](U[2]-RN[1]-1)U[1]+1@Hr :case 'SPACE' 07/16/01 Case statement addedH@L " Turnoff non-tagged hi-lighted item"t@L defdef, t wi'*def' save object definitionLH P'FIELD IS LIMITED TO <',N,'> DIGITS'HL U[1]0 move to the topsL@ح {formated takeoff prompt}LN GFmtPrompt CIs@8 hswcall'GetSystemMenu' hwnd 08Tt :if 3(text)'.' 08/06/0101TT} :return Return and let user change the nameVTLd :if NHLIDV[OS+/RN] In current page?L@8 (T[i]) wi '*color' (toattrs[1+V1[i]])tD@@L Create a matrix of the label objects@T8g :if vi wi'*text' 07/24/01wi '*text'1TP  U,[.5](' RD' ' SQ' ' OV' 'DWRD' 'DWSQ' 'DWOV')[CI[2]]PT4i PP,' Enter a value in each field or Click on the'TL@ the default keyup from firing. For example: If aL\x wi'count' 1000 TO DO: Co-ordinate with space in the printed reporta\@ New Subsetion: Set Default factors)@Pi LN=line number; CI= (cotwi':*cot'),tocwi':*toindices'P@_ wres'Get or Set object''s sort order'@L8l AA,'MISC Miscellaneouse itemsEQUIPDesc equipment'LL :andif 0=textb~' ' 07/15/01LL$ wres1 suppress default caret move 07/15/01L  scroll:l :endR4m :case 40 down arrow'4DUwi'..BCV' (BNV wi '*caption') button captionsD4 Item found in new pager4 P :returnHt As we see, form controls are not resized resulting"Ht :case 9D^ order must match order in the calling function==DPo (V[i]) wi'*def' (T[i]) define edit objectsP4 :if 0=+/^\texta=' '')4P^ V HistoryHandlers 'hsize_Handlers' 'hdata_Handlers'1P H8FSC(FH,'.sc') wi'*Create' 'Scroll'f88, Event handler for the keyword labels88| :while 0=NHLIDV[OS+/RN]88\Asplit lib'' select all jobfiles8LĀ AA,'MISC Miscellaneouse itemsEQUIPDesc equipment'L8 Inp wi '*onKeyDown' 'GInputHnd'8L,o remove after final check of toindices 3/23/00L@\RR, T Nested vector of option/check values@\vrDJL$ wi'..*kwparams' T save new selection vector4LLK THIS CHECK MIGHT BE REDUNDANT. Remove if not required..LhtsL8nR[C/C;]wi'Draw'('scale'5)(( 'Font'),A)(( '?Text'),B)1L$tsstsٹ ssnt@u === end of cursor left(37) routinest@u}ut,vnTS :if (text)>wi'*limit' number of chars allowed1T@ FMV: array of takeoff objects frame namesp@t4 QTY wi '*onKeyUp' 'GQtyHnd'4?'ay<,GHelp;V;A;B;C;H;W;NV;D;T;R,P Result: 0=memory failure, 1=OK, 2=Cancel, 3=Abort, 4=Retry,P88p t wi'*caption' 'RESERVED FOR HELP'8< \ (object) GFrames (takeoff frame number)<8T6 (E F G H I RN)Pwi'..*idparams'8,zCF WI'.fKws.*children'0,8tFM wi'Create' 'TFrame' ('*style' 7)8l}0F0LЀ,(F,'.ed1') wi'*textb' '',0 Single input edit filedn070$ t wi'aplname' 'OTHER'w0Lz Shift-Tab press. Move to the prior edit objectdeL(H(F,'.ed1') wi'*Focus'(*hܴ|ܴܴ0 V(T,'.ed1') wi'*where'0,t:andif 'MouseDown'wevent,,a textawi'*texta' ',,z IDIDV[SV2] ,4 wi'..*edobject' wself4l funtie TN The default HVAC1.JOB could exist with datal4('GErrorMsg ERR=') (wi':*ERR')D4 wres2 8\ V HistoryHandlers (T)/ 'HSOUND'd'8H2 ,:end0(8':if ~/9 271warg g(( :select 1warg((\ :elser(P oV'.f1.cbName.*text' 'f1.cbSection.*text' '.f1.cbSubSec.*text'P(  :orif vi text,Tn(+ H$h :endgt$v R0 , wi'clipsiblings'1,$:case'MouseDown'T$  RAV  ( :select 1wargn(( :return(( wi'*Focus'(( :return($d DebugTrace s$( :if 0=Vrn(D State: Caret is within a string of textD p :return $ :if /0>wargs$(h GWSize'Shade' (0v wi'*color'255 0 255ss0(t :if 1=warg'C(( :end'C(\ (A[i]) wi '*caption' (DEB((i,2)M)[SEL[i];]) write to top box\< File data or signal and error<H'rr'wi'DeleteKey' 'HKEY_CURRENT_USER\Test\Test\Test'"H4 A wi'spy'(901 902G)04, :return@ti right button menu will be displayedt@@ GInfoMsg'TAB KEY EXIT ON KEYUP'@47 ext  Default extension44 :if 0=+/2wi'..*idparams'4 0 :case'Demo' ( :if 1=wargue(\x CC,tcnl,'TObject"Action"' inherit from TObjectm\,L G'f',(ts)~' '',Xt wres"Changes the color of the label to the specified color"XPȧ wreswres,tcnl,"param1: parameter 1 description""P@ :end allows tcbs,tcnl,'.E0123456789's@(4 :if 1=wargn'(XA TCombo B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselfXT, wreswres,tcnl,"Syntax: 'object'wi'property'{value}"T< wi'*color'(0 0 255)(255 255 255)<HL A TSplitter object is a simple to use object to add'H, :case'TFOne'c',X wreswres,tcnl,"Syntax: 'object'wi'color'bgcolor{fgcolor}"X8 wreswres,tcnl,"value: 0 1"88Ľ :caselist'Label' 'TLabel'N8(t Commonwargue(T  :andif 0warg$$R :orif N0e$$ :if 0=t$$t wi'*Focus'$0Q P[1]OSOS+10104:select IDNOClassIdno must be an integer'D Z :case'up'y | :endn L wi'*tabstop'0 ELE6oct99L ,MSGBLUE GREEN D:andif /9 27=1warg 07/09/01D$:case 1001 Round$( T wi'...*Open'(  :case'?up' x DDF$ :endrn$xDebugTrace :end=Il BEEP$ GKwExit R$0  back, space, left, right0,, work as data_Handlees.0, :endt(& wi'*text' ''D( 4 :else8  :elsen(܈ :orif warg[7]=190(  :end' :returnrn$ GDataMouseHnd$ :endrn :end'` 08/06/01 added wi'..*edobject' wself before all GWSize'Shade' statements`$< Twi'*text' $$x3 :return$ :return t :endselect  :endrn( :endrn(( :else( g:case'KeyUp'  UCSTOPs , :andif warg[3], H :return=I  :return V[]0 $ wi'*text' Tn$ IDID~' '$x :return$ :endV$ :elseif 1=Rj$$ GTurnOffIds$4 :andif wselfEdObjects40 - Turn off key word hi-lights04 (si[1;]) 'KeyUp - warg=' warg'4$ skip1: BEEP n$Ĺ skip1 :end:endH8 :andif Ssizes1 07/25/018|KeyUp:  :case'caps' 4  GWCost'Show'4l|0 0'cf'wi'*Create' 'TChooseColor'('flags'256 16384)('colors'255 123456)('parent' 'ff')ml0 GDataKeyPresss0UG< wi'..*edobject' wself6[<PT textwi'*text' capture edit box before KeyUp placesaPhs a4 fall thru and continueg4 UG< Note: Esc will only fire on KeyUp events< < :goto KeyUp 07/11/01<\07/8 GMoveUntaggedIdLight' 8PP Called by SizeTabHnd in KeyUp case1P0 GDataMoveCursor04 :if /16 17 18 201warg4PX and integer during the KeyPress event'PP :andif /37 39=warg[7] 07/23/01PP C wi '*color' (toattrs[1]) turnoff all hilightsPPH wi'*selection' 0 0 Move caret to its home positionPP wres1 Must block Window's default KeyUp actionPP State: ccc c or cccc or ccc n 07/14/01P4 the MouseUp case statement4<X :if 0=(wi'*text')~' ' 07/10/01<<:if warg[7]8 13 32,(47+10),(64+26),110<8:if 'MouseDown'wevent 07/20/0184 wi'*SEL'(SELwi'*selection')488:andif 4wi':*cot' 07/08/0188p Turn off item and turn on keywords88 :else 39 Right arrow'88 tGMarkID IDs'84 wi'*texta'(texta(SEL)T)t40 GMoveIdLightD0D( Note: The wres2 must be retained when exitingD0$ GMoveKwLight010< back, enter, space, 0-10, A-Z, decimald<4l 07/20/01:elseif 7wargng4D:if 'KeyUp'wevent 07/09/01D4 :andif 0/8 32 37 39warg[7]4<< File data or signal and error<8@ T(~^\T=' ')/Twi'*text'8D :end 07/09/01Dd System is in the edit Mode. (i.e. the caret is within the data text string)1ddA ID(-1+(T)' ')TDTB texta,textb get last set of charsdd :if '.'text 08/09/01 08/01/01d4`si[1;] 'KeyDown - warg=' warg4D`Pwi'..*kwparams' get keyword params'DD :return return to edit boxDD :if 0=+/2wi'..*idparams' 07/10/01DDX :if GMoveUntaggedIdLight 07/09/01D LTAGGEDBLUE RED  :case 115n $ wi'*text' Trg$$p GKwDefaults$ H  TR[io+warg] $ wi'*Focus'$  :endselect 8 :return' $$ BEEPts$ T :returnnt $ :return$ l :ende $ :else$  :return $ :endg$ $ :return $D :returnn$ h UCSTOP $h :return$  DebugTrace $ :if 7wargg$  :end' $ Twi'*text''$ h :end $T:andif 2=warg[3]bs$ x :endg] $ :endrn$ :case'KeyUp'n $ :return$  :endn $  :else$ D :endrn $d :endg$ 5 input data.d $ :return$ Xe :return g :endrn ( :if 1=wargY(0, Ewi'*children'g)0d@ wi'*text' ((SELnewtext)newtext)@0\ :if F0 08u --- Set Items and Keyword attributes8X wi'*scale' 5 (wi'..*scale') pixel coordinatesXLX:case'onOpen' ELE6oct99L@ the char in the edit box.@8 sizes10 size not applicable8$cte8lec1y- D8 basic action as enter(13) or space(32)D| ,| 2. black ,TL GWData'KeyUp' all tab key action handled in KeyUp1TDW :andif ','TEXT a later date.sDlec Rect 0 cot Classes of Takoff04 wi'*type'(2warg)t4Lg:case'New' constructorNL,p 2. black', gr4 wreswi'*wherelc'4 L0 TT~' ' 07/24/01LD 1. Duct (cot) Class of takeoffD TL HW/font TextSize (C'CLASS OF TAKEOFF MATERIAL')LL| wres'Get or Set the associated GWClass dataclass'Lh . LO a"TCombo'Action'" added 07/03/01LLp:case'New' constructortLL wi'*onClose' 'GWInfo''onClose''' onClose on formLL@ wi'*onAction' (a,tcnl,wi':*onAction') 07/03/01L D< 5. Miscellaneous toc0 (none)D,L EDwi'..*edobject',lH 0 0'ff.cbd'wi'*Create' 'TComboDrive'('wherelc'5 110  150)('caption' 'Select a drive')"l8(vAwcall'sndPlaySound' 'UTOPIA~1.WAV' 188N :elseif 12wi'..*kwparams'80 wreswi'*type'04 wreswi'*aplname'4(ğ :returnys( 0 :return  :return 8 :else L :if ^/R1,R2  N2'' $( A  object name$$ B  'property'$$d A  object name$$ & or 'Method'c'$$L:case 1003 ovalk$$:case 1002 square$$ CLASS'ROUND' $D 6. Equipment toc0 (none_Dk.sc@ :if (1warg)8 13 32 33 34 37 38 39 40d@S @P Control Keys: back(8) enter(13) space(32)@@  pagup(33) pagedown(34)left(37) up(38)@@ :end make it an integer 07/25/01@D Greggway properties last and next added. 11/2/99DD wres'Get or Set object''s sort order'ctD\6 :andif wselfEdObjects and in the first size edit boxg\\T wi ':.mEscHide.*onClick' '' suppress TForm's Esc handler\< when debugging is completet<hand may be even selling objects which go far beyond the base functions shown in today''s proposal.'LP SV[I]2  P[2] SV  wi'..*idparams' PPXH0 0'ff.mView'wi'*Create' 'TViewMenu'('options' 'toolbar' 'statusbar')Xh, E~0DC wi '*aplname' find which children have an aplnamehX0=0 0'fmYesNo'wi'*Create' 'TYesNo'('text' 'Do you want to quit now?')sX4 textatexta,' '44 6 :andif (texta,textb)=1SEL44H :if (SEL)=texta,textb4,D UCSTOP SOUND',(d wi'*text' T'(XTGeee'tt'wi'ReadNested'12 2 same but result is a nested matrixXs8;6` N'pr'wi'PrintBitmap' 'ddd'(('oo'wi'installdir'),'skating.bmp')(0 0 500 500)'`\4L SIDSSIDS,RN[1]SIDS,MIDS tab to the right\8  sizes,0 size not applicable8L84; :andif 'ID'wi'aplname'8PL V(/V SS '.l')/Vwi'..fIds.*children' 07/09/01PL W1V field widthsL\L SIDSSIDS,RN[1]SIDS,MIDS tab to the right'\P TV WI '*color' 07/09/01P\H# 2/2/00 CV wi '*color' (toattrs[1]) turnoff all hilightsft\\w Note: Pad req'd for the last item.s'\0OC wi '*color' (toattrs[1])00MC1(F,'.fIds') wi'*children'0` A Question Dialog object fro collecting a single piece of input from the user`,4 GMoveIdLightrn,,N wi ('*caption' '1'),,N wi('*caption' 'PLUS'),,ԯ wi('*caption' 'MINUS'),8 wi'*limitwhere'(2wi'*where')80V wi'*SEL'00TO SV[1]0 t)0H OPENFILENAMEOPENFILENAME,wi'D2C'nFilterIndexH@ wi'*:height'(3wi'*where')@HO nFilterIndex - Initial file filter number.'H@0h':sb' wi 'SetStatus' 2 (('OVL' ' ')[1+R])tb@0 :case 36 Home0`XJ0 0'ff'wi'*Create' 'TForm'('*caption' 'TPopupMenu Example')('*size'200 300)`0lT :goto scrolls0T@R TEdObjects (size1Qty), [size2], and data objectsTT$ Right move from an empty size object is a no, no!TPl wi'..fIds.sc.*value' U set scroll bar thumbPTg (def, t wi'*def') fappend 99 save object definitionTPR Ttexta,UPPERCASE av[io+warg],(0=InsertState)textbPTQ P'MAXIMUM FOR THIS FIELD IS <',(wi'count'),'> 'TP~ Modified Msg Template function for various message typesP@` wi'*text' (texta,textb,' ')@0( :goto scroll0dFIL|Defaultsn T@8 wi'*SEL' (wi'*selection')@$\ :else'$<!!si[1;](k wres'GWCost'(d:if 0=+/SV  :return @d:if 0=TEXT SV[SV]19p:if 0=R (c wi '*Focus' ( F:end0( PROMPTd PROMPT,f ID='' turnoff hi-lights,xe H, warg[7]37, . 100(@t:if /1 2 4=wi':*cot'($c:select 1wargV$ Df :return o wres1 TZ SV[I]2 <Q wi'*onClick' 'TOKButton"onClick"'<,Le Pwi'..*kwparams' L,( :case 9 Tabt(l:endH:if ~2V1 :end$9 Cwi'*def'$8 :end,\ :for I :in O', { :endifn ,0FIELD GPutField VALUE;I;V;O,( :if /9 27=1warg(` rRwQYTUXVsVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVZZ\]jjjjjjjjjjjklmnoqqrsuuvwx}nVj\}< wi'*onKeyPress' 'GWDesc "KeyPress"'f<XІ It's a jofile but it's empty. Erase it and create from scracthmeX@dl(CV) wi'..*Show' display form@D] In top row. Do not move the hilightDP_ V on entry: 0=char rows 1=rows with user entered item countP$m SV[]0 $ m UDEB V/U `Hwself'ff.ok'wi'*Create' 'TOKButton'('wherelc' '=' '>'  )('attach'3 2 3 2)s`$p :return$ o D('A' '')[A] Hl2 CDM wi '*caption' sorted keywords namesH +GKwsMouseHndX <n 'GWSDOC' ftie tn1+/0,fnums,xfnums<Hܵ GMarkKws '' turnoff keyword hi-lightsH<X E[T]wi( '*where'), 0U< :elseif 0=+/V TDAGNewSetup RA;j;t;BV;CFS;FMV;LN;OV;R;V;WEVENT;WSELF;T;CV;I;N;U;PtTLL Passed tab and shift tab checks. Now check directionL$ :endV$Hn (CV[i]) wi '*visible' (~^/' '=IDV[OS+i])HdX2 It could be PI or M or any lineal item flagged1dL8:andif ~vi ID A number is O.K 07/27/01LL Catenate number to the edit string 07/08/01LTtZ(C[1]) wi'*color' (toattrs[2]) hi-light default keyword TP GMoveKwLight was fire in KeyDownsPT kwparams[2] marked items: 0=normal 1=hi-light 2=bright (red)TPȮ GInfoMsg'{roblem. Keyword should be hi-lighted if called'.P8@ GEnableNext 07/27/018 NN, 'elx''elx''''Trap''''(~si[io+1;6]''''TRAP['''')/''''dm''''(si[io+1;6]''''TRAP['''')/''''elx'''' ''' reexecute statement now4d' wi'*caps'(2warg)4,|v toattrswi':*toattrs',4SI[2;](fR(R' ') Rwi '*text'(0Ly:caselist 1002 1003 1005 20010v :ENDj :endtu P[2] SV 4w wi'*nomargin'1  wi':Redim''4@P  :if 1=warg[3] Move left@D\ TEdObjects 07/25/01MDTwres1Dwwres1rn(b :end H,Le textawi'*texta' s,Lv:elset:end0 8 LOSOS save current offset[84 wi'*nomargin'1  wi':Redim'4y IFV/FV@8$W bug check -- REMOVE AFTER DEBUGGED18843 wselfA wi'*Create' 'TForm's8, " Esc key handler7,0ht R1 valid sizer'0xx1 R1l yy8 RB+/2,1WI'TextSize' ID fonts80( size check revised 08/13/010(  :if 1=warg(t IFV/FVyDM,zF,\V :goto file,0({ :orif warg[7]=190(`4+ :andif (EdObjects)wself 07/24/01 First edit box?`< MouseClick not within the edit box10<ļDebugTrace(; :returnte | :return(| err:nD| :endrn :return  :return 0u UCSTOP u:case'KeyDown' c:return t@ i VP[2] =I  :endp' :case'KeyDown' (f :select 1warg'( :endifX:endrn,lF :end 08/12/01,04X :if 0LCV0P`r kwparams[4] nested array of matching keyword descriptionsP8:if ~1(UPPERCASE 4R[2])ss'.HVJ')8(b Hh H8L wi'*xText'(1C)(1C)C88(| :if 0(Cwself,'_lab')wi'*self'8$d :return,H (CFS[4]) wi'*Show's,4a retangular duct/air distributionA4,====additional properties,0 check for valid number10, wres'GWClass'V, :end01(d :if 0=textK(4  Hwi'.C.*Create' 'Label'4,V(EdObjects) wi '*text',(t :select 1warg(Ђ :elsen(܁ a'TEdit"Action"'a(D :endn :endn I3P wreswres,tcnl,"Syntax: 'object'wi'caps' 0 or 1"ePD :andif /37 39=1warg Left, Right1DD State: Caret is within a string of textiDXs :if 0=RGDataMoveCursor 07/09/01 open after debuggedX@+ GInfoMsg' Place error messaage Here'])@@T GInfoMsg 'FILE takoff data=',tcnl,P)@@ GWSize'Shade' 08/11/01@,,M CLASS'DUAL WALL OVAL',, Field must not be empty0,0x :if E'right' 0,@ P'DESCRIPTION REQUIRE', L Material cost OGValiedateItems $0 :if 0TEXT$Dp wi'*onExitError' 'TObject"onExitError"'DD wreswres,tcnl,' 4 Scroll Lock field'D :elsen$dDEFAULTGRAY BLACK$80\ check for valid numbern08  :if 0G[4] $ІACTIVEWHITE REDta$\X wreswres,tcnl,"Syntax: 'object'wi'dataclass'{description}"r\ ȅ :goto error $8 :endr$$  :elseg$4T{ E wi'Navigate'M0)44 E wi'*tooltip'H4, (E F G H)wi'*where',@ inherit TObject properties and events@` :goto L2 $t KeyboardHnd;wself$$ :else$, d :if G>K 9,DI :if ( wself)EdObjects 07/29/01DD wreswres,tcnl,"control1: control name"D0 wi'*text' T0(d :return((̐:if 1wself ss '.ed'(Dت wres"Add TCLF after every TCNL in text"D(0 :case'<>L'( :end2@D wi'*onResize' 'TObject"onResize"'D:endD0 C(~MK)/C remove specified classes1D(t :case'#>@ABhDEFGHIJhhMNOPRTVVWZZZ[\]^cccccdefhhb80M:4 :if 0=CheckSize wi'*text'40L for the question.04 wi'..*edobject' F40Ш :if wi'*text's'0$XGRenameJob B;wself$(RGSelectedIds;IDV;T(Dԡ wres'Get or Set the default directory'01D8 cursor at the end of a text string])8DRLA GRoom ID ;A;B;C;msg;U;H;title;T;V;wself;SADD  sizes296 temp sizes for textingDD6 Move cursor aft of the number stringD$` :enda$f:endrn:end:if 0R /DebugTrace4L add a trailing space44:case 2001 air distribution40 C(-+/^\C='\')C)0:elsed̲ C(FMV[NEW]) wi '*children' nested array of class namesdP? GWSize'NewSize' Switch to the first size edit bocP<Ls numbers or there is only a number in the edit box.V3LPk:else0 GWCost'KeyPress''0d  wreswres,tcnl,"Example: 'ff'wi'aplhelpfile' 'c:\appli\eurohelp.sf'"dT@ ID(-1+(E)' ')Etexta,textb Last item)THk :return Ld whether to overwrite the file.sgL8 :for i :in CV1+88h. wi'..*edobject' (EdObjects[I])80 wreswi'*ontop'00  'KeyPress - warg=' warg0Pf 2048:OFN_PATHMUSTEXIST - Only valid paths can be specified.PPL 08/03/01 (4EdObjects) wi '*text' '0'[PP wi'*selection' (((U)+((DEB ,' ',T )SSU)1),0)ayPL :if 0=T empty edit boxtLD K1+K reset count1D$t :case'class'Vs$4ForT@ ?? until the state of the edit object is saved.eT$| :for i :in CV$, SV((NHL)IDV)NHL,( :if 0=wi'*text'((h` wi'..*idparams' P((d- Twi'*text''(, Pwi'..*idparams' a.,D toattrs wi':*toattrs' udp created 10/3/99D  :end D ((partial0) (full0))GMarkKws (keyword or '')D, :case 35 Ends,h R0 0   wi'*Focus' , warg[7]39,L:else0T:end$ OS0 '$HR0 Default exit changed from 0 to 1 07/28/01)H$  wi'toolbar'1'$R :end$8 wi':f1.cbName' A$(Х N xfdup jobfile[2]( :end$<  Keyword exit$ :case 'MouseUp' Dp Note: wself may be set to the target edit boxorD0 R20 invalid size0, wi'*charwidth'Z',4P wi':f1.cbSubSec.*value' (V[2])4$GPopulate;V;A;B;C$$LGRAY225 225 225s$0) T "GWClass'Action'"0DK fac1 100 100 1 100 100 Default factorsmD$' :if N2sizes2$(! SIZEM[1;2] (,< GInfoMsg 'error message', :endT0y :if (Ttexta,textb)=1SEL cursor next to the last char?T<< wi'*onExit' 'TListView"onExit"'')<4p( ext  Default extensionws44(SV IDV)2 3 Pwi'..*idparams'44 :if (texta,textb)=1SEL=@4(T3 :if warg[7]27 9'( :end 0P wres'Get or Set the next object to get the Focus 'P$ N2fi S2r$8 KNT+/M[;2] sum each items count848 wi'*type'(2warg)40 ucmd']spy ',F,' /off'0HP Must save currect text before window's automaticallyH @  :else L :endnt ,(5 OFF,'.f1.cbSection',D IDSIDS[I;] unique or last of a string idsogD( :ende,v Requires (F) EdObjects',,< (1 or 0)GSelectedIdse,H@GInfo 'How did this occur? Check this "else" fall thru'HH wself1EdObjects 07/26/01H((F,'.ed1') wi'*Focus'(0 sizes1336 temp sizes'0H  Shape items into a nested marix with an empty in theH m :end 0l:case 1005 Dual wall square00:case 1004 Dual wall round'0,H --- Greggway Jobfile,4S I11+T wself1]40 :end1DK :end 07/10/01Dp :endd |:if 2nc'A'  T:if ~25fnums 0$ GWSize'Shade'0, :end,V[]0 H( T' ',(wi'*text'),' ' pad for end item error.H8(^ filters  List of file filters.)8Dk R1 return to exit box.D4 08/03/01 :if ^/V48 :if 35=1warg 2/27/0088 (CV[NO]) wi'*color' (toattrs[2])88 error'Unknown GWQty command: ',Bt8HJ 4:OFN_HIDEREADONLY - Hides the Read Only check box.H4y I48e :andif vi wi'..ed1.*text''8| ISL:else h R0tixL  Check for full ID in the Items edit field gw.fMI.ed3'LX Gfi,F[;11] library numberstX$ed1_lab (Q NEW: frame number(,f :if F[I] ,AX2D  @T wi':ontop' 1  :else(4} :case'> '(, (C E)GuiEvents'', wevent, C'TList"Action"',, wi'Exec'(2warg),D -------------------------------------------D0  :if F wi'spied'V00c :andif ~0,E0,pz :case'TFormOne',, wi'clipsiblings'1,( E1',',E(:if 0>NEW a :endif $ :case'AutoFit'$  :if H>0 $, G.5+GD$(x C1',',C( :return n$ :end'$( :if 1=wi':*cot'(( - Air Distribution'(( Delete Info objects((H NtoindicesM( :endN 4ReadSelection (T wi'*text' 'NEWJOB''($GInfo 'KeyPress' $0<T wi'onKeyDown' 'name_Handler'0( :for j :in CV[h]'(L0 :if( wi'class')'Combo' 'TCombo' 'TComboList'Lw 10T,toinices   :case 380 < SOUND'P ID(T-1+(E)' ')Etexta,textb Tadded 07/05/01PP :if ~vi V[1] Must add a check here for valid sizes.sPk :return'@ Informs and stops the user from continuing'@<  wi'*onMouseDown' 'GWDesc "MouseDown"'<< clear description label 3/24/00<@:andif 1^/( ID)(ID)3wi'..*idparams')@@T'wself=' wself 'warg=' warg temp trace@@L wres1 suppress default action@@8 V2(FEdObjects) wi'..*kwparams't@HF Iwi':*toindices' Type of duct takeoffH<* R=1 if a full item is in the edit box<<~ 2. Square (toc2)er<H  (EdObjects) wi '*text' '' 07/25/01HPh UT[11+T wself] Shift down. Move back"PH( --- data is o.k. 07/05/01HH UCSTOP 07/29/01 changed to UCSTOP BEEP SOUNDHP Fwi'..*edobject' 07/26/01P4,( wi'*text' (ID),wi'*textb' '4P,  'Skip check for key words if not in the 1st size box.'dPP\ VtopFrames wi ':*opened' prior top class frames3PL$@ Move to the next edit object if not in theLPl GOpenJobfile: Creates the Window's Load File dialog form.sPPT TEdObjects (size1Qty), [size2], and data objectsP, R0L 07/27/01 wi'*onMouseUp' "equip_Handlers" 07/17/01LL| he would have used tab instead of enter.LHL:if 1=wi':*cot' Class of takeoff 07/19/01t)H( :return(HhwndWhwndOwner -- Find the owner of the current formH@A Called by: topbutton_Handlers GWSize GWQty@$` :IF 0=nc 'title' $8 wi'*onKeyUp' "size_Handlers"18 Size10p :elseif 2=+/SV0$L :if wi':*ERR'$0г O wi'*selection' (VALUE)0̦ :return\<:if /8 36 37 391warg No need to check back, left, home, end moves\@"wi ':*cot'" (wi ':*cot') 07/04/01@:end08 wi'*onKeyDown' "size_Handlers"88= I1+EdObjects wself8:8 Event handler for the keyword labels8D Validates wi'*text' for valid items and countD`,) Single item hi-lighted. Move right to the next edit objecte`GPutJobName$ :return$$X :endf$(h GWSize'Shade'(( :return(,0 keywords.,(| GInfoMsg T((` wi'*Focus'(( :endn($D :end$( TEdObjects($  :ends$(0 :if 32=1warg(( :return(( :andif '.'text(( TEdObjects(( wi'*Focus'($t UCSTOP$( :goto L280(( texttext~' 'g((h :endrn(0  wi'*text' text0  v :endselect ,4 :return,$h( Twi'*text'n$$ wi'*Focus'$$,f UCSTOP$  :return ( :return(, TEdObjects,KeyUp:0 wi'*Focus'10( UCSTOP((` :return($8 wi'*Focus's$(P :if ~0Rrn(00 GWSize'Shade'10( :return((  :return((:if ~/9 271warg n(( wi'*Focus'(DM 08/07/01 wi'..*edobject' wselfnD, :elseif R=1010,(x UCSTOP( p :endce $ :else$( :if 1vi text(p :return$ :end R$4T wi'..*edobject' wselft4,d :endts,L handle tabbing between hi-lighted keywords01L(D Ignore all other keys($ :case 8$H GInfoMsg B 07/08/01 GErrorMsg BH$ :return$$ :end$ :endt@ 10T:endH,d wi'*text' ''t,# '(,:P[1]0  R1H2 H Xc R1dF DM((M),/M[2;])(/(M),/M[2;])A matrix of names plus blank fill1d  :andif debug' L wres'#'wi'VT'V query type'L( :case' ' ( CC,' ' T wi'*selection' 0 0 08/07/01TLa wi'*color' 255 255 255 added 07/06/01"L(TIEST@ :case 38 Up arrow: Move up one row to the closest itemTP idparams[2] marked items: 0=normal 1=hi-light 2=bright (red)PC :endL`:endfor S4U:end 8 :if 0MM+C-Q p :end4 wi '*color' (COLOR[2])4D Note: May be called by any other UDC function:9D8x :if 0(Cwi'*dataoldvalue')~' '8DT 07/27/01 wi'*onKeyDown' "equip_Handlers"ctD(̛ :case '?dataclass'(lTIEHJOB$|:if ~0=DEB text$$X DATA PUTHJOB CNO$H IDU,UPPERCASE av[io+1warg] 07/21/01H$:select 1wargV$, wreswi'..?count',$$  :goto L1HL$ T3 wi':*cot' 2 $ :elseif 51=Sms$Dx :end required for empty placeholder itemsDDĄLNGNLN Next Line NumberD(` :if 1=warg'(X1 :return   wres1I]  :return HX (CFS[2]) wi'*Show' adjs for five buttonssH4x9 wi( '*Set'),D4$D UCSTOP$0| wi'..*edobject' wself0H Called GWEquip by the onKeyDown and onKeyUp handlersH0 GWSize'Shade'Pe0L+ Use an APL version for mixed types, Booleans, or nestedL,L(F,'.ed1') wi'*textb' '',,J0 0wi"*..Close"5@,0. :end$ :else'$H Called by GKwExit; Displays selected takeoff setuptsH0 IDwi'..ed3.*text' n0 ):case'Action' ,D wres"Example:"],$d :end5$4$ Unlock and free memory.445 SS2 0'CAPS'174(/ wres'GWEdit'($ :case'?caps'$ ؎ :ends  :end] ܰ SS~0 rnD :elseif 0=warg[3] Move rightgDr :return$f :case'?style'$  :select 'DUCT' H (OS SV IDV DESC RN)1 2 3 4 6 wi'..*idparams'sHH move single hi-light to next keywordH(8 FF wi'*Close'(D,_ :andif 0=CheckSize text 3/6/00D( topbutton_HandlersV((8$ :end'((X Populate top frame(X :endrn,:endselect LL Zwi'*:value'1 ELE6oct99L,4 data into the jobfileWV,D( There must be a number in the 1st edit objectD :case'onResize' ,|  GWSize'Shade'.,,< :goto exitr,D - I(EdObjects) wself 08/03/01D:select Bst$8w wres0 $$ :endme$(T :case'labelwidth'e( 8\ :end1 \ :elsen 4 wi'*scale'(wi'*..scale')4(X wi'*onAction'C((Ԗ wi'*style'256(4\ :if 'OTHER'wi'aplname'd.4P8 V1V NOZ ( YC wi 'class'1(4Q:endO:end( wres(0 2)[WARG[3]]( T wi':ontop' 1 4@ wreswi'*orient'e4SV[]0 (L Data input areats(($ wi'aplname' 'QTY'(,p wres(0 2)[WARG[3]],  R0 VT(& FNInp,'.edInpLab'($8  wi':*ERR' 1$$ :goto error$(l RGValidateEquipData($T Shop labor cost $$l back forer$$! R=0 invalid data$, :elseif 0=1vi texta,,X :else,0 Exit if not a count items.)0( Cwi':Children's((D!GfiV fix number($ R (10) (text)$  :goto error (X Other material cost(08wi'*textb'(textb(SEL)text)0H< 4. Air Distribution toc0 (two sizes)H( :if 1=wargn(,x :if 0 IDV3wi'..*idparams' 08/11/01H0D!RGMarkKws ID;V;V1;V2;T;U;V3e0,3 '***ERROR ***' ,,dk :caselist 9 13 32,, C( /B ss 'HVAC')/B,PP V1[V1]~V[V] if last row was char row, flag it..P4f RA: DUCT, AIRDIST, MISC, or EQUIP40ؤ ERROR'*** V3 wrong lenght ' 0,+ RRAwi'...*idparams',Tl^ :goto paint reset initial screenTl|wself(wi':*FMV')[I] Active frame (gw.fRD gw.fSQ ... or class other than duct)l$L MB_YESNOCANCEL $ k MB_OKCANCEL ? :else\ :return Do not use GWData 'Shade'; re-shading not requiredEL\ C OSV''  Hhn IADM[I] index in DESC arrayfHd ( T(-ID)textaf'(Hd7 D(SV)/KWS hilited keyword namesH,IDID,(1+textb' ')textb,,8 :end,,` :if 0=TEXT, :Zfread tn,CNO ,  I(0=/T)/T,4 wres'#'wi'*inifile'4$d :case'?wherelc'$$\ 'ffdb'wi'Show'$Dm wi'*text' '' empty second size boxD,9 :if ~1wself ss '.f1',0< T wi'report'(JH)0$|g'wevent=' wevent$2:end(:else(0 State ccc nccc(P E[;2]Q column widthP4\ wreswi'*handlers'4, wres'Description',:else0< UT,av[io+warg] 0   :if Knt  wres'GWSize'((( wreswi'*'"'(,\ :andif 0=wi'*text'rd,44 re-file selection vector40 GInfo 'KeyUp {Esc and Tab}'0, :end 2/29/00,, :for i :in T,ȉ:end :end1\ Equip class has only one edit box. Must check for keyword\ 0P[2] (V)0  HE :andif ~'0'ID A '0' is a no no.HR:elseHt@ R0 Are any of the items selected?HD  wi':*cot' (3A) Class of takeoffD0  :andif 40=1warg0,B K0 :end.0pe KVwi'..*children'  K00$x :endL$0 wi':edobject' U0lE :else H}:case'Action'I ( or 'property'value((X :case'?borderstyle'((C :case'?question'(( :if 1=warg((L3:D,+/^\(WTT)C M ($P :case'class'me$$$} :case'count'1 $4 Iwi'*:height''4,T wi':l1.size' S,(D RR,T,(0V)/TCNL 7((5 RR,(DT),TCNL,I' ' (0H~ wreswi'*count'0к :end( F wi'Delete'(0 Second click on the same item0 ,:for i :in NV $ :return$`F :end 0|F :endf| SOUND08 :endrn$l:case 'MouseDown'$  OSOS(G)-/J (dH T wi'last' 1($D> FLAGS[NHL;1 2]1n$(G DESCsplit (S,1D)D((L WT wi'*where' ( P:elseif E=OS1 ( IVtoattrs[2]($F inherit $( T WI'last' 2($| L(-1<+/L='\')Lrs$4 Left click was on a label itemt4, GMarkKws'',(G wi'...ed1.*Focus'((,K :select 1warg($H M1M s$PU 0 SCrnw[1]ROWSSCrnw[3]0$ G :if (0T) $($P GInfo'CheckNumber'( no change$:if 1=wi':*cot'er$(T :if 0text(`(:else(K P[2] V ( M:if 0=NC'LA' p (d F wi'..*kwparams' P((T a'TEdit"Action"'((lK PF wi'..*kwparams'(,T wreswi'..?count', O:case 'Shade' $D :selectwarg"$$dN M1Ml)$( : :return($([ M1Ms$4 wreswi'*question'4(N :end0(( :if 0text($M :if fMultis$(' :elsee( Kwi'count',$ A  object name$(̫ :else(( :endor(( ZG wi'ontop'1((D ZG wi'*Wait'((l Commonwarg'(  :end'  :end <  :case 40M $ :case'?gaps'n'$$d :case'?font'$$ :case'escape'g$$`B wresR,Cer$$ or 'Method'e$$ B  'property'$0] :if 1' '=texta,textb00@R wi'*selection' (01+SEL)0,(  wi'*text' TEXT,, wi':*cot' 1 ,,tclassesclasses, 'TForm',,$classesclasses, 'TFormOne',, :if 1wself ss'Kws',, or c ,(p :case'= ''(D8 wi 'caption' ('Recall',tcnl,'Defaults')dD(^ :endws( :endTP:case'New't( :if 1=warg2](( :elseor(, :elses,4 Size checkd4 r :endf  :else'  SELwi'*SEL' ( :elsen  texta(SEL)T O :endnt $(J :return$$L:if 2=nc'debug' M$$ :end'$$ wres1ds$$ or 'Method'y'$( :if 0TEXT((( :return(4L else return to the edit box4( Greggway propertiesn($ wi'*text' T $$ :if 27=1warg$$X :if 9=1warg$(P :endXT((x :else !((X :end,'(. :return( TEdObjects((4 or 'property'value((* wi'*onAction'C(( D2wargC((D :if 3=D e( T:case'Action'   Awself $! :case'?text''$$ A  object name$$  B  'property'$$C or 'Method'e$$< :case'?mode'D$io1 :end14p :if ^/wi'*mode'4DO :end  07/16/01acD((T) wi'xtie T[2]'($ :end,@ ID(-1+(T)' ')T, FF GFrames 9' ("si" (si[3si;])((  wreswi'*'ue( |FF GFrames 1 x{ H ,p :endrn $ :case'Method'$|x :end| :endflio1 :case 'DESC'if ,; wi'*edit'A, SOUNDZ$ TIEJOBFILE $DS :if 1=+/^\texta=' ' 07/14/01DD Note: same action as an empty text object.eyD, :andif 0=1wi'*mode',$X  wi'*idparams' P$( (result)GGetField($Ծ wi'*Focus'$$ :for i :in C$(`ZGGetField FIELD;I;Vs((F wi'..*idparams' Pn((d- Pwi'..*kwparams'((0 SELwi'*SEL' C(T :return(T Populate top frame(( - Oval Dual wall((,FNV WI '*visible' 11(( - Rd Dual wallT((| - Sq Dual wallg($< wi'*limit'4$ :for i :in C  :ends  paint items :for i :in C :if 2nc'A' 1 $ U paint keywords$(D Character key handler(  Default items (K wi'*text'(D)($D Default keywords$$hPF wi'*idparams'$( :endselect($ P[2] (P[3])0 $$ Fwi'*idparams' P$$d textbwi'*textb'$$ Decimal buttone'$(  :return((@ :endn'((p :else(( R1((H R1 ($ Button area$$ TEXTtexta,textbV$$ P[1]0 $$ :endselect$$ 'No 2 suppress'$ D8:case 'KeyUp' $< :return T$ :return n  :endn'  :endn p:end$4 :andif 0=+/Ft$$L :goto scrollrn$$ History row names$$ܶ :ende'$ $ OSV''  $HOWFH wi'*where'$xDebugTrace D :endt'  :endwhile" $ AW[1]'MAJOR' $  :if 2SVn X:if nc 'LA'  wi'*Focus'  IDID~' '  :else'  :endif ,:IDID,(1+textb' ')textb ,$ :ifvi Dn$p:if ~IDn$\Y (D E)CM$$:case'onExitError'$Ā:return$ :return$$P K0 rg$$t :endselect$@`z wi'..*edobject' wself 08/11/01@ M P[1]OS ) $ :if ~2SV $$":case'onDestroy'"$d"tcff -------------------------------------------------------------------------dL  A TFileMenu is a complete File Menu with all its possibleL($X :case'>>9'(8 Tab to next edit object.8<< :if ~/'SIZE1' 'QTY' wi'aplname'<< wi'*selection' ((text),0)<0@ wi'*...Send'0D  wres0 Release hold. Let KeyPress handleD`D sizes1 6 12 14 16 18 20 24 30 36 40 44 48 temp sizes for testing`v:)3С u s ̼շ շ `ַ TF 6Dַ 0"(ַD<Pշ;Xзzӷ.>̵lqpӷtη0,x9E$ͷZ !!"J#&$T*%J&r' (x')u**Ј+,,'-`K.ͷ/LL0Pѷ1M2@ѷ34N5(u64O7ѷ8@9w:`L;O<lѷ=>H?@kABPCηDE8JF,GGPHhηIJܫKLMȇNPO(LηP3QHR1SCTphϷUT&<ҷVWXҷYZC[4Ϸ\D}]LS^pC_0з`xtaH+b{ch÷dze\CfXзgh+iHCjzϷkX$Ϸlx+m|n *ηo(|p4Cqtr=s9t3u CvwȚxxy|zF{}|}d~lWG`0*|@4DHH I\J8I|\<C\)(L,`P?А$,'X%l!cs @ TEXTTEXT,T add the alphaNum number@d wreswres,tcnl,"caps: 'caps: 0 upper and lower case; 1 upper case only"d:) n|  T(ܿ#   (/  LD 4 1P\$4@|ĕ8D|$D`LD7 !p"#C$\%&H'{(C)L*+,`M-x./T0г12`3C45C67L89: ;<<=1>8C?@A(B,CD^EFGHIxJKLMPNOܧPQR@STUtVW X0YHZ@u[\\]h^_`lTalb cdbe0fgOhHi0jDUkl,5m4noUpTppqr$stuvdw\x0+y(z{p|u}G~L`ؿ|x|ldLP\d\2>>'CKdGda\Gc4H4TH| K\ȄhEEC,>0C`@b|p7bcDNTcdV-T8PxT\`lO+HcEHTEpPU2@N7THKHG4EYD-@dLjPPX$L>Z t h% P  L,(<lcnXdQc T Pt$ $i!"W#$%&ȵ'd`(-) *X{+,-8c./08123@45d678l޿9:4;<x=e>?d@ALB'CDEpFpGd8HؚIJKԈLMtENO,P8QzRSTUL VWtXpYZ[\\9]4^z_`abcPIdedfdghiЊjhk(]8lmn@ofp\4 the character string.4X0 :elseif (fi text)>wi'count' check added 07/29/01X<| wi '*selection' (01 0+sel)1<')00):) \4'4d >  !r"#?$%&'(*) *+<,r-0./D0D1l2s3456789Hf:T;(=<=>? c@`ABlC=DEFG HAIxJAKKЪKDLM N4\OhP QDRS`TmUDVWXYZ>[\p]l^_`4>abchdze fugdh(ij khZlmX6n4o yp_qzrstthuvwx,yOz{P|}$~T((\hDpi@A@<O|@d drPgX,Lp| 14xhp]4qX`\pP1Ķ?@8ABCDEdFGH|DIdJpK41L8TMNO@P\QPRSTUXV<WDXYZtu[p\\]|^_Y```a<b| ctd|efghHiXVjk(lPmno`pq,rstu@vbw@4xlDyzg{|g}~L,E$48g6f|TH0\!6Lbpp <@X`@\   c|c(@ x(6 tdt-@4ftȜ0؊ |hX GMarkKws '' turn off keyword hi-lightsX\% wi':*jobindices' (2frad HJOB CNO) secno subsecno facno1\XTF renamed and edited (combined) qty_Handlers0814 & size_Handlers0814X\p Zwcall'CheckMenuItem'K 902'MF_BYCOMMAND MF_UNCHECKED'\8T File valid data in a hvac job fileB8j0)d :)LqDDx px)( T% l p C _8q?t@$Ap BdC D|ElFLdGԢH<IXJxKL9MN5OPQRSnT`UD'V9WLX>Y,RZ|o[LI\Q]^_`paPjb$cd|KeH!fpg&hij bkl$bdx 08/11/01 VV^U vector of number of matching chars per itemsx0 GDataKeyPress0< MouseClick not within the edit box<< A wresav[,256 256 256 256,1warg]' '<X| Reciprocally, if you need to change several variables and be sure toX0HuGEnableNext 07/26/010lt 08/11/01 U+/IDV ID number of matching chars per iteml< :if ^/((1warg)>64)^(1warg)<123r<Hd A Printer object alost exclusively using low leveleHL( wi'*where'((C D E F+G H I J)AD AE AD AE)LXH  r  msXPP F(wi'*ontop')'MF_UNCHECKED' 'MF_CHECKED'PTo :caselist'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'T<l wi'*selection' ((T),0) 2/5/00)< XT wi':*Show'' dS :if ~'DATA'wi'aplname' added routine 07/25/01dD Move cursor aft of the number stringD :else1Т:)(0VĵT(ܥ0@,  @ #  X\O\|:X , \ 0 !""#$%&h'5D()ؗ*h*+K,Ȃ-p.X/ȁ0$1H2l34D567B଺89D:@;9<=3>)?_@`A|Bt)CtD`+E<FGHI]JPBKLLxM0N)O~P HQ)R$eSTLUPVXW*X0Y8Z v[X \-]<^ _`Ga<bdEcJdeEfgDChDi8jkl6~mn~o`Cp<6䀻qIĀrJs4Jt Duv6QwTxyARzT{ ؾ|?@ABCDEGGHIJKLMNYYRSTUVYYYZ]],!:.P<YRT wreswres,tcnl,"Example: 'fmMsg'wi'Parent'formname"'"T<\ Display hi-lighted items description<0cCAD1+2 2(1C)wi'*where'0( Z,fi Z|A(l =@Y^rZ\ !"#$3w 99!"99&'(*(--.9993456999===?? $1&l0T Data O.K. Move cursor00) SIZE wi 'aplname' 'HSIZE1'0<" OS((IDV)-/RN)OS+OSB<8. :end NGNLN GFmtPrompt (wi':*cot'),wi':*toindices' (class, type {.i.e sub-class}((CV),'_lab') wi'*caption' N changed Lab to _lab for 3.6 Objs Rel 2 07/04/01x wres'Validity check: an APL expression which returns 1 if the control value passes the check'xD --- May be moving from the items or edit area'sD:)|m"0Sh!`S  |  H    ppXЏ|\l !|A"#$<%H&T'(p)*8+,x-.ĺ/0T1I2345 6666*7889,:T;<L=>? @AlBCDEPE,F GCH(IJ8K L 'M|Nd\* SV[OS+SV[OS+/RN]1]2 bright hi-light 1st id on current page\4code[title] GErrorMsg message T4HL Edit box not empty and with no hi-lighted items.H SVSV4:)HX؅Lh ؠ   Q 04Z Ԛ4tl(DI6,<]>' FMT (U LN)4O wevent,:)Hit@ $lT` N ,   ԅx8g /Hd`o aT\0c T`! "<#[$ %dj&' (X)0*d(+,,-¿.@j/01ܒ2i34,0 TT,ID,' ',textb0@< Space key{32} handler for qty, size1 size1'@4t CV wi '*color' (toattrs[1])4$ 'WEVENT=' WEVENT$HF Error: A character may not follow a number.H8 display default job in the comb field8@ R,8@@| wi'..*edobject' (T[1+T wself])@,| wi'*Focus'',0 moved from size_Handlers08140,0fm(1+wself'.')wselfX,9:)p$ ȯ0 ,7!"d7#$%X>&Z',(lA)-*+,D--.н/d0P123<405677?8h_9:[;,5<(H=>І?(P@<  wi'SEL' (wi'*selection')w<H_:case 'DUCT' change class and or type of duct takeoffH,0 wi'*value'(H~0) 001tH***Ajouter une proprit pour paramtrer la distance entre contrles (horz et vert); 5 par dfautt4PZ'#'wi'*onAction' 'Commonwarg'4$pB3wi'*where'U$V:)Rap8W(h:     `h7B;\`HHh6DPStotGZHD(iD8T`HX !t"8#$ %$&)' 'd(m)***k+(e,0-47)^(1warg)<128 alphNumsLL defdef, t wi'*def' save object definitionL@ cursor cursor one space right@T in the same shape and order as displayed on the screenTT idparams[6] (number of rows in the items area),(items per row)eTd* System is in the edit Mode. (i.e. the caret is within the data text string) dLa defdef, t wi'*def' save object definitionLH SELwi'*selection' save edit object state beforeHd(' sizes 6 12 14 16 18 20 24 30 36 40 44 48 temp sizes for testingdH$ GTurnOffIds blocked 07/09/01 2/25/00HT@ wreswres,tcnl,"Syntax: 'object'wi'sorder'{number}"neTdX{ wres'The fields property returns the predefined status bar field numbers'dd :if ~vi ID No hi-lights if it a number?dH~ wi'*text' ((wi'*texta'),' ',wi'*textb')1HL  OS = offset (io0) to the list of item captions G.Ld wi'*text' (T,' ') space for the caret 07/15/01dL (C[i]) wi'*color' (toattrs[1+F[i]])tsLHDX U[1]0U[1]-H[1] up one pagesHdXz wi'*selection' (1 0+SEL) move caret right one spaceed4 wi'..lDesc.*caption' ''])4T| WT,ID new edit stringNTT$ wi'*text' W write to edit boxTT0y wi'country'1 USA by defaultTT4 U(T,T[1])[1+T wself] new edit object1T4< classesclasses, 'TCancelButton'oS4T GKwDefaults hi-light default keywordTT GMarkKws '' turnoff keyword hi-lightsTdd System is in the edit Mode. (i.e. the caret is within the data text string)edL P[1]OS changed 1/15/00 no hi-lighted itemsLLp Single hi-lighted item. Set new new hi-lighted item)LH (CV[i]) wi '*color' (toattrs[1+SV[NOS+i]]).HT T'' required for next :if statement if second size box1T(^ 0Lx 1. select the whole property or method section belowL|MovDown;IDS;ITEMS;FLAGS;MAP;DEF;VALUE;OS;NV;L;DEFATTR;I;id;POS;OSV;NHL;N;V1;V2;V;fm;C;LH;VAL;OS1;SCRNW;TV|8 dot not valid in a size or qty itemd8T :if ~/'SIZE1' 'QTY'  wi'aplname' added COST 08/01/011TLP FF  F[I2]2 mark 1st item brightLT :if 46=warg period 08/01/01T@ wi'*selection' (1 0+SEL)t@L DG[I(OS(G)-/RN)+/RN] captions to displayLT< UCSTOP 08/01/01TL,j TH[E+I] Desc for hi-lighted itemLT :return 08/01/01TT :end 08/01/01T@ Inside additional case statement@ D2 :returnt wreswres,tcnl," 'ff.bn'wi'attach'3 1 3 1 attach button to right edge of form"t0> wreswi'*enabled'04I wi'*SEL' ((T),0)4@& (AZAW)wi'*where'AVe@8hG SS4 0'SCROLL'65N88 wreswi'*borderstyle'8@:elseif (1warg)32,(47+10),(64+26),96+26@X8Y wi'*limit' 80 Max number of chars allowed in the data objectX@t wselfED 08/13/01@@( =========================================@XD GErrorMsg ' THERE IS NOT ENOUGH ROOM FOR < ',ID,' >'sXXX wi('aplname' 'SIZE1') 07/05/01 must localize aplname objectsX\DG tGMoveKwLight text 07/24/01wi'*text'\@| Tab key handler for the Setup area)@@p :elseif (1warg)37 Left arrow@\ :elseif 37=1warg routine added 07/24/0101\XЭ :elseif 1<+/F text {cc } flaggs more than on itemseX@t " Mark last item or move to the left"@T,:) $S\T@O:elseif /V Vflags valid takeoff items@@` wi'*...suppress'1v@<  :return 07/16/01<8hG error'Unknown TScroll command: ',B8T to see if it will work in the round/square data fieldTX 3 GPutFactors '' New jobfile. Install default factorsX@ :elseif 0=GValidateItems'@4) wi'*onMouseUp' 'NumButtonHnd'44 wi'..*lDesc.*caption' ''D4@_ wi'*Set'(1F/D)@4@ elx'error dm (dmtcnl)dm'4@܍ wi'*text' ((SEL)1texta,textb)@\t :if 4(text)'.' over three decimals?\@  file fully qullified file name (with path)@P SizeTabHnd by which time the defaultPP KeyUp event will have reset wselfdPP$ State: First size/edit box is empty 07/24/01PhH UCSTOP signal error W/BEEP and return to 1st edit box 07/05/01"h$4wres1 suppress default action4`) r3 Wal : wreswres,tcnl,"nboflines: integer (a positive or negative number of lines)"lH` :if 2=warg[3]  07/15/01eHT4 ?? until the state of the edit object is saved.1TTе:if 7warg warg will be empty during startup and anT`J N/(1+/V)~V Minimum new number JWG-10/30/01`P  :elseif warg[7]190,64+26 added period 08/01/01'P\ :andif wselfEdObjects and in the first size edit box. \T R1 (DEB (,' ',T wi '*text')) 07/25/01TP0 textwi'*text' capture edit box before KeyUp placesP\ :andif 1'COST' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/06/01 \\f GTurnOffIds moving to a new edit field\\$ tGMoveKwLight text 07/24/01wi'*text'\Tܷ R1 (DEB (,' ',T wi '*text')) 07/25/01TT BEEP 07/20/01 REMOVE AFTER CONFIRMING NEED FOR NEXT TWO LINE1TP Called by SizeTabHnd in KeyUp case1PT --- Keywords were turned off when the focus moved from theo!TPK :elseif 12wi'..*kwparams' 07/24/01P\ File data and clear all edit objects 07/27/01\T, P'MAXIMUM FOR THIS FIELD IS <',(wi'count'),'> 'TXL Assume that the user does not want to enter a valueyXT$Y TEdObjects (size1Qty), [size2], and data objectsTh0 0'ff.grid'wi'*Create' 'TGrid'('*border'1)('wherelc' '>ff.ed4' 0 '>>150' '>>600')0dht wres'#'wi'*countries' this property is set in the TObject New methodt0  GWSize'Shade'm0\t :andif /'SIZE1' 'QTY' wi'aplname' added 'QTY' 08/11/01"\hpU T(~^\T=' ')/Twi'*text' drop trailing blanks 08/11/01shh  GInfoMsg '<',text,'>',P,'FOR <',CLASS,'> TAKEOFF DATA' 07/24/01'hht 08/03/01 V^/' '=T(4EdObjects) wi '*text' flag empty objectshh> P' Each field in Miscellaneous must have a value',tcnl,tcnlhP Called by SizeTabHnd in KeyUp case1P\6 :if 91warg suppress error sound if a Tab 08/13/01\ :endI@(( :elseif 4=G(4 wi'*wherelc'(D1warg)o4|k)hf Define limit and width in terms of number of average character widthsh@8  Inspired from the works done by Adrian Smith@8:)h(b$ !$ (r? @AB ClDءEJFGHPIJTKIL(MZNiOTrPQTRYS`TUYU^VĦWdXHYIZH[D\Y]$^_(`T>ảbcld0uetfgdgh3h`eit`jȱklm0ncotpq0rls tnu vlwxyz{f|,} M~|XP!ġ+t8+xl4S]Pl :goto L33 report error 08/12/01P<DDZ++/0 1 0 1/(K L M N)(1D)wi'*where'---<T T'apldir' 'aplname' 'apptitle' 'attach' 'caption' 'check' 'clipsiblings' 'countries' 'country' 'enabled' 'handlers' 'inifile' 'installdir' 'just' 'must' 'resources' 'suffix' 'where' 'wherelc' 'windowsdir' 'Ansi2Av' 'ApplyStyleSheet' 'Av2Ansi' 'Check' 'Children' 'ChStyle' 'ClipSiblings' 'Control2Var' 'CountryIndex' 'D2C' 'DecimalSeparator' 'EnumChildWindows' 'EnumFonts' 'FileExist' 'GetBitmapSize' 'GetCommandLine' 'GetWorkArea' 'I2C' 'Redim' 'SessionFocus' 'SmgrHandles' 'SsColumns' 'StyleSheet' 'TextSize' 'VT' 'VT_Dispatch' 'VT_Variant' 'WhwndOwner' 'W2C' 'XClass'Tl :return Hi-light moved. Return to edit boxl<a GEnableNext 07/27/01<L̜ Variable GRPCMDSPY is found in workspace SPY.W3eL^:)$0[$.d.-..?  < L1 H. x< 2 2v0[\-h)<1: D37l1p//+`p 2!D4":#$7%`&'(t)* *+,1- (.Ȧ/ 05102d>37415=6:71890: ;l<=>J?0@X4AB%\C4:D4{EFpG50t C1(Ctcnl) C0<G wi'*onOpen' 'TListView"onOpen"'<4 wi'*font'(wi'*..font')44TF D(162)wi'*style'4<  Ddef1(D=tcnl)penclose D<h0 0'ff.ck4'wi'*Create' 'TCheck'('wherelc' '>' '=ff.ed1'  100)('*caption' 'APL+Unix')h\lk BABA[BGBA] sort by increasing abscissa\4$ (F G H I)wi'*where'4pPwi':*Show'H wself(A,'.cbo')wi'*Create' 'Combo'('visible'0)H`x+ VV,T[i], '0' catenate the implied count placeholder`L :if wreswi'CheckClose' perform all close time checks (see CheckClose in TObject)3":)oȧA$^ u X1 4`  v ̯pp\!hF$8:Dh$ P!L"Ķ#$lI%T&',(,|)*dj+4,-ع.W/H 0h.1 23.4(/56t7I8$9:H;L8<t=>|2?4X :elseif 'SIZE2'wi'aplname'4@ Reads data from hvac items file idhfile[1]@L:)34#L0dT wi'onKeyUp' 'name_Handler'04 wreswi'*attach'(4Xĸ wres"Get or Set the 'list' property of the TListView control"X  :%*000023568=CCCCvKIKKNNOQQRVVX[bbeefhhjklmqqtt yz{} mc  F=9     ;;;;##$%,,,,333345;;;<?@AIDEIIOLMNOPUUUWX[:]\defjjkm:ttgxytttn@  ! #'%0*3C6C9Xqlz 8#B?UOjtm{xD:if( warg)'#'wi'newclasses' if new class...nD$ :case'property'$T DGQTYUsStuVvW]^XrZRw\xP3 FFF FF%&'()FFF./F3F56789:FFFFFAFFDFF , :end 4(si[1;]) 'KeyPress - warg=' warg44 textb(SEL)T added F 07/26/014D:endSF0Q-D+T+XxP N 'TRAP;B;;;V;W;X;Y;Z;MATRIFY;MATIOTA;MATRIFYOBJ;MATIOTAOBJ;TRAP;elx',L start defining local function0v wi'*property'C0x  ES/x<] error'Unknown TEditList command: ',B33<  :elseo Le 1. select the whole property or method section belowL  QTYUsStuVvW]^XrZRw\xP3  !"#$%*+-.1,9>?DILMOMTUZcdefgmnotyz{}yvs2>fb_\YVPQNL@F/'  44; wreswi'*margins'044))` RWCALL 'MessageBox' 0 message title ('MB_ICONEXCLAMATION MB_YESNOCANCEL')`0] GWSize'Shade'0< wi'*formclasses'(E,1warg)<`H wreswres,tcnl,"'OK'=OK, 'OC'=OK/Cancel, 'ARI'=Abort/Retry/Ignore,"`#:)̱X=mjTl O Xl  ` 4]  Oܙp,Mdl0<e?C@ATB*C\{D?ETF:G<HIJLeK0LܓMN(ODPQ$R0STdUV$:W@4X5YhiZ[\=]hv^t_` a b0Ecdlefbfl-ff(UghT2ijkTslOmDnopq4PrlbsL tp u@vwxHyz${|}L~ĩg, nqm$X-0m :if V=3 00 wi'*selection' ((T),0)0( OSV'' n8 Q  character string (the question)8 #r !!"0\ F wi'*selection' 00T` I11+(EdObjects) exitobject 08/13/01Th> '<>=#.:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 ',0h<l Note: Esc will only fire on KeyUp events<8 'sw'wi'*Create' 'TStopWatch'X8\:)&jN%(i< +|Kdvlf  h(f  0   P/\П8 xe̠DeTȭ DL'eK|d\d$pfb a!Hdc"#($P-W%J]&t'](1)$*+J,-.d^/x{0\1,2y3gS4@56tj47E8j9>߶:; <@ ޶=>[?H?@ܶ@4A)B?tڶClDE>dضFGtHӶI܂J$KgLMNOP(QR@STUVLWXYZ[XJ8x\ @\\[])Y^_`a)b|cld`Yexf`ghi$jk$l %mn|o(pPq rpst|)uX)v$wP,xXyDzlZ{xbDZ||,}`Z~8b[lRXX\4)a Ld[؀0\<[.W < MouseClick not within the edit box<H0)x t'ffdb'wi'Create' 'TForm'('*caption' 'LIST dblist VALUES')  remove ('list' (nl 3))/x9 S2000042035 69500043 1955271549 1684900332 1747221641 843417958 39684454 441289062 34031046 35603910 37176774 411078 1983942 3556806 1201225685 1166606360 1166632560 1166632448 1166632472 1170695728 1711276104 16776776 1718101076 16776520 1919427668 1086335780 1991621239 1166691909 1946172421 1946238010 1946303522 352145370 352210928 352079860 352014328 351948796 16721152 202833920 1962934272 1166610501 1962087602 1166610501 340101962 55461257 1201246099 1425997826 781031388 1680108683 1992245205 1166627397 491096662 510918716 108265788 175374908 1166779371 1447397672 1166740715 1380288808 1993587317 1166693957 474298884 1166576501 1946172468 1946303501 1946369033 8918779 1170669567 3932255 296207 1170604032 1300963423 1380778826 994989451 58545749 1990830709 1170627413 1300824629 1146456384 487079541 12353521 767819777 12876529 1166671871 611058488 611058544 62416496 609550080 578948968 1946157057 1956371348 1972059261 1246071564 1957798517 401082445 1962934272 1166746741 1448971090 400536181 6 997998549 1564197748 226824004 1962934272 877497025 930357037 736863475 1955838583 1020568763 751546998 1615170016 522992757 1166727307 1616218975 880080661 896817933 1308601075 10074528200X UT,av[io+warg]0< or 'Method' argument1 ... argumentNts<:if LIMC+1x[ wreswres,tcnl,'The result is a 4-column matrix (as produced by the Windows EnumFontsProc'Ix@X GInfoMsg 'FILE takoff data=',tcnl,P@@@d GInfoMsg' Place error messaage Here'@8p wi'..*edobject'(EdObjects)88 sizes,0 size not applical8@(wi':*FMV') Switch N Open selected class>@4X :if exitobject1ED04 0. GEscHnd 0 :case'TEditSpin'010<4wres1 suppress all default key actions<0P :if 5Dwi'*..fields''0T`, wi'*onAction'(A,'"Action"',tcnl,B,'"Action"',(\tcnl=C)/C)T< and value for this field.)<0l R0 'ERROR 4' 07/05/010HR wi'*Focus' 08/06/01HltTT,T(V( 'Combo'),( 'Edit'), 'Button')/'gw.f1'wi'*children' added Button JWG-10/30/01l`7 size/edit box has a number and the caret is within the text string01``t :andif ~/'COST' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/09/0101`` P' Each field in Miscellaneous must have a value',tcnl,tcnl``D Zwi'*..SetStatus'(D5)B show Date/Time in field 5``R'0 0'' ''' pessimist: execute nothing`P09 GTurnOffIds 07/08/01PPT :if 4=wi':*cot' 07/08/01PP ID(2wi'..*idparams')/3wi'..*idparams'PP:end === end of enter(13) key exit for a data edit object.PPD :if ~/'ID' 'COST' 'SHOP' 'FIELD' 'LABOR' wi'aplname'PP= wres1 Must block Window's default KeyUp actionP@t :if 1warg[6] 1 flag a repeat.'@@'wself=' wself 'warg=' warg temp trace1@@d TEdObjects list of edit object@p60 0wi'.www.Create' 'TWebBrowser' ('wherelc' '>ff.url'  '>200' '>')('attach'1 2 3 4))"p@ Move to 1st edit object alway valid1@p( K\H\I0,1I marked by a 1 for those starting with $"p@T before moving to another edit object.@@ :if 1warg[6] 1 flag a repeat.1@@ "q'wself=' wself 'warg=' warg temp trace@<  move to the prior edit object<<L  move into an edit objectT<<  wres0 07/10/01<<1 Cursor at the end of the text string<<p! error'Unknown GEditList command: ',B1<8L# 0 0GValidateItems88! F wi'.lvAnn.desc'(2warg)8<2 cccc cccc1<8" wi'*aplname'(2warg)008<`" wi'SEL' ((T),0)<@ l select first near matching item@<D9 SV2Pwi'..*idparams's<<؎ OSLOS  IIDVMO<8$e wresF wi'.lvAnn.report'8<N WI'..lDesc.*caption' (D[1]) 3/23/000<8# ======================88# ccc or ccc nnnr88# GMarkIds ID)88xO GTurnOffIdsss80tE3(K L M N)(1E)wi'*where'00$ :if (1warg)33 34 38 4000$ :andif 0=+/SV 2/23/0000J GEquipScrollIds04 wi'..*edobject' wself.4<y 07/23/01 initialize required variables<hԍ Show calls 'Redim'1 (the 1 argument suppresses the Resize event on the form)hPl 07/24/01 :if 1=warg[6] suppress repeat callPPt' :if wi':exit'  wi':*exit' 0  :return  :endPT GMarkKws '' turnoff keyword hi-lightsTP' :if ~/'SIZE1' 'QTY' wi'aplname' added COST 08/01/01PT( GKwDefaults hi-light default keywordTT( U(T,T[1])[1+T wself] new edit object1T< t(frame,'.l',C) wi'*Create' 'TLabel' ('*scale' 5) ('wherelc' ('>',F) '=', S) Position under prior first item994 wi'*onMouseUp' 'NumButtonHnd'4\f :if 91warg suppress error sound if a Tab 08/13/01\T4 TEdObjects (size1Qty), [size2], and data objectsTT* P'MAXIMUM FOR THIS FIELD IS <',(wi'count'),'> 'T\* :andif /'SIZE1' 'QTY' wi'aplname' added 'QTY' 08/11/011\Ph( RAV  R[io+96+26]R[io+64+26]  TR[io+warg]PP+ takeoff edit box to one of the the setup up edit boxPPD, :end 07/08/01PT)FFFF wi'*Create' 'TForm' ('*caption' 'Greggway Systems') 'Hide'T`e 08/11/01 V(ID)=(ID)IDV flag selected itemsts`T wreswres,tcnl,"Syntax: 'object'wi'fields'fieldtypes"TPQ takeoff edit box to one of the the setup up edit boxP\+ was empty. Assume he wanted to more to edit box on the left.\\<. :andif wselfEdObjects and in the first size edit box)+\\' :if /46 48 96 1warg first number must not be a zero "0"\`8- User pressed the backspace key when the edit box 08/13/01`Tx --- Keywords were turned off when the focus moved from the)TT/ BEEP 07/20/01 REMOVE AFTER CONFIRMING NEED FOR NEXT TWO LINET`P/ GWSize'Shade' Shade/hi-light edit objects``X0 :andif ~/'QTY' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/09/01`\ IDV/IDV select first matching item\h G(FO)'fmt 100 100 10000 100 100ts[3 2 1 4 5]edX8u :caselist'>L ' '>LL's'8X :elseif (fi text)>wi'count' check added 07/29/01X4 :caselist'=LL' '=L9'(24<wself(FDUCT,'.l4') wi'*Create' 'TLabel'<,D HG ROWFIND F ,d H( :case'GetAplNames'(, :if G[I] ,, wi'*where'H I J K ,ܜe, :if 2=G1warg ,d>t[, > :end ,(P :case' '(DXDRYdh Hwcall'FindClose'H Yep - ignore anything else pendingedDF( FF1D(FN4A0FCKHA@6: setup_Handlers ,85 wreswi'*just' ,Ft.(= :case'?GetAplNames'(,` wi'*caption'C ,DD ,DF wi'*sysmenu'D ,> (F :case'?FullName'r(4:(> :case'>#L'(AEM(e@@l?@<0,<= :if tcnlF ,(Tq Plibd fi D (00 :end]0lD,PC Iwi'*:height' ,pF@OO,x> wreswi'*where' ,|C(HE (' 'F)Lfn7'(<'odbc'wi'Exec' 'select * from shippers'U<P wreswres,tcnl,' 7 regular field (minimum width)'PX  6def 5[((3^.=4'MATRIFY')1)-~io]2 fix MATRIFY"X<@ wi ('wherelc' ('>',H1N) ('=',H1N), S)<<'sw'wi'Reset' reset the stop watch'<lx'ff.ed'wi'html' '

Big Title

This is a sample HTML page.';l( :end (0Q BEEP signal an error0Hд(NAME FNAME AGE COUNTRY)'Lescasse' 'Eric' 49 'France'H<J'ff.pp2'wi'*color'(255 255 255) (0 0 0)<< Note: these examples assume Windows 98<Dt3 (AZAW)wi'*where'AV1D 8 H0 'Print Error: RET DEF FAILURE'0m H4  :case 27 Esc key handler'40 WI'*SEL' ((TEXT),0)00g :if ' '=1textae'00L wi'SEL' ((texta),0)0DT] PP,tcnl,'YOU ENTERED <',text,'>'DXu0 0'ff.ss'wi'*Create' 'TFOne'('wherelc'0 0'>>' '>>')('attach'1 2 3 4)XD2 IT wself index to current edit objectD0Db :if /T wi'*caption'0< wi'*textb' (textb(SEL)wi'*text')0<0% invalid sring of chars.0$ld wi'*font' bold$  ALIBD FI A 8S :return continue in calling function84H(SV IDV)2 3 Pwi'..*idparams'4t :else1( :case'?P_W_Read'ID(< om)<,  (V) global: texta textb,,U :caselist 35 36 37 39,0! wi'*text' T)00 R1 Return to edit object08g M,/(1+Mtcnl)M8X00 This objects can convert any APL nested array to HTML embedded tablesX0|g 10 07/14/01V08S Back space handler-----------------t84% and shaded data/edit object48V Note: In the :case 'KeyPress' routine88\ Z'#'wi'*installdir'Zs'88T Inp wi '*onKeyDown' 'GInputHnd'88T Inp wi '*onKeyDown' 'GInputHnd'c84(si[1;]) 'KeyUp - warg=' warg14,l^ :endp',8[ wi':FMV' ((wi':FMV'), FM)8Pda GTurnOffIds 07/08/01P8W wreswres,tcnl,' TTOPTION'888W :if 0=lpwcall'GlobalLock'hMem88W Zwcall'W_Mem'(lp 0 1 data)ws88W :if'Frame'Hwi'*class'RE88$\ (U V W X)wi'*:margins'80T/ Pwi'..*idparams'0(L" AR[3]wi'*:height' (8Y wreswres,tcnl,' PAPERSIZE'088V wreswres,tcnl,' PAPERWIDTH'80X NotValidItem08DY error A wi'P_DlgError' I880U VQTY DESC ID MAT SHOP FIELD OTHER 88@h F1C wi '*nomargin'V88\i Places the workspace notes "MEMO"b88@ wi( '*just'),1warg80 wi'*selection' ((SEL),0)08p] E'HWND_',(2C1)'NOTOPMOST''88Z wres'' Cancelg84 :end right align by default e40_ :if 0=1wi'*mode',i0Ptr wi'*text' '' 07/08/01P,d :else ,XQ0 0'ff'wi'*Create' 'TForm'('*caption' 'THLine Example')('*size'0 300)X0,Z :elseif ~vi ID'0(  :case'># ' (80` Zwcall'ShowWindow'C'SW_HIDE'I88` Cwcall'GetSystemDefaultLCID'8X$g Tab will fire on KeyDown and is called in GMoveUntaggedIdLightX8tQ :if 1ED ss"]:caselist'"80  :andif vi textb)0P^ GKwDefaults 07/08/01P0$ wi'..*edobject' wself900L T(-(wself)'.b')wself00b :elseif 1wi':*cot'04( (M N O P)L wi'*where'4,pe :andif 1wi'*mode' ,,8GCreateJobfile NAME;A;I;Tn,,`c wi'*mustset'1,,\7 C(2warg)~' ',8q Called by GWEquip and GWToData88c PHwcall'GlobalAlloc' 'GPTR'Y884d RR,wcall'W_Mem'(H,82,P-H)88_ Ntcnl,(1+Ntcnul)N8$ wi'*font' bold$<wi'*limit' number of chars allowedT8p Example: YesNo'Do you like objects?'8< :end205:end end of space key handler0<8 Requires: (F) Inherit (not used) 11/2/99<  y D('A' '')[A]  D('A' '')[A] $4$ Field labor cost$$ N1fi S1r$Tl  R1 T pass validated items and id's count 07/05/011TPl C'GWOKButton"Action"' ELE20dec99dPXF the case: 'Show' statement and GWCost'Show' is required.X0 :for i :in CV0< SEL(ID)+(newtext ss ID)1s<HG assume that user does not want to enterHK DCF \Z wreswres,tcnl,"Syntax: 'object'wi'Method'{param1}{param2}..."\@twres2 suppress default key actions@, wi'*selection' (I,0)R,s FF Lȇ:case'New' constructor3L<t === 3.5 objects required case statements<D\:andif /9 27=1warg 07/09/01D\ wres"Define form top, left, bottom and right margins in pixels"\D` 08/12/01 CV1Ids wi'*children'  wselfIdsDHC :if 0=+/SV 07/17/01')H :case '?KeyUp' L:case'KeyUp' \а'dd'wi'DateFormat'(20001225 20001231 19990801 20790101)1'dddd d mmmm yyyy'\D:if 'KeyUp'wevent 07/09/01DD no scroll bar = Ref ItemLabels for definitionD :if 2nc'A' D X :ends' dS A GWClass B -- Displays class parameters (other than duct) in top right panely"d706 R0 'ERROR 4' 07/05/010\ :case'lv.onSelect' LES12mar01 commentedr \4@ (c)1999 Tallysheet Corporation4H  GInfoMsg'Create check for valid other cost'ckH( wi'*SEL' 0ta(\rd0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '>' '='  '=')('caption' 'Age')':Center'd8 (OS RN)1 6 P=I8, MouseDown alway valid,\X wi'*Focus' Don't use GWData'Shade' params have changed'\, :if ~( ID)(SV=2)/IDVn,, :endg,4h GWSize'Shade')4ss'( :end(D̹:end 07/09/01DX$ ids(~/idsss '.sc')/ids drop scroll object is anyXXB GMarkKws '' turn off keyword hi-lightssXlz wreswres,tcnl,"Example: 'ff'wi'margins'10 12  'ff'wi'margins'10 12 10 12"alTx PP,' Enter a value in each field or Click on the'TTD+ :if (text)>wi'*limit' number of chars allowedtTPL Drop last number char in the size/qty edit object.PX(g 07/24/01wi '*text' TEXT just in case KeyUp has fired XPTa and integer during the KeyPress eventP4j :if 'OTHER'wi'aplname')4(t G[G]E-+/1G((/ EIC'((({ TEdObjects(,t wres'Description',@ GInfoMsg'TAB KEY EXIT ON KEYUP'@@5 OFNOFN,0 lCustData - Not used.@@ 07/20/01:andif 0=warg[6] repeat flag@@P` wreswi'*:hwnd' handle of the formV@Tp Control Keys: back(8) enter(13) space(32) left(37) up(38)n.Tu`|6:t4:`LUG0   F0`y COUNTPR :andif ~/warg[7]190 144 decimal and NumLock addedP,  wres1P, 10,H* TEdObjects,(Y wi'*selection'it(, :endT,,`:caselist 1001 1004 1006d,$B L|:if 13warg Enter key press. Check takeoff dataLL :if 3=wi':*cot' In miscellaneous class?01L< wi'*selection' ((text),0)<8x GMoveUntaggedIdLight'78,dZ UCSTOP,,8 `] LW4X SEL((texta),0)4H$ :if ( ID)(ID)IDV 07/28/01H K0(D~ TEdObjects(0 a valid number.0Lp8@` NotValidItem 2/18/00 REMOVED01@P :andif 2SV confirmed hilighed item 07/31/01P( :if ~0Rrn(BEEP oLend:::end;]L R1 L L1Hȯ:end:`:endl:0$X :elseif /9 27=1warg0/ VP[2] H4 Therefor the exit edit box's name was capturedH4" Desc wi'*color' (toattrs[2])4$ :return # :end V :end1,9 GInfo 'MouseDown',D$ :if (DTB wi'*text')=wi'*SEL'D< SIDSSIDS,RN[1]SIDS,MIDS< ptoGHvacJobfile ,e RRAwi'...*kwparams',,H into the keyword area,x:end''H\ Save initial edit object state before Window'sagHH|8 default KeyUp action changes the text property.HDNFI ,' ',0 4(0 4)A HVAC(n) numbersDH8V Example: $ties return current file ties'Hض[1شeyL<  II/I index of unique and/or last item in a stringL8 L C(0,T[2])B select matix of items countsiLxit@ :andif 0=(wi'*text')~' ' 07/17/01T@me MillP CV1wi'..fIds.*children' name of all Ids objectsP25]0=<$DEB ,'Calling Function: ',,si[2SI;]rm<L :if 0=wi'*text' empty: select 1st keywordsL0 wi'*margins'5 5 5 504xu wi'*onResize' ''x44 SS6' '60 14 SOUND <  I~V1V,1 negate matching items)<< Caret within the text string<<0 newtexttexta,ID,' ',textb< :return< :elseif 0=warg[3] Move right<<X SIDSSIDS,RN[1]SIDS,MIDS<<' EDwi'...*edobject' 08/05/01]<_:end P( wreswres,tcnl,"Syntax: 'object'wi'type'{type}"P8 {field aplname} GPutField {value}n8 I:else PDT(T' ') Twi'*text' create nested array of dataP L TO(/TO)TO each array is the same lenghtL0Xg <8(1-1)NREPLACE T,68 CLEAR OUT FLAGS WORD<L wi'..*edobject' wself 08/06/01L0LK Twi'*text' 0@A moving to the next edit object.1@,h :elseif R=1rn,H :andif warg[6] repeat flag?H` wi'*selection' 0 0 08/07/01`8 KNT+\KNT accumulated totals)8,du keywords.,Ld  Check valiidity of the misc data when the entereL4 U (SIDS)4`Ț U(T,T[1])[1+T wself] move right or to 1st ed objectty`wdmT ('HVAC' 1.0) freplace jobfile[2],1 file version and typeTD8 wi'*selection' (((text),0)sel+1 0)DXP:endif H :elsen 0 wi'*selection' ((T),0)10(4= :select G2warge((} C2wargr(( :if 1=wargws(( :case'?property''1((G :if 2=nc A,'_def'($H :case'?WaitOn's$$L :case'delay'c'$$p :case'?delay''$$ :case'color''r$$H :case'Method'g$$@ :case'Method''$$d :case'?Method'$ D# :andif 1=D ' :else0:else0(Vwi':*jobindices'(4\:if (wi'*selection')=wi'*text'4(:if 'MouseUp'wevent( & :return (p :andif 0=+/Vb(4 wi'*textb'(textb(SEL)T)'4 T wi'*Focus' ( :if 1RV((! (i) wi'*text' T(Ty :if 0=+/^\texta=' ' 07/14/01 check add?T4t (82=dr F1warg)Lfn2 44t wi'*onMouseUp' 'NumButtonHnd'4(  R1 % :else' H next: D& Block the right button default drop menu action.D(` Created JWG-10/31/01(D  S1OTHER wi '..TextSize' ' 99,999,999.99'RD(   :else] (i :select 1warg7(( wi'..*idparams' Pb'(DV2'RD' 'SQ' 'OV' 'AD' 'DRD' 'DSQ' 'DOV' 'MI' 'EQ'D( SV[]0 ((D ISV2 (} D@? wi'*selection' ((T),0)D(Ly :orif vi TEXT,T'(,\ F wi'.lvAnn.Focus',4XGDeleteJob(P GInfo 'KeyDown'g'(  Size 1E ddef wi'*def' P SQUAREn  :case'next' $ GWSize handlers$$$qty_Handlers;V;T;ID$\ :endrn<h :if ~/'SIZE1' 'QTY' wi'aplname'.<$ GDataMouseHndL$DebugTrace$x :elses $$ BEEPrn$$ :return$$ B :case 8x$$(g :ends$  BEEPrn  :endF < :case 45rn  :case 115n $ GKwDefaults$  :else 0 :endnt Xe SOUND $$ GKwDefaults$$< Do not increment$( wi'*Focus'(  :if 1=I @ :end 8 input data.Q DebugTraceb 07/31/01TZAPJOBFILES D :end'  :return t0( GWSize'Shade'T0$ UCSTOP$$  :return$$L :elses$ P[1]0 _H$ :endT$$:andif 2=warg[3]$$| Twi'*text'os$$] wi'*Focus'$ (R1)/ERRORn @hwndWhwndOwner H0'cl'wi'Copy' 'This text is pasted from the ClipBoard!'H<  Move caret one space to the left<<E wi'..*edobject' wself'<l  R\wR.% [[[.#[[([[....01346[[[;[[AAAA8EFGLJLLOOPRRS[[WWY [\]^aaaccefghij[[[[[wwwwwwww y {}~[[{[[f [[i[[[ GM[[[[A[[[[[[..[[$[[ [[ [[ [[[ [[[[     !!!"#$[['(**,/01234567[[T<=>?[[[C[GGHI[[TMNTTTTTT[['XZZ[\]__beeeg[[kkmn[prr[[vw[[{vvvsso[[[` N[[!;"#[[[[.[[[[[[[$[%[[[[ &[['[[[[[   [[[[[([[[[[) !"*$%&-------./05555567+9:;==[[[CCCDE,GH[[LL-OPQ[[TUWW[[[[ .V !%#.(1A4A7[WGwYa][y{[ [T'!G[{bkgp[[5 5$=:LGUPl <e :if 12wi'..*kwparams'< 4q GTurnOffIds `Jwi':.sc' '*tabstop' tabstop does not seem to be persistant 08/29/01`< Move to 1st edit object alway valid1<@8 --- Error and data saveing routines18X (E F)wi'Check'C D field validationntXT :if 1=wi':*cot' added check 08/03/01 P'IS NOT A VALID SIZE',TCNLH< Note: If the current wself was use in placeHԫR2AH" :caselist'TButton' 'TOKButton' 'TCancelButton'?HL wreswres,tcnl,"Syntax: 'object'wi'AutoFit'"L$= rSQ W#]$%"""""""""""""""""""""""""""""""""#&&&))),,-.00123456799><>>?@ABEEEFIIILLLMNOPQRSTUVWXYZ[\]^_bbbddghjlmnoprstxzz{|~Q44D wi'*default'(2warg)44| === Check for valid exit key4x)Y---------------------------------------------Properties & Methods---------------------------------------------D0 k wi'value' ( (h,j i)DV)D<A TInfo B;C;D;E;F;G;K;L;H;I;J;io;wselfF<<v Continue REMOVE AFTER DEBUGGINGys<dd 07/29/01 :andif ~/'SPACE' 'PLUS' 'MINUS' 'BACK' wi'*caption' 07/20/01ced0 Da :return $h orQTYUsStWuVv3qqqq%qq*+qq013456789:;<=q?BBCDqqqqJKLqqqRSqqXYZ[\qqqaqdffqqqqlqqoqq$0` Twi'..*fKws.*children'0<8RSub-Section: Typical-21 Shop-22 Field-23<h7 or beginning of the edit box07/28/01h8S wi'*SEL'(SELED wi'*selection')8H3 (CV[I]) wi'*color' (toattrs[3])H , T wi'*text' '',, wi'*text' '',, :if 0wi'*text',00 'THIS SHOULD NEVER HAPPEN'n04@ P'Create a new jobfile',tcnl4H:elsedHl :orif ^/((1warg)>47)^(1warg)<128 alphNumsH$ :c :else1p GG  'object'wi'WaitOn'formName to center TInfo window over formName and wait with hourglass cursor0,d title'GREGGWAY''0@4 :if(C2warg)'#'wi'*countries'@47 allow of :andif ' '=1T44 H wi '*where' (60 55,HW)4Pf Result: 0=memory failure, 1=OK, 2=Cancel, 3=Abort, 4=Retry,P:) lD0=xdt  D \< ` ( ԏ(< (T) wi'*color' (toattrs[2])<<  Does not use Eris 3.6 Objects which cause<< ID is called in the Miscellaneous routine<9.$X :else$t\:)0A :llo`\dtD\ GMarkKws '' turnoff keyword hi-lightsD$V :else$ f GEscHnd D QTYUsStuVvW]^XrZRw\xP3 "((*+U-355<=CHIOTU[`fkqvw}{\w1"+3D\\[ Caret at the end of the text string adjacent to a full ID\4t wreswi'*readonly'4H| wi ('.wherelc' ('>',FQTY) ('=',FF,'.f1') 18 25)H@P:)p,f@4 CC,tcnl,'TObject"Action"'480U CC, "REnumWindows_Hook H;C"84 :if RGValidateItems'4, :case'=LL' ,@h:)@d@4U(NAME,'.SF')NTIE T1+0/NNUMS44M (si[1;]) 'KeyUp - warg=' warg48 4. RD Dual wall ditto848T SHOP wi'*onKeyUp' 'GLaborHnd'4<5 :if warg[7]8 32,(47+10),(64+26),190<, wi'*text' T89,R:end0Tc HH,',',(C),'A1' TAKEOFF DATAT :end 4 (13) suppress number buttons4T0w only one accumulated more on the KeyUp event.T4? --- End of Greggway propertiesd4, wi '*text' T,$x2GInfo 'KeyPress'D$ ,- """#(&((,,,,4 wi'*text' (texta,textb)=44Hclassesclasses, 'TCommandButton'4fp dL :if /1 2F paint selected items, if any'd2T Lr Pad the text string to make room for the cursorLh  [19 if HP7 wres"Convert characters to signed integers")H     EdO ]  on    s d 0 \FM wi 'def' Fdef  FM wi '*Open' Class frame save history row frame\@ ccc 123 ccc 123'@Lo cccc 07/11/01LL- Ids wi'*onMouseDown' 'IdsHnd' Items mouse handler1L$Nuctl0y FM  ff.fRD, ff.fSQ ff.fOV ff.fDRD ff.DSQ ff.fOV ff.fAD, ff.fMI, ff.fEQ.lISC t' t[ wreswres,tcnl,"top,left,bottom,right: margins in pixels (integer) defined as 4margins"t04 EF wi'spiedevents'0 duquac rrs'MIS$UG)undAA  du AI4 ReH A\lanmDed dMis0Disc,NDTx{ ID(-1+(DTB wi'*text')' ')DTB wi'*text'neT@s' NAMAA( TT ====End of left movement========================sT<troen:TT TDEB ,' ',MIX (~^/V='0')/V delete implied placeholdelrTch 4lc' \ws\X HUGfH.('*p_ [1elf[18 an obh f8ch Lellbmente' i'* cUG  (1< su( IdwxXUGUG8K :if /'SPACE' 'NEXT'wi'*caption'8RXWP`XX@  ==========================================@`$_ȅ HerrP@ of the Monthly APL+Win Training Program (February 97)PܡPC wreswres,tcnl,"Syntax: 'object'wi'style'style"e.P0T5 sure why this works because the functionT$8L`t@( Arrow left move always valid@  wF,' '' w$(F,@ta'0;'.fP(  :if 'SIZE1'wi'aplname' 08/13/01P@ ccc or 1234 or ccc 123 ccc1@P0 (T[1]) wi'*color' (toattrs[2]) mark selected itemP@Ю :if 1FE wi'class'@` T(((SV)RC[2]),RC[2])IDV full items matrix`H Display a help file or a given topic from a help fileH@L ccc or ccc 123 or ccc 123 ccc@HL 3:HELP_INDEX - Display the index of the help fileHH0P 4:HELP_HELPONHELP - Display help for Help itself'H@ Hi-light matching items@l( wreswres,tcnl,"(assuming AGE has been set with: 'ff.edAge'wi'aplname' 'AGE')"lLTF fMultiFlags[23] Check for OFN_ALLOWMULTISELECT flagLL@ Flags(322)Flags Convert flags to bits temporarily..L@:if /(' '1wi'*texta'),' '1wi'*textb'@L8s --- Required: Prior validation of sizes and data fieldsLL  wreswres,tcnl,"orientation: 'horz' or 'vert'"1LL  Immediate exit: The KeyPress event will process characterL@` do not have a count but that one is implied.@H& U(T,T[1])[1+T wself] move rightt'H8\- error 'NOT A VALID RIGHT ARGUMENT' 80p%'*** DATA FILE NOT CREATED ***'08@ Zwcall'keybd_event' 'VK_SHIFT'0 0 0 8Hl" (OS SV IDV DESC RN)(wi'..*idparams')[1 2 3 4 6]eHHT# The NEXT button is not valid in the last edit objectH<@ Kwcall'GetSystemMenu'H 1<H&T(T' ') Ttexta,textb change to nested arrayHHJ --- Write and paint the new label captions1HH % wi'...*idparams' P Save new paramsHN 00 :case'TComboList'04ȯ Something does not match4d wi'*selection' (1 0+SEL) move caret right one space1rdd VN/Pfnums master UCMD file tie numbergdd sizes6 12 14 16 18 20 24 30 36 40 44 48 temp sizes for textingd@!:orif ~/1 2=warg[3] Left or Right Button@dl wi'*text' (T,' ') space for the caret 07/15/01dL, wres0 Release hold to allow KeyPress to be fired1L@'(OS SV IDV DESC)1 2 3 4 wi'..*idparams't@# :end140V M1(M' ') MM~tcnl4T\2 wi'..*edobject' (EdObjects[I]) 08/13/01T@|(SELwi'..ed1.*selection'  textwi'*text'@@ G |k HV e  e \`hVgLe\zd$d\tdċc|e@e_ CVeo@`RQ 0]|!drP"#_$(>%4&Zc'UXd(pW?p@|!AyBCVDE`zF$GHIpbJ|cKhLd#MTHcN `cƠlaP,``Qd(aRaS?@0AB,CD8EtFXGYHI4JXK#LMNTO8PPQRkqS4THP t4 (c)2000 Eric Lescasse[18jul00]44܊ wi'*columndisplay'E40HD T wi( 'attach'),D0(hF GInfo 'KeyDown't'(`P|:)x1MHTX$X`0D wselfwi '..*edobject'04|q SELF wi'*selection' 4l enlist B report error if any $fn not in file."l8$! 6. Equipment toc088i 5. Miscellaneous toc088i 4. Air Distribution toc08@T wi':*toindices' ((fread HIDS,11)[COT])@  :if 2=I ,C GWSize'Shade'9,@`j wi':*toindices' (freaD HIDS,11) @@j :if 1wi':*cot' added "if" 09/07/01@\(w BF,( 0 2)( 0 1)BC keep only control heightsEd\P))t[ t'ffdb.list1'wi'Create' 'TList'('wherelc'5 60 300 180)('caption' ' VALUES ')('attach'1 2 3 4)t0$N'gw.fEQ.fIds.sc' wi'*value' 004D wi'*scale'(wi'*..scale')4$dE :IF 0=nc 'title' $< State: nn ccc n or nn ccc nn<:)hdG`H!t-+"\HpX X9 ,k ؼ g H> |>Llc)(4Nd$bpVi S!""#$N$%5&$'o(c)d*D +1,(-./004 1\/2lX3dI4$d5 67m89:LX;DL<g=>?8@P/A B CTD,EIF GHHIJaKpLcM0N`O\P`QRS T%UAV9W 4# T wi'report'(2warg)40 p1(N-1+(T)' ')Ts00 Syntax: KeywordLabels IDS0<p@ IDNOMSCrnw[3 4](/SCrnw[3 4])IDVs<4 [ T(/C 'Label')/T"4T@ release of mouseDown eventtsTtX wreswres,tcnl,"When the property is set, the control is filled with the variable value"t< Zwi'Add'(1 1)(Fexec C)<Xܲ :if '.'=1C  may be metrice 07/30/01X,x A wi'*status'S,x 5Sw6Q3^,  !"%%%&((**+,-//11444777:::===@@@CCCFFFIIILLLTTTTTTTTWWWYY\\\]^_fffffffhil|nxx, wres'Get or set the caption property, changing the Label width to adapt to the caption width'xH round class is active. If the size is valid moveH4)` #:3 9 9999999999$$999W*/////9977779:;<=999B99EFGHJKL9N9999WWWWWY99^^`ab999hhhlllmnoq999u99|||||~{99999[[999999L999999999999999999 9999 9999999999999 999 999,99,, !&$&&',,,,,.99 23999999 F:h`~ 82`0 t wi'*color' color0D Greggway properties last and next added. 11/2/99D< 3. Oval (toc3))<HXt :end endH`,:elseif 4=wi':*cot' 07/08/01 Equip class has only one edit field`\\ :andif wselfEdObjects and in the first size edit box\` :andif ~/'QTY' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/09/01`\ؽ was empty. Assume he wanted to more to edit box on the left.\\, :andif wselfEdObjects and in the first size edit box\\ :elseif 37=1warg routine added 07/24/0101\`  size/edit box has a number and the caret is within the text stringng``@  P' Each field in Miscellaneous must have a value',tcnl,tcnl``` wi'*text' '0' 08/07/01`` wi'*selection' 0 0 08/07/01`Pp your top User Command file utilities as if they were presentP`Atcnl,dm error msg which occured 5`P  If Trap decides not to handle the error, it is then passedP`4 wi'*selection' 0 0 08/07/01`P< Copyright (c) 1996 Eric Lescasse [22jun96] [17jul96 23:46]'PP wreswres,tcnl,'fieldtypes are defined as follows:'PP :if 1=+/^\' '=T 07/15/01PP` :orif 0=+/^\' '=T 07/15/01PP9 Hi-light items 07/14/01PXh :andif ~vi T edit box does not have numberX@Ԟ OFNOFN,0 nFileOffset - Not used.@t   int@ OFNOFN,0 hInstance - Not used. @@ MFREAD HIDS,7 duct selection descriptons@@RW WRAP V;A;B;C;D;I;N;L;LBL;P;PW;T;WT;X;IO'@@4 :if 7warg 07/19/01@X Initialize variables required by data_HandlersX@ GInfoMsg 'FILE takoff data=',tcnl,P}@@0 :return 07/07/01@<  F wi'.lvAnn.report'(2warg)t<<| Z(F,'.lvAnn')wi( 'wherelc'),D<< wreswres,tcnl,"'ff'wi'Show'"1<8X Set or clear description labels8< wi'*desc'(T wi'*desc')ng<8! wi'*text' T)88 :if 4=wi':*cot'08<, called in the :case 'KeyDown' statement1<8܊ TO DO: Check to see it id WORKS!'8<4( wi'*selection' (wi'*SEL')1<@< --- Fail size check 07/07/01@<4) wi'SEL' (wi'*selection')<@ċ :if 0=R 07/07/01@< :andif 0+/2wi'..*idparams's<80 Pwi'..*idparams'8@@ 07/20/01:andif 0=warg[6] repeat flag@<N wi'*texta' (texta(SEL)wi'*text')0<@0 Go directly to the KeyUp case statement@8 wi'*SEL' ((T),0)88 Pwi'..*idparams'8@ Called by GWEquipData and GWToData objects.@< wresD1(E=E)penclose E0<< OSLOS  IIDVMO<@N P' IS NOT A VALID SIZE',TCNL@@ second edit object. 08/13/01@8$ (C[i]) wi'*color' (toattrs[1])88 (C[i]) wi'*caption' (KWV[i])on8@T shift(16) Ctrl(17) Alt(18) Caps(20)@8̏ V[V]T[i] actual count88D VT[i] actual count88FH1(FH,'.H1') wi'*Create' 'TFrame'88I'NAME' 'SECTION' 'SUBSECTION' FIELD88 Initialize with last takeoff data.R 88$ that was not erased for some reason8( SV[]0 (0 :andif 33=warg[7]0t H1 0H8\wi':*jobfilelib' ((jobfile[1])V)'80classesclasses, 'TChildForm'000M :if 1wself ss'Kws'00 :orif ~/2 3 4wi':*cot'00 wi'*texta' texta 08\i A GEditList B -- GEditList Objectb80 TO DO: Check insert state00 R=1 Move to next edit box'00 (C R)(1+~IE) I'007 PgUp-33 PgDn-34 End-3500I :IF 1( ID)(ID)V)00x wi'*..lvAnn.onSelect' ''00 :if 0Hwi'*report'a00 TID,av[io+1warg]00 in component 6 of GWSDOC.SF'00 CV1wi'..fIds.*children'00x BEEP 07/05/0100 :if GValidateItems00H wi'*selection' ((SEL),0)00 wi'*selection' ((SEL),0)08x :caselist'>9 ' '>99'a80 VEdObjects wself08h :case'TNavigator' 80twi'*** NOT USED *** 08/01/01'0X sizes 8 10 12 14 18 20 22 24 30 temp sizes for textingXX0 PP,tcnl,' Clear Button to start a new line'XX,: wselfEdObjects 07/15/01 had wrong edit object onceX8 hdcwcall'CreateIC' 'DISPLAY'0 0 084 else add add a space48O max_pathwcall'W_Const' 'MAX_PATH'84 HH, " wi'*suppress'1"48r wi'*texta' (texta1texta)88p wi'*SEL' ((texta,textb),0)84 === End of Left arrow-37 handler48T1 I1+(TEdObjects) wself28XL 08/08/01 :if vi text 07/24/01wi '*text'X\1 State: cccc. or cccc or ccccc '.' represents a spaces\P SizeTabHnd by which time the defaultPTT) keyword hi-light movement only valid in the first edit box0TPd KeyUp event will have reset wself1PT :for I :in C for each fieldTT Q fstie 7 force file tieTh` :if 0R R initialized on exit from data vaildation functionsh\ State: cccc. or cccc or ccccc '.' represents a space\T BEEP 07/20/01 REMOVE AFTER CONFIRMING NEED FOR NEXT TWO LINE)TTx --- Keywords were turned off when the focus moved from theT\ V/^\IDV SS ID mark matching ids 08/11/01s?\P State: First size/edit box is empty 07/24/01PP :elseif warg[7]190,64+26 added period 08/01/01PP :elseif 12wi'..*kwparams' 07/24/01PT to see if it will work in the round/square data field'TP wres0 release hold and allow KeyUp to handle1PXx User pressed Enter in the last misc edit objectrX\ IDV/IDV select first matching item\\  LK,' \'[J],'UCMDS ' master UCMD file name\\У :andif wselfEdObjects and in the first size edit boxe\` :if 0=text~' ' 07/24/01 edit box empty?`` :andif (EdObjects)wself 07/24/01 First edit box?`X PP,tcnl,' Clear Button to start a new line'mX\L was empty. Assume he wanted to more to edit box on the left.\ ~ :case'gaps' \|K :andif /'SIZE1' 'QTY' wi'aplname' added 'QTY' 08/11/01\`t :if 1=wi':*cot' added check 08/13/01`XR Initialize variables required by data_Handlers)X\9 RTrap -- Global error trapping function for APL+Win to allow usingy\PԦ :if 0=(wi'text')~' ' 08/09/01P`t User pressed Enter in the last misc edit objects 08/07/01`P$ PP,tcnl,' Clear Button to start a new line'PP Check here for values in each misc fieldP`t wi'*text' '0' 08/07/01``hz :if 0=text~' ' 07/24/01 edit box empty?``ԧ wi'*selection' (01 0+SEL) move caret left one space`P State: nnn Number in edit box and char key pressedPP number in the edit box. Move to the next edit box.1PP :return 07/08/01P`ԧ :if 1wself ss'Typ' added check for typical JWG-10/30/01``D :if 1=wi':*cot' added check 08/13/011`` User pressed Enter in the last misc edit objects 08/07/01`P, :return 07/08/01PX :elseif (fi text)>wi'count' check added 07/29/01XX SOUND Sound error: A number must be in 1st edit objectXXL 0 0GMarkKws T Check for partial keywordssXX :andif ~vi T edit box does not have numberX< CC, " H  handle of a window")<Dx wi'*..limitwhere'(2wi'*..where')DDh A TEmail object allows you to send E-mail from anD 'ff'wi'Show'r p :endT\ FC='''' find quotes)T<= wi'*caption' '2.0" FG w/vaper barrier'<D Change the content of the Name field to LescasseDT` O\F'  80) ('*caption' 'Smoking')('aplname' 'SMOKING')0 'Print Error: PRINTER CODES''0, :elseif ^/(32=1warg),,xclassesclasses, 'TAPLEdit',$ :return$L :end4D 07/20/01:elseif 7warg'4  :end T0 0'ff.bnOk'wi'*Create' 'TOKButton'('wherelc' '=ff.ed1' '<'  )T@,'dd'wi'DaysDiff'(20000101 20000301)19991231')@< Swi'..TextSize' 'FG/Ductboard ' bold< 8k:for i :in V3 p:else0I === Handle character keyss'0,\7 :if 1wi'*mode',,classesclasses, 'TCheck't,,xGClasses;Z;classes;wselft,,classesclasses, 'TDisplay',, GTurnOffIds,,I State: ccc nn,,X9classesclasses, 'TEdit' ,,L 'SHOULD NEVER REACH HERE' , L L280:  :endct ,P :case' ',, :case'Methods' ,,0 :case'> ',,Ƚ :if 'ID'wi'aplname' ,, GMarkID IDa ,,  wi'*texta' texta ,,l :case 32 space,,<:caselist 16 17 18 19 19 20,GPutJobfile(W MB_ABORTRETRYIGNORE($` :elsee$$P :case'country'$$ :if rc=1r$$L :endif$, turnoff keyword hi-lights,$ OS0 '$L wreswres,tcnl,"Syntax: 'objectwi'spy'value"LP wi'*selection' ((T),0) do not select any charsP:endI]LOSOS \j :if 0=wi'*SEL' beginning of edit box?t\RDMEMO8 wi'*value'(Fexec C)84 wi'*sorder'(2warg)4 0SOUND T HWwi 'TextSize' (C'CLASS OF TAKEOFF MATERIAL') font1T`D wreswres,tcnl,"string: message text (possibly including TCNLs)"`8r Standard Esc key action suppressed.8T OS((SV)-/RN)OS+RN[2] cycle thru each RN[2] itemsT0O<Ћ Factors: section: typical shop field)< :endrn4? OS((IDV)-/RN)OS+/RN '4P\aM(~V)(~V)M2 squeeze rows w/numbers from matrix1P<q [5] Longest item char string< :returnDD GTurnOffIds 07/18/01DP Shift-Tab press. Move to the prior edit objecttyPP,o by window's onKeyUp action this function is executed.PP  P ct1PPtextwi'*text' save initial state before defualt KeyUp P@ --- Fail size check 07/07/01@8,c :andif 0=+/2wi'..*idparams'88 Temp generate combined clase numberN88 T(wi'..edobject')wi'*text' 8[:endselect@@@ and position to the right side of the frame@D make all modiffication so that id_Handlers can)D OGSaveJobFile  :endt $t :case'?country'$ R1$ wi'*font' bold$8['ff.tree'wi'*Expand' 'expandbranch'18$gwsWGetSaveFileName$XPM Example using 'attachments' property to attach files to an E-mail:seXT` wreswres,tcnl,"and returns focus to the APL session"TL` If you need more space between centered controls, use theL,T D(vr C)~' ' ,H error'Set to avoid impossible resizes' H8{ Mouse clicked on a keywords8,D :select 1warg,hA0 L1@Ж (wi'..*edobject') wself 08/13/01@$ :case'Page'$h RR,H  GSaveJobfile ABCJOB4\ Convert char to uppercase.40 State: nnn or nnn00P Nwi'*limit'008 GWSize'Shade's0D wi'*selection' 0 0 07/15/01DDL exitobjectwself Save name of exit object.D$ :endn$(L :return(,l :return,$< wi'*text' T R$$ wres1rn$, keywords.,( :if 32=1warg($ wargs$( GInfoMsg T($ wi'*Focus'$( :end((M :endit((8 wi'*Focus'(( TEdObjects(( :return($ :if 27=1warg$(t TEdObjects((` === Numbers keys(( texttext~' 't($ :return$  :else' $T UCSTOP$t wi'*selection' (01 0+wi'*SEL') 07/20/01 move caret left one spacet8  Try skipping size checks 07/06/018(x :endrn(( :if 32=1warg( 44 :if 0=CheckSize texts'44DebugTrace for debugging4X@ 0 0GMarkKws T Check for partial keywordsdXP SizeTabHnd by which time the defaultP  :return $ :return$${ :elseif 1=R$e exit:H wi'..*edobject' (T[1+T wself])HH :if vi wi'*text' 07/24/01TEXTH|k H+BEEP$0 :return$( GInfoMsg T(0 === Handle character keys0104 :if ~(text,T)>wi'*limit'4 < :endselect H move single hi-light to next keywordH, :elseif R=1011, - input data.n (@ :return(4WhwndOwner$ :return$  :endnt (= :endP((P UCSTOP(0, :andif 'SIZE1'wi'aplname'0  GEscHnd $ :return$(t :endn(0 R[io+96+26]R[io+64+26] s0( UCSTOP(( texttext~' '(,P GWSize'Shade',(h :if 1vi text(( :andif '.'text(( wi'*Focus'((\ :return(, :return,,x TEdObjects,wDL+N+ZD  BEEP error. Return to edit box01D$ :if 27=1warg$, GWSize'Shade's,L Size edit box must have a number before exiting1L$ :if 9=1wargE$OFN(WGetSaveLongFileName(0p moved for size_Handlers0814r0h: P' Each field in Miscellaneous must have a value',tcnl,tcnlhh` wres1 08/09/01 don't change this any more! suppress default key actionh, :elseif R=1ts,L :andif /'SIZE1' 'SIZE2' wi'aplname' 08/13/01L8* STATE: nn.n nn.nn or nn.nnn'88m wi'..*edobject' wselfID8(Д wi'*Focus'(0 wi'*text' text0@xD T(wi'..fKws.children')[R]ts@$ :return$L :andif warg[7]190 decimal check added 07/30/01L,` wres101,$ :return$d E~0DC wi '*aplname' find which children have an aplnamed \|:case 'MouseUp' P KeyUp event will have reset wself1P  RAV d :endrn <? 0 0GMoveKwLight wi'*text'< \ TR[io+warg] d$ :if 51fi (text,'1') over three decimals?nd :case 9( :return(P :returnX GInfoMsg ' <',(av[io+1warg]),'> is not a number'rXDx UCSTOP Invalid key. Beep and returnDD wres0 Release hold. Let KeyPress handleD`X User pressed the backspace key when the edit box 08/13/01ts`Tc added UPPERCASE JWG-10/29/01T`GDebugTrace renamed and ediited from qty_Handlers0814 & size_Handlers0814t`LG wi'*color' 255 255 255 added 07/26/011LD4 P' IS NOT A VALID QUANTITY',TCNLDD :andif 0=CheckSize text 3/6/00DD4 :if 1vi text 3/9/00D\ySL| wres1 suppress default caret moveeL8$ Move to next edit object8ht0 0'ff.ed3'wi'*Create' 'TEdit'('wherelc' '=ff.ed1' '>'  '=ff.ed2')('caption' 'Age')h<| UCSTOP keyword search failed<< 0 0GMoveKwLight wi'*text'<Dd :andif 0=text 07/24/01wi'*text')D` :if 0=text~' ' 07/24/01 edit box empty?`L handle tabbing between hi-lighted keywordsrL8  :if ~/'SIZE1' 'QTY' wi'aplname'8UG( :return(Dđ wi'*Focus' 07/15/01DD Temp action before and handler isDD R=Index to the array of keywordsDD GInfoMsg'FIELD MUST HAVE A NUMBER'D,h === Numbers handler', :case'KeyUp't $P T1T$ :case'MouseUp' 08 wi'*Focus't0, GInfoMsg P,( UCSTOP(0 GWSize'Shade's00) BEEP signal an error0HX :andif 1vi wi'text' 07/24/01TEXTH4DebugTrace for debugging4UG<L\0 PP,' Enter a value in each field or Click on the'\4 :elseif wself1EdObjectsrg40 GWSize'Shade'T04 :if 0=wi '*text'44 :if wselfEdObjects4\ V/^\IDV SS ID mark matching ids 08/11/01'\` :andif (EdObjects)wself 07/24/01 First edit box?`0 wi'*selection' ((T),0)t04 wi'..*edobject' wself44  :andif 0=vi wi'*text't4(T :if 1vi text(  :returnn L wres1 suppress default caret move 07/15/01L$ :endg$4d'case: KeyUp' ('weself=' wself)4@,G wi'..*edobject' (T[1+T wself])@8 Tab to next edit object.8@( T'FIELD MUST HAVE A VALID NUMBER'@@ T(wi'..fKws.children')[R]01@4 TT[11+T wself]')4(p UCSTOP((( TEdObjects(8 07/24/01 :return  :end8H@ May be in the second edit box which only acceptsHd|I :if '.'text 08/09/01 08/01/01d8h 0 0GMoveKwLight wi'*text'8 < :endd @ wi'*Focus' 08/13/01@8 wi'*selection' ((text,T),0)'8H :elseif (vi text)^~vi av[io+47+471warg]HHx Error: A character may not follow a number.H8 07/24/01 :andif vi text18X :if 0=RGDataMoveCursor 07/09/01 open after debuggedXH P'FIELD IS LIMITED TO <',N,'> DIGITS'H4 Convert char to uppercase.rg4$D'wevent=' wevent$$< :return$   :else 8F\Lwi':.sc.*tabstop' 0 tabstop does not seem to be persistant 08/29/01\($ :endg$(  :goto L280(\ dGShowJobfile;A 4a RGValidateMiscData4(0 Zwi'*value'(4 C('IS' 'ARE')[A1+1<+/V] 4:else$ I5$:else p< Zwcall'SendMessage'(wi'*hwnd')'WM_SETREDRAW'0 0 does not redraw TGrid!!!o+1p8XT\ :caselist'TEdit' 'TCombo' 'TRichEdit' 'TEditList'T(qڳ(E Select a file(^TD GPutJobfile - Display jobfile in the setup boxmDp :return @( (topFrames[I]) wi '*Defer' '*Open'1@`8 (fm,'.fItems.scItems')wi'value' VALUE8 :endH4, :returnDV4L` wres0 Release hold to allow KeyPress to be firedLPSELF$title'GREGGWAY' $0 :if tcnlF H0D K wi'*tooltip'(K wi'*caption')-fD8 ATAT+0,+\AS8X wreswres,tcnl,"Syntax: 'object'wi'just'{justification}""XX wreswres,tcnl,"justification: 'left' 'center' or 'right'"Xd> :if 1=warg if no property value specifiedsdT --------------------------------------------- sample propertyTT4 --------------------------------------------- sample propertyTd wreswres,tcnl,"classes: a nested vector of User Defined class names"yd(  :end'C(0 wi'*Focus'ss04D F(HEIC)wi'*name')44(k E wi'*caption'FMD48x filters  List of file filters.188 :elseif 22wi'..*idparams''88 :andif RGMoveUntaggedIdLight8< wi'*onResize' 'Common"onResize"'<` (C D)( E)replC D keep only these children`pop :end2C4D wselfA wi'*Create' 'Label'g4< (c)2000 Eric Lescasse[11jul00;27nov00])<8< wres(wi'*allowed')~0N88t C(wi'*list')[wi'*value';4]8\ DG,D catenate line numbers"\0 :if tcnlG 10\ CC,tcnl,'TObject"Action"' inherit from TObjectW\ H @/GOpenJobfileȻ :if vi TEXT] LBUGTRACE<` wi'onClose' (D,'''onClose''')<  TWebBrowserT BTX Xresspecs WRAP charvec -- Insert TCNL's and indentation in X$ (2=A)/'ZZ' $@[ C wi'*where'(warg-C wi'*laboffset')@<(V max_pathwcall'W_Const' 'MAX_PATH'<,p :case'ListSeparator' ,Hܵ IT wself index to current edit objectH+w.sH CV1wi'..fIds.*children' item objectsHLDMH IIDVNHL New lighted item and index no.eH8l :if 'MINUS'wi'*caption'8( DD BEEP Signal and error.DD :if 0=CheckSize text 3/6/00'DD\ UCSTOP Signal and error.DD, GWQty'Shade' return to edit objectDD 07/27/01 GEnableNext 07/26/01DHl wi'*text' T 08/01/01HL4 :if 3=wi':*cot' In miscellaneous class?1L`ԧDebugTrace renamed and ediited from qty_Handlers0814 & size_Handlers0814`L wi'*color' 255 255 255 added 07/06/01sL<L and value for this field.S<$  NHL(SV=2)/IDV$(HL1:R'open'wi'Show' n(X4 6def 5[((3^.=4'MATIOTA')1)-~io]2 fix MATIOTAX( CC, "R0 20"(@P` Note: now right click in the TDHTML control@@G Char key, other than a number, pressed1@x BA(BD~AX)/T[;1] sub-matrix of where properties for centered controls x0+@Z@<L  wi'..*edobject' (EdObjects)<( :endr'(<0 --- end of additional Greggway properties<,z or 'property' value T,r@8D T(wi'..edobject')wi'*text'8, :elseif R=101t,D GMoveKwLight was fire in KeyDownD p0< Move caret to the end of the text string<Ј6:8 :else 39 Right arrow'88 GErrorMsg 'NOT A VALID SIZE'184 (fm,'.fItems') wi'items' ITEMS48 P ('<',(R[1]),'>'),' ',R[2]88 GKwExit T wi'*caption'8$\ H1+M$H In either case, turnoff the keyword hi-lights andHH( 0 0GMarkKws'' Turnoff keyword hi-lightsH\; State: Initial size/edit box is empty or a dot (.) key was pressedS\@+ Char key, other than a number, pressed@8 :if ~wselfEdObjects8$ :return$Hp :if 1=GEscHnd 3/7/00 result added HHp :andif wselfEdObjects 3/9/00sHH 0 0GMarkKws'' Turnoff keyword hi-lightsH8x :end End of enter key handlerD8@'wself=' wself 'warg=' warg temp trace)@8 07/24/01 :andif vi texts'8HP :if 1=GEscHnd 3/7/00 result addedMH@8 TEdObjects list of edit objectD@@$ Move to 1st edit object alway valid1@@ wi'..*edobject' (T[1+T wself])@8L STATE: nn.n nn.nn or nn.nnnO8<,:end  07/15/01d<< 07/09/01 catinated texta and textb<H Ttext,T,'.' 08/01/01H<, wres0 07/19/01<@h State: nnn (right align)@@, :andif '.'text 08/03/01@L :andif 2warg[3] Right button clickedL8 Move to next edit object8@  texttext,T add the alphaNum char@H<2 0 0GMarkKws'' Turnoff keyword hi-lightsHH̜ In either case, turnoff the keyword hi-lights andH8H[ UCSTOP signal an errors'8L Check for full ID in the Items edit field gw.fMI.ed3L\tF PP,' Enter a value in each field or Click on the'\\ File data and clear all edit objects 07/27/01\T i wi'..*edobject' wself 08/06/01T8 07/24/01 :andif vi text88 STATE: nn.n nn.nn or nn.nnn8\t  :andif 1'COST' 'SHOP' 'FIELD' 'OTHER' wi'aplname' 08/06/01\8 Tab to next edit object.8P< to the far right. Move to the next size/edit objectPT wi'*text' T 08/01/01TP Tav[io+48+48warg[7]] adjust for nums pad key codePPH PP,tcnl,'YOU ENTERED <',(1+wi'*limit'),'>' Plt 08/11/01 U+/IDV ID number of matching chars per itemlP Return to the first edit box if a keywordP %GShowJobfileerG v SOUND] t :if (1warg)(47+10),(95+10),110 kb nums top row, nums pad nums, and period 08/01/01tll :return Hi-light moved. Return to edit boxmlPO is active. Do not execute GWSize'Shade'1P8 :if ~wselfEdObjects8`X 08/11/01 IDIDV[I] closes matching item?`\ V/^\IDV SS ID mark matching ids 08/11/01s?\dX2 2:OFN_OVERWRITEPROMPT: Causes the Save As dialog box to generate a message box1d:end /SI[1;]k:elseHq TT,ID,textb 07/21/01 insert IDH0 B(I)1+V000p4 --- paint keywords and return08 I(1,RN[1])[1+/33 341WARG]80o move single hi-light0$ L257:n$DLMPwi'..*kwparams' get keyword paramsDLpd wself1EdObjects 08/07/01L0x UCSTOP Error.or00 === Handle character keysrg0H8W 07/23/01 this is a renamed equip_Handlers function'H,() :goto nextfld',Dx There must be a number in the 1st edit objectD, :return,4H'case: KeyUp' ('wself=' wself).44( wi'*texta'(texta(SEL)T)4,1 :end, $ :end 8 D P[1]OS+1D,, BEEP0(M :elseif 1(TNV[i])ss'SQ'03 :case 8(X :if 1=warg(0Pq textatexta,' '0, Twi'*text's.,( :if (texta,textb)=SEL( 9 :return  :return  GEscHnd , - Air Distribution ,T :endn0 :endrn,e :end(8  :if ~0R?(4( elx'error(^\dmtcnl)/dm'4(5 textwi'*text' n(f:endR0 G((G),1)G00O 'WhY DID THIS OCCUR ' 0(5 :ends'($,:case 8 Misc$05 - Turn off key word hi-lights0($ wi'*Focus' (DDA tabstop is transitory and can not be refernecedDT :elsen h DebugTrace 4 File, :return,$ Do not increment$(L :return(4(si[1;]) 'KeyPress - warg=' warg4$t :return$4@si[1;] 'KeyDown - warg=' wargg4( :select 1wargn(0 :andif 0wi'*selection't0$L :return$$ Pwi'*kwparams' $4 RGValidateAirDistData44hU RGValidateMiscData4,/ :return,` wi'*selection' (01 0+SEL) move caret left one space`  :elsen l  V[]0    :endp' $x :endP,$ j :endrn $  :selectwarge$  :endg] H  SOUNDn  sp 'SP' $ Requires: (F)rn$,LA RotateSizeIds I;CV;t;V',  :return  UCSTOP rn t9 :end ,t VV, '0' ,,0 HItems file must be tiedF,:endH4 ZG wi'*Create'C'*Hide' C4,  C1(/C' "')C,GLoadJob p=:if 0type N TIEJOBFILE0Goto4xh Convert char to uppercase.')48| T(wi'..edobject')wi'*text'8P> >BPq C wi '*color' (toattrs[1]) turnoff all hilightsP(^=<r -had>RY$=H@8 :end End of enter key handler'8< M(1tcnul=M) penclose MD<=x?=8=<? :if 12wi'..*kwparams'<\d< MouseClick not within the edit box)<@4 :andif wselfEdObjectsL48<s :if ^/((1warg)>64)^(1warg)<123.<=$H" :endn$<0# wi'*selection' ((T),0)s00H :elseif warg[7]64+26V0GOTO(?0UG< C(Z1=Z\(Z/C)wi '*visible')/C<8` --- Error and data saveing routines'8@ Note: Set wres1 on entry to id_Handlersts@@ܮ T'FIELD MUST HAVE A VALID NUMBER'@,* GWSize'Shade'),,( wi'*text' text,@B wi'..*edobject' (T[1+T wself])@@8D State: nnn (right align)g@Xؙ :elseif (fi text)>wi'count' check added 07/29/01XD8 GWSize'Shade' return to edit objectDX wi'..*edobject' U save new object nameXX Tab will fire on KeyDown and is called in GMoveUntaggedIdLightX@, texttext,T add the alphaNum char@@A Start a new line of input@DDC :elseif 0=wi'*text' 08/14/01DL=BUG0(m R[io+96+26]R[io+64+26] g0,l GMarkIdsS,0 moved for size_Handlers0814g0P size/edit box has a number and the caret is positionPL# warg13 08/07/01Lx=@h :andif 0=vi wi'*text' 08/08/01@L' :elseif vi wi'*text' 08/08/01LTԈ BEEP 07/20/01 REMOVE AFTER CONFIRMING NEED FOR NEXT TWO LINET@lB State: nnn (right align)@4$ wi'*SEL'(SELwi'*selection')4L  wres0  wi'*text' (texta,textb) 07/09/01erLTxq ?? until the state of the edit object is saved.tTT OEdObjects list of edit objectsT, GInfoMsgC,4DebugTrace for debugging4` wi'*selection' (01 0+SEL) move caret left one space`e :endrnt Try4hvjD wres0 Release hold. Let KeyPress handleD(t :case'?EnumFonts'H(T! NN, 'elx:B(^\Btcnl)/Bdm' type of errorTH :end$ :if 27=1warg$$x :if vi S1 ta$L HF  Ly :end , wi'*SEL' (I,0),0 check for valid number00 GWSize'Shade'i0E0  :case'last' 4w wi'*onKeyUp' 'GWDesc "KeyUp"'44\ TT,tcnl,"TFrame'Action'"4,,:case 4000 Equipmente,,| GTurnOffIds,, GE wi'*text',D e UDC Class function for the size or quanity edittDx :endni,M wreswi'..?count',h GInfoMsg '<',TEXT,'>',P,'FOR <',CLASS,'> TAKEOFF DATA' 07/24/01VhX< wi'*style' 2 4 16384 rt, multi, don't selectXLO aa,tcnl,"TForm'Action'" added 07/03/01LP":case'New' constructorPL Needs workd to revise GWCont to hand material dollar costLP  :else Note: cot is initialized in SwitchdPX@ wreswres,tcnl,"next: 'next object {ff.ed1 or ff.ed2 ...}"XP8 wi'*selection' ((T),0) do not select any charsPXPP wreswres,tcnl,"last: 'last object {ff.ed1 or ff.ed2 ...}"X@[ :ENDIFX wi':*toindices' 0 09/01/01 indices may be addedX09 GWData'Shade'0XR T(EDV[I])wi'*text' retrieve text stringX\0 wreswres,tcnl,"Example: 'ff'wi'gaps'10  'ff'wi'gaps'10 10"\X T(~^\T=' ')/T drop trailing blanksXX$C:andif ~/'BACK' 'CLEAR' 'NEXT' 'SPACE' 'ENTER' wi'*caption' mustX0T wreswi'..?wherelc'0X V(V' ') V'1 2 3 4 5 11 22 23 24 30 31 32 33 40 50 60']X0( wreswi'..?attach'U0d  5. write the necessary specific code under the Add lines below ... commentdTU :end  07/22/01s6ThI E[;1]( 'N'),S column header (none in 'list' view)hT\ :if 4=wi':*cot' 08/28/01TTD ------------------------------------------- sample propertyrTpe wreswres,tcnl,"type: 'integer' or 'positiveinteger' or 'float' or 'positivefloat'"pT wreswres,tcnl,"Syntax: 'object'wi'moveable'boolean"nTTl GInfoMsg 'TO DO: Write code for THIS TYPE of Enter key'TDX SOUND Signal and error.DDX GWData'Shade' return to edit objectDDPe Conditional tab to next edit object.DP (OS SV IDV)1 2 3 wi'..*idparams' 07/27/01oPhTccc'tt'wi'Read'12 5 read records 13 to 17 into character vector hL---------------------------------------------Properties-------------------------------------------------------\Z wres1 Required else Windows's default beep will soundg\\( when wi'*Show' is executed in GWSize 08/02/01\PP wi'*font'(wi'..*font') default form fontP< Requires: (F) Inherit (not used) 11/2/99<\1 (topFrames~topFrames[I]) wi '*visible' 1 hide un-matched to frames\< IINV char numbers< ,y :case'caps' @ State: A non-number char was entered@@d texta ccc {revised} @XN wselfA wi'*Create' 'Edit' create an GSize1 object.XD wi'..*edobject'((1V)/EdObjects)DPZ H() :if 1=warg(| DCF   ZD wi'*Create' 'TLabel'('*font'E)('*where'(G+K)(H+J+M-1)(I-8S)F)('*caption'(C))('attach'(NP)O P Q) ('*order'(.5+wi'*order'))@P. P' IS NOT A VALID SIZE',TCNL@L Zwi'*onMouseDown'(C/'TObject"onMouseDown"')bLH wi'*selection' ((T),0) 07/12/01HT Zwcall'AppendMenu'K'MF_STRING'902'&Spy (no mouse)'aT _ :endH $` CK+ .5 M-Eer$ 8` :endH $X` C C+.5AB-C+Eer$ |` :endH $` :endmer$ O:case'wherelc' $O DAH+.5AC-AH+F er$, :endr,40N :if 12wi'..*kwparams'44L fpwcall'W_CreateFilter' sp0140l T wi'*value'100$ :if 1 GRoom (texta,T,textb)04  newtextT,ID,' 'ct4<C (K L M N)(1C)wi'*where's<@$ textb ccc {revised}.@D Switch takeoff classes. Re-directed from EnterHndDDt text  ccc nnn nnn ccc {original}DpTL Zwi'*:modalresult'1 indicates that the OK button was clickedpp:else0H TT~ wi'..*self' prior frame(s) FHdS :if /9 13 32=1warg Enter(13) and space(32) have the same actiony"dLT wi'*onAction' (a,tcnl,wi':*onAction') 07/03/01LDXg:andif ~'CLEAR'wi'*caption' 07/27/01DD[ No room. Return to edit boxtDLL 0 0T wi 'Close' close prior frame(s)LHS wi'*Focus' place cursor in the edit box?H@h Remove the space place holder '^' if found.'@L^ V(wi':*children') all of the forms childrenL@, S/t wi'..TextSize' IDV caption size@TW IDS: Segmented vector with keyword followed by a descriptionTT 1. left click on item in the items area will increment count1oT@ inherit TObject properties and events@P4 wreswres,tcnl,"Syntax: 'object'wi'last'{object}"P@ wi'*onMouseDown' "GWCost 'MouseDown'"@`h UCSTOP 07/28/01 sound an erroro`<0 7. Pipe {future}or<LH1 wres1 suppress default cursor bar moveL@ E'MS Sans Serif'8 0'ansi'@P :if h1 class frame1PH GInfoMsg'Create check for valid material cost'HPP VtopFrames wi ':*opened' prior top class frames5P<< wi'..*edobject' wselfer<@\ text  ccc ccc ccc {original}@T  A,'_defwi"def"' save _def variable1T8  wi'*attach'(1warg)84$ D wi'*enabled'C44Ы (c)2000 Eric Lescasse[21jul00]14L  findex  Currently selected filter. (0=first filter)L,n GInfo 'MouseUp',8; t,'F8.2'FMT Nfi wi'*text'8,o GWSize'Shade',,@o GWSize'Shade'Y,,lo GWSize'Shade'r,,o wi'*Focus',,h5 Esc key handler0,8\ A  'fontname' fontsize bold_or_not80g warg( 'attach'),C0pdmtpppe{ppL%$q8S error'Unknown GWCombo command: ',B88qL2 q11q9q r r4r  prH12r=rM 5rr10 r r e s $sS `ut Ls `s $ wi'*limit'4V$ts t: 0X GMarkID ID0+c0t GWSize'Shade''0tAMET- 0x wres'Get or Set caps'0xe $s:case 8 Misc$, NHLFLAGS r,8v :end default object8XxRA GWYN B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;io;wselftX8m wi'*keychar'(2warg)8XA GWMat B;C;D;E;F;G;H;J;K;L;M;N;O;P;Q;R;S;U;V;W;X;Y;Z;io;TEXT;I;FMVX4 VEdObjects wself44' toattrswi':*toattrs'4D or the word 'Method' to your method nameDP wres'Gets or sets the tooltips for a TEdit control')P,  'object'wi'color'bgcol,  R0 TnCKWARG ̘ R0 T]  :else'  :else p :endr pp)<* Latent Expression: Initialize workspace<8P Write current items to the screen8< the first string for invalid chars<8n error'Unknown TLabel command: ',B8,% GviV flag count items,L wres"Set the display mode for the Message Dialog"L,t TListView"Resize"D,< error'Unknown TListView command: ',B<X wi'*style'1 4 select entire linesXpgla}er1``0 0'ff.ww'wi'*Create' 'TWebBrowser'('wherelc'  456 652)('attach'1 2 3 4)"`@ A TFormClass B -- TFormClass Template Object@Tf ------------------------------------------- sample propertyyTT| F wi '*enabled'0 disable them TH500 :if tcnlF G0\100|oD wself(A,'.lmsg')wi'New' 'Label'('scale'5)'DT wreswres,tcnl,"Syntax: 'object'wi'caption'{string}"TP0a D(C'')C error messagePA T 2. copy paste it elsewhere under the :case'Action' section"TL wreswres,tcnl,"Example: 'fmMsg'wi'icon' '!'"LM TT 4. adapt the :case'?property' or :cas'?Method' documentationT0 Xj H4y E wi'*Focus''4T\e wi'*font'(wi'..*font') default form fontT^L8C :caselist'TButton' 'TOKButton' 'TCancelButton'L :elseCXd D wi('on',F)(H,J,G) add trapping stringXd wres0 default= no Internet connectiond T` ~'tt'wi'filename'(('tt'wi'installdir'),'prod.txt') tells which file to use`4h (c)2000 Eric Lescasse[13aug00]48t A wi'ontop'(~A wi'*ontop')88 :Select wi'*cols2scan'N88| error 'Bad matcher'C 8 ~4l wi'*font'(wi'..*font') 4P wreswres,tcnl,"param2: parameter 2 description"0)PH :else elseH4h wselfA wi'*Create' 'TEdit':44 E wi'*color'L4X wreswi'*report' query property valueXP wreswres,tcnl,"Syntax: 'object'wi'caption'string"PL wi'*Open' ELE8nov99LX  L'MouseMove' 'MouseEnter' 'MouseLeave' 'MouseDrag'X, R :endR8$ tGMarkID ID18( :case'TList' (Y|) R0 p %-P4QwTr ,,,##%(((),,,#,%(4hn with the width of the new item.48  error'Unknown TForm command: ',B"8PF wi'*kwparams' P keyword descriptionsP d  :elseif 0R L0 wi'..*object' (EDV) move to first edit boxL:end4,< :elseif wself1EdObjects'4(P :ends'((, wres'TButton'( 09/01/01DLD Block the right button default drop menu action.Dexit:(f :return(0DGEnableNext 07/26/010 HX :endn <} Use tab to next edit object.<,| GWSize'Shade',DX wi'*selection' 0 0 07/15/01D,lv GMoveIdLightds,PQ :if 0T edit box is not emptyPt :if (1warg)(47+10),(95+10),110 kb nums top row, nums pad nums, and period 08/01/01lxt(| GInfoMsg T(( wi'..*kwparams' P](\0 0'ff.bnCancel'wi'*Create' 'TCancelButton'('wherelc' '>' '=' '=' '=')'9\Hغ :if vi wi'*text' 07/24/01TEXTH, warg''0,  :return D :andif (text)=sel added 07/24/011D,(@ :select wi'class' ,(@( :if 37=1warg(( wi'*Focus'((| :orif vi text,T($L :end$4 :andif 0/8 32 37 39warg[7]a4 (:select wevent D( :elseif 39=1warg added 07/24/011D$  T1T$4F :andif vi wi'..ed1.*text'g4,g wi'*text' '',, :endb,$ dGInfo'KeyPress'rn$D2 wi '..*edobject' (EdObjects)DD :if 0=+/2wi'..*idparams' 07/10/01D L~ :return DL wi '..*edobject' (EdObjects)D t TR[io+warg] j:case 'MouseUp' x :end' $ :ende$,  right(39) down(40)n,D8 :elseif 39=1warg added 07/24/01D$ :else$(ܘ GTurnOffIds(($ TEdObjects(0< return to the edit box.d0LE wevent'KeyPress' 08/07/01L<P fTEdObjects list of edit object<$ :endts$ :if 2=I( 0 0InsertState(8 Move to next edit object881 07/24/01 :andif vi texts'8Pl State: First size/edit box is empty 07/24/01P8` error'Unknown TClass command: ',B8,X wi'*size'G,( jobfile[1] T '(( :enda(,xL wi'*selection' 0T,X~ :returnV T- R1 T pass validated items and id's count 07/05/011T0 C'TOKButton"Action"''0h:return @ ؎funtie T[2]f :elseV@ SIDSSIDS,RN[1]SIDS,MIDS)'@L a edit that has a number1LD Move the caret one space to the right.sD1:R18 P 0 freplace HJOB,11 09/04/01'800 :andif 0=+/SVm0, Pwi'..*idparams' a.,D:else04" Rwcall 'CommDlgExtendedError' T4GOnd TOutlook'?XGOD( wi'*onExitError' 'TListView"onExitError"'D :endLȤ numbers or there is only a number in the edit box.01LT keyword hi-light movement only valid in the first edit boxctTDt Temp action before and handler isD4S else return to the edit box144H :if 0=,wi'*text' 07/24/014(d :if 2=D (<, wres1 suppress default key action<4:end.SYNTAXh7 wreswres,tcnl,"0 0'ff'wi'Create' 'TForm'('*caption' 'TListView Example')"h,, (A,'_suf')wi'*Delete',0] R'NOT A VALID ENTRY'0d R1$] T[2] 1,1(A)0 $0Щ :if 0E2wargn0$ :return$l :ende: :return (: DC1warg($ R1$$l :elsen$Xk C1 0D0 state: label item is hi-light in the items areaDD (wi'..edobject') wi'*selection' ((T),0)D( :case 'MINUS'(FUNTIE tn(H MB_ABORTRETRYIGNORE(\ title'' ( :return($Hn :else1$D Note: wself may be set to the target edit boxD$h GTurnOffIds$$$ MB_YESNOCANCEL.$D :andif ~'.'ID 07/30/01D$T NonEditKeyPress$D$:end 07/19/01D0\ wi'*caption'Ctb0D:andif ~^/' '=ID 07/20/01D0H (wi'*next') wi'*Focus' '0( to avoid impossible resizes' Hh0 0'ff'wi'*Create' 'TForm'('*caption' 'TStatus Example')('*size'100 400)'DemoShow'hLؼ Single selected item or a primary selected itemsLL:)D,n L00] in component 6 of GWSDOC.SF'08|= ccc 123 ccc or ccc 123 ccc 8@LSfi p1,p2 Last String of chars@4Z HL+F-QgeP$BDEB(/A ss '.HVJ')/AUPPERCASE A select all jobfilesP@ܓ :if~0bwi'*tellofselection'@L wreswres,tcnl,"Syntax: 'object'wi'AddLF'text"L\e wreswres,tcnl,"handlersfunction: APL handlers function name".\0l wreswi'*check'0[48DG wi'*selection' ((T),0)t'8L Resetting the "value" property fires the onClick event..L8 GTurnOffIds8\m  Pw  t\̿4:0X`D\d, wi'Help'(2warg),\@AA,'JOB FILE DEFINITION' 'HItems.sf DEFINITION' 'Major GWS objects' 'MEMO'\0 wi'*datavalue'Fn0P( :if~warg8,47+10 if char typed is not 0 to 9sP:endB@ wi'*where'(H)D,2Hwi'*where'01@` :if K if TOKButton was clicked` < GEnableNext 07/26/01<8OO4 wreswi'*sysmenu'y44( wi'*font'(wi'*..font')14( :return P(<X$ Fwcall'W_Subclass'(0 H F)<(P :orif 0=IDE(8 move caret right one space88h :else 'SPACE'wi'*caption''8,VGRPTRYGW COPY 'NEWGW9',` ------------------------------------------- Template property and Method`8 I(T)1+T wself8T wreswres,tcnl,"Syntax: 'object'wi'country'countrycode"T$m7 wgive 0 HYesNoCancel'Do you like Object Oriented Programming?'HL :else Do nothing: label has no valueL$l0('NHLLH+1.....:',NHLn(< 'TO DO: Write code for Enter key'< MB_YESNO8 wi'*.e1.suppress'08H~ useful when writing database application interfacesHLؾ (IDS FLAGS MAP SCRNW DEFATTR OS)  ITEMS[1 3 5 7 8 9]nLLȻ focus is in a size edit object. More to thetL@T E(~EL)/E remove specified events01@ܵ wgive 0  :endn\` wres'Get the TEdit label width in pixels (read-only property)'s\)LdX8 State: ccc nnn ccc.8HC error'Set to avoid impossible resizes' HD\ A(TB) select matix of idsfD  LOS1 Hz:end''hxP:)LtL~h4< :if 1k ss '.op'<4H1}:else=Lq :if vi1V 07/22/01L4 SOUND, R0 TDA GPutFactors (,C)[V[3]] display job factorstT({R1 keyword(s) found(< SMEW,u FLAGS[NHL;]1 ,e :endrnp 10@( :case' '(<  :andif 1/(tcnl,C,'[')tcnl,si<X :end 0$A wi'*Focus'$,|, state: ccc n ccc,  :return ,Ƚ Edit Mode routine,D4 ccc or ccc 123 or ccc 123 c1DDm final State: ccc ccc or ccc n 07/16/01D, Zwi'*onAction'C',,pf :if 1=wi'*value'1, L :return ,= IDwi':d1.*text',, :if 1=GD[;3] ,,x- :if AU ,$ :else$$ܕ :endT$( wi'*Focus'(@ wreswi':hwnd' handle of the formd@^UG0T :elseif 0=wi'*text'10UNI8p --- Error and data saveing routines8H (wi'..*edobject') wself 08/13/01PHLl :if vi text 07/24/01wi '*text'L@ TEdObjects 07/25/01@8 and enter a zero '0'8 @UG8X GKwExit T wi'*caption'80h GWSize'Shade'rg0R S@:endselect end of data validation routinesr@D :andif (text)>sel added 07/24/01DL,a UCSTOP sound an errorL@ Note: Set wres1 on entry to data_Handlers@L wi'*text' text save for KeyPress, KeyUp callsdL8D :if ~wselfEdObjects8LD handle space, left, up, right, down, home, end keyssL<s Tab to next edit object.<0T U<h :andif (1warg)32 37 38 39 40 35 36<< :return return to edit box<4J Cwcall'GetSystemDefaultLCID'4X Cwcall'GetWindow'H'GW_CHILD' eliminate icon windowsXLD UCSTOP 08/09/01erL< wi'..*edobject' (V/O)<P Called by SizeTabHnd in KeyUp case12P4 Z(Z'0123456789.E')/Z44 GWSize 'Shade'4H s written for and Enter exit from theH D  :return return to edit box1DH, :andif warg[6] repeat flagH8 GMoveUntaggedIdLight'8< If a number there must be only oneor<< Move caret one space to the left<L GInfoMsg P 08/09/011LERS84:if 'MouseDown'wevent 07/20/018PHN SizeTabHnd by which time the defaultPP textwi'*text' capture edit box before KeyUp placesP0 GMoveIdLightT04 GWSize'Shade')4hPl Called by SizeTabHnd in KeyUp case1PP SizeTabHnd by which time the defaultPP KeyUp event will have reset wself1PP\ and integer during the KeyPress eventPP :andif /37 39=warg[7] 07/23/01PP C wi '*color' (toattrs[1]) turnoff all hilightsPP wi'*selection' 0 0 Move caret to its home positionPX RGValidateItems Check Data area only 07/05/01bX@| GInfoMsg'TAB KEY EXIT ON KEYUP'@P wres1 Must block Window's default KeyUp actionP4l the MouseUp case statement4@p Equipment has a only one edit objects@< wi '*selection' (01 0+sel))<< wi'..*edobject' wself01<8:andif 4wi':*cot' 07/08/0184 wi'*SEL'(SELwi'*selection')48 Turn off item and turn on keywords8$g88 :else 39 Right arrows'88p tGMarkID IDd88 :case 1 duct 07/05/01.84D wi'*texta'(texta(SEL)T))40d GMoveKwLightr0D :if 0=+/2wi'..*idparams' 07/10/01D0, NonEditKeyPress0LP GWSize'Shade' 08/09/011L0< the same as the data_Handlers function.d<x4 wi'*textb'(textb(SEL)T)'4P$ State: ccc c or cccc or ccc n 07/14/01Pt(, wi'*Focus'(( GTurnOffIds( :endn@ :if 7warg 07/19/01@@$ right button menu will be displayed@4 07/20/01:elseif 7warg4P :if 1=+/^\' '=T 07/15/01P< Note: Esc will only fire on KeyUp events<< :goto KeyUp 07/11/01d<P :orif 0=+/^\' '=T 07/15/01PL :andif 'OTHER'wi'aplname' 08/07/01L8t :case 4 Equipment validation8tD :if GMoveUntaggedIdLight 07/09/01DHx allow repeative left and right in edit mode.H8X wselfEdObjects 07/15/01 had wrong edit object onceXX 07/15/01 wres(0 2)[WARG[3]] 1=left 2=right07/15/01dXLL  copied from data_Handlers to use with misc class objectsLdX@ wi( 'wherelc'),(2wi'*wherelc'),(2wi'*where')2'#'wi'units'dd  :if 51fi (text,'1') over three decimals?d8 I1U1+T wself8P0 Hi-light items 07/14/01P45 :andif 0/8 32 37 39warg[7]4P --- Enter key exit. Check validity of the the data.PP$ :if 1SV2wi'..*kwparams'  added 07/15/01P8 :else Tab'8DL :return return to edit box 07/09/01DD :end 07/10/01DD :andif /37 39=1warg Left, RightDD, State: Caret is within a string of textsDDp wres0 release hold. Let KeyPress handleDD Validate duct data 07/06/01Dt< :if 0=(wi'*text')~' ' 07/10/01<<\:if warg[7]8 13 32,(47+10),(64+26),110<4D5 :if 1=textb~' 's4D :if 0=(wi'*text')~' ' 07/25/01D8D :andif 0=+/2wi'..*idparams'80 wres2 07/19/010< back, enter, space, 0-10, A-Z, decimal0)<0:end 07/19/0108 Move to next edit object8DX As default move to prior size field)DDx TEdObjects 07/25/01D0L3 back, space, left, right04 RSV/3WI'..*kwparams'44p6 I11+T wselfs'40}:return End of basic handlers0D\ (wi'..edobject') wi'*selection' ((T),0)D :case'KeyUp'p' @  GInfoMsg' Place error messaage Here'01@D :if 0wi'*texta' 07/31/01D8 wi'*selection' ((text,T),0)'80x :orif (T)wi'*limit' number of chars allowedT ,:case'KeyUp't H :return 07/10/01?HLp Immediate exit: The KeyPress event will process characterL  :endn L1 else caret will move an extra space1L 4 :endrn , GWQty'Shade', 4 BEEP hX :if 0R R initialized on exit from data vaildation functionsh\ :if (1warg)(47+10),95+10 keyboard top row plus nums pad numbers\  :else $ :elsen$Hh P'FIELD IS LIMITED TO <',N,'> DIGITS'H 8 :elseif 2=R $ :elsen$Th  State: Full or partial keyword selected. Movement key pressedT8F GErrorMsg 'NOT A VALID SIZE'018(@ :ends'(,ؙ GWQty'Shade'xt,, wi'*Focus',,< :if 0wi'*text',,h wi'*text' ''',, T wi'*text' '',, GWSize'Shade'IL,,t4 :caselist 13 32rn,,07 BEEP1,, Twi'*text'01,,p :if ~vi text,T',, wi'*text' (text,T),,  Esc key handlern,, wi'*Focus',t :if (1warg)(47+10),(95+10),110 kb nums top row, nums pad nums, and period 08/01/01t h0 :return $X :endg$ 84:case 'MouseUp' $ :elsen$`ԋ0 0'ff.ed4'wi'*Create' 'TEdit'('wherelc' '>' '='  200)('caption' 'Country')` 'wres=' wres $ :if 1R$ P :return $p :endrn$\ :elseif 37=1warg routine added 07/24/01'\ , :return H$ :if 1P[2] Is a key word hi-lighted?H :case'MouseUp' $ Twi'*text' $ 0 :end' $ DebugTrace rn$P :if 4=wi':*cot' 07/08/01PHx Error: A character may not follow a number.)H  :return $ :return$ X:case'KeyPress' : TR[io+warg] $4 GKwDefaults$ | RAV $ :if 0=T~' 'rn$  :returnrn $4 :return$   :endrn $$  :return$LXwres1 07/12/01 block default Windows actioneL@V :elseif 1+/2wi'..*kwparams'@PH:end === end of enter(13) key exit for a data edit object.1PT Control Keys: back(8) enter(13) space(32) left(37) up(38)tsTL. :endP  Illegal keypress since there is no data to checkPH GMarkIds '' Turn off items hi-lightsH H< wi '*selection' (01 0+sel))<e BEEP,:return'+ exit:n(1 wi'*Focus'(( :return((  :if 0=U((  :endrn(( wi'*Focus'((  0 0InsertState(((  :if warg[7]>110s'((P  wi'*selection'ts((x  GWSize'Shade'n((  :endrg(( 2 :return(( === Check keywordsT((h :if 0text(( :endn(( :return(X 07/24/01wi '*text' TEXT just in case KeyUp has firedX$UG4 P[2] V nP :endRH8lDebugTrace :return :return :endn :case 9  :end  file:ně :endrn( :endrn($(6 :if 9=1warg$(3 :else(P  :end  added 07/15/01P4pDebugTrace for debugging4($ :endn(H wres0 Required to allow KeyPress to firesH0 :andif (1warg)32 37 390, Esc key handler6, `:case'Action'n , 'wself=' wselfbo, 6 Button types J< AV(AZAW)wi'*where'--<4x :if 1 GRoom T44p :if 0EG ROWFIND F4TJ NN, 'W~X5[Y;io]=3' flag functionsT@ :elseif 1+/2wi'..*kwparams'@, wi'*Focus',, GMoveIdLight,,  :endgs,,L :if 0=C2warg,x DD/BF adjust form width to just contain all centered controlsx,|s wi'*status'S,, Nwi':*toindices',,H NVwi':f1.*children',0m M xntie L00D Ttexta,'.',textb0Pt3M[V/V;S+1CM]CM insert rows w/user entered item countP@G:if 12Pwi'...*idparams' 07/17/01@ :endLw wi':f1.cbSubSec.*list' B display subsectgL4T dir  Default directory'4$ wi'*text' T$($ :return(84. :elseif ^/0 1=wi'*mode'8HP:if tn( / (SPLIT FNAMES)SS 'GWSDOC')/fnums1H4 M  (1+DataTCNUL)Data40, turnoff keyword hi-lights0,4(F,'.ed1') wi'*text' ''7,$ :if 12P$t SOUNDHl. Iwi':*toindices' type of duct takeoffH4L SS5' '60 1d.4(:end0| wi'..fIds.sc.*value' U04PwselfV/EdObjects 2/55/00P44 R0 Don't fire check routinews4<` State: ccc ccc or ccc n1<p :endrn\ 261:HELP_PARTIALKEY - Display list of topics beginning with a keyword'\@^ wi'*ID' 0 continue in calling function@(p GWSize'Shade'( x:if 0=nc'LA'  :return< (F) RotateSizeIds WriteDuctSelectionsy<,ASEX :endBfacmp4 wi'*SEL'((T),0)44 aa,tcnl,'GWEquipData"Action"'4DPe :orif 0=( ID)sids item is not in edit boxdDDh  'apptitle' changed to ':apptitle' JWG-11/02/99D(@RInsertState;R;N;T;S;L($| A  object name$$ GWDesc'onKeyUp' g$L$* Mouse clicked a valid item. Edit box is empty.9L(  :if 32warg n(;:end h!:case 'KeyDown' T,t spsp, 'WM_SYSCOMMAND' ('''',wself,'''SystemMenu''Click''')tT$ :case'class'lf$4" wi'*columndisplay'G'14