README The sample FoxPro code files contained in GSXSAMPL.ZIP are designed for example use with GENSCRNX.PRG. The files contained in GSXSAMPL.ZIP are for use with FoxPro 2.5 for MS-DOS, although GENSCRNX.PRG is compatible with all versions of FoxPro 2.x. INSTALLATION Read documentation on installation supplied with GENSCRNX before using the sample code. UP AND RUNNING After unzipping GSXSAMPL.ZIP, execute GSXDEMO.PRG from within FoxPro 2.5 for MS-DOS: . To execute GSXDEMO.PRG, enter: DO GSXDEMO Notes: CUST0.SCX does not reference the object library while CUST1.SCX, CUST2.SCX, CUST3.SCX, and CUST4.SCX do. Notice the #:INSERT directive in the Cleanup snippet of CUST3.SCX. GENSCRNX executes #:INSERT faster than GENSCRN executes #INSERT with the same code output. GENSCRNX also supports the #INSERT screen directive when using FoxPro 2.0 with identical specifications as FoxPro 2.5 although using #:INSERT is recommended because it is executed faster. Important: The best way to understand the example screens is to compare the object contents using the Screen Builder followed by analysis of the generated .SPR files. Refer to GENSCRNX documentation for directive definition. If changes are made to any object library screen, the object library screen must be re-generated. This may be accomplished by using the Generate option with the object library screen open or by rebuilding the LIBRARY project. For any object library changes to affect screens in the SAMPLE project, open the SAMPLE project and rebuild the project using the Rebuild All option. PROJECTS LIBRARY.PJX Object library project Files: LIBMAIN1.SCX MAIN object library LIBACCT1.SCX ACCT object library Notes: Files in LIBRARY.PJX may be built individually and are not dependent on each other when changes are made. Although the ACCT library references objects contained in the MAIN library, rebuilding ACCT after changes are made to MAIN are not required. Important: Object library screens must re-generated before screens referencing their objects (such as screens in the SAMPLE project) can be generated. TEMPLATE.PJX Template project Files: CUSTINF1.SCX Customer information template 1 CUSTINF2.SCX Customer information template 1 SPINNER.SCX MS-DOS spinner template Notes: Files in TEMPLATE.PJX may be built individually and are not dependent on each other when changes are made. To suppress the generation of unused code from the template screens, the directive *:NOGEN is used in the Setup snippet for the screens above. *:NOGEN is used to make updates to the FOXSCX library only without generating an .SPR file. Using *:NOGEN with template screens is faster because GENSCRN is not called. Important: Template screens never have to be generated since they are used for importing only. The project is only used as a filing cabinet only and does not require building at any time. SAMPLE.PJX Sample project Files: CUST0.SCX Customer sample 0 CUST1.SCX Customer sample 1 CUST2.SCX Customer sample 2 CUST3.SCX Customer sample 3 CUST4.SCX Customer sample 4 CUST5.SCX Customer sample 5 CUST6.SCX Customer sample 6 CUST7.SCX Customer sample 7 Notes: Files in SAMPLE.PJX may be built individually and are not dependent on each other when changes are made. CUST0.SCX is a typical screen that does not define or reference any objects and does not used any GENSCRNX directives. CUST0.SCX is used to demonstrate how a FoxPro screen built without GENSCRNX directives creates an identical .SPR as when compiled without _GENSCRN=GENSCRNX.PRG. DRIVERS WINMOVE.PRG Window move driver Notes: The WINMOVE driver is used to automatically add code necessary to move the screen window off the screen by 800,800 at the end of the Setup snippet and back again at the end of the READ Show clause. This is useful (especially in FoxPro for Windows) when the READ Show clause has a visual delay when executing the .SPR and having it suppressed is desirable. The WINMOVE driver can be specified by adding *:SCXDRV2 WINMOVE in the Setup snippet. Refer to CUST5.SCX for an example of the WINMOVE driver. NOSIZE.PRG No SIZE clause driver Notes: The NOSIZE driver is used to automatically remove the SIZE clause from all screen objects (except for objects directly specifying the *:SIZE directive). This is useful when a field lengths change dynamically at runtime and proper execution requires the SIZE clause to be left out of the GET command. The NOSIZE driver can be specified by adding *:SCXDRV2 NOSIZE in the Setup snippet. Refer to CUST5.SCX for an example of the NOSIZE driver. CONTROLS.PRG Controls driver Notes: The CONTROLS driver is used to execute the *:SPINNER and *:FILL directives. The CONTROLS driver can be specified by adding *:SCXDRV2 CONTROLS in the Setup snippet. Refer to CUST3.SCX for an example of the CONTROLS driver. COPYRIGHT NOTICE Compressed file: GSXSAMPL.ZIP System: GenScrnX Author: Ken R. Levy Company: Jet Propulsion Laboratory Copyright: None (Public Domain) All source code and documentation contained in GSXSAMPL.ZIP was developed at the Jet Propulsion Laboratory in Pasadena, Calif. and has been placed into the public domain. You may use, modify, copy, distribute, and demonstrate any source code, example programs, or documentation contained in GSXSAMPL.ZIP freely without copyright protection. You may not resell any source code, example programs, or documentation contained in GSXSAMPL.ZIP. All files contained in GSXSAMPL.ZIP are provided 'as is' without warranty of any kind. In no event shall its authors, contributors, or distributors be liable for any damages. COMMENTS/SUGGESTIONS/PROBLEMS/QUESTIONS Please use CompuServe's FoxForum (section 3rd Party Products) directed to: Ken Levy 76350,2610 -----------------------------------------------------------