home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / vpceva.zip / README.INF (.txt) < prev    next >
OS/2 Help File  |  1995-03-07  |  90KB  |  1,266 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. VisPro/C ΓòÉΓòÉΓòÉ
  3.  
  4. Get Serious OS/2 Development Power With VisPro/C! 
  5.  
  6. VisPro/C is a full-featured visual programming tool for the IBM C Set and C 
  7. Set++ compilers. It gives you the power to build 32-bit OS/2 applications in 
  8. record time. 
  9.  
  10. VisPro/C gives you the robust features you have come to expect from solutions 
  11. costing much more. These tools leverage all of the important features of OS/2 
  12. including full integration with the Workplace Shell. And they come from 
  13. HockWare, the pioneer in value-priced visual programming products dedicated to 
  14. OS/2, including VisPro/REXX and VisPro/C++. 
  15.  
  16. An abundance of CUA '91 objects, multiple development views, 
  17. entity-relationship database designer and an integrated environment are just 
  18. some of the productive features you can count on for powerful development. 
  19.  
  20. With all of this, no other tool matches the functionality and productivity of 
  21. VisPro's environment--or its price. 
  22.  
  23. Easy-to-use drag and drop programming 
  24.    Quickly develop robust OS/2 GUI and DB2/2 client/server applications with 
  25.    ease using drag and drop programming. The C code automatically appears for 
  26.    each event. 
  27.  
  28. Objects, objects, objects 
  29.    From simple buttons and boxes to 3-D business graphics and everything 
  30.    in-between, VisPro/C provides the most CUA '91 objects. Not only does it 
  31.    support all of the objects in OS/2, they have extra add-on objects. 
  32.  
  33.    Also available is VisPro/Objects, a SOM based object builder that allows you 
  34.    to quickly develop your own custom objects. 
  35.  
  36. The best of OS/2 
  37.    VisPro/C gives you the best of OS/2 with complete Workplace Shell 
  38.    enablement. Drag and drop programming, multiple development views including 
  39.    Layout, List, Event Tree and Settings views, and the ability to get pop-up 
  40.    menus on the objects are some Workplace Shell features that give you maximum 
  41.    leverage of OS/2. 
  42.  
  43. C code just like you'd expect and more 
  44.    VisPro/C generates well-structured code. The result is non-proprietary, 
  45.    royalty-free code that is easy to read and maintain. And it also supports 
  46.    code regeneration. 
  47.  
  48. Lightning fast DB2/2 database design 
  49.     For DB2/2 programming, VisPro/C has a visual database designer. It provides 
  50.    an entity/relationship diagramming tool and SQL builder that lets you 
  51.    quickly create DB2/2 applications or reverse-engineer existing DB2/2 
  52.    databases. 
  53.  
  54. VisPro/C Features 
  55.  
  56. Drag and drop programming 
  57.    Workplace-Shell enabled drag and drop programming that automatically 
  58.    generates the code for you. It also allows you to drag items to the printer 
  59.    shredder and Workplace Shell folders. 
  60.  
  61. CUA '91 objects 
  62.    Comprehensive set of CUA '91 programming objects including:  push button, 
  63.    radio button, check box, list box, combo box, group box, entry field, MLE, 
  64.    text, bitmap object, value set, icon object, spin button, frame, slider, 
  65.    notebook, and container. 
  66.  
  67. Extra objects 
  68.  
  69.    o 3-D business graphics - displays data in bar, stacked bar, pie, line and 
  70.      area charts. 
  71.  
  72.    o Formatted entry field - allows users to display and edit specific formats 
  73.      of data. 
  74.  
  75.    o Spreadsheet - allows users to enter and display data in typical 
  76.      spreadsheet format. 
  77.  
  78.    o Clock - allows users to veiw time in analog, digital and military format. 
  79.  
  80.    o Calendar - allows users to view and interact with a traditional monthly 
  81.      calendar. 
  82.  
  83. Code generation 
  84.    Well-structured code generation gives you high quality code that is easy to 
  85.    read and maintain. The non-proprietary, royalty-free code can be used 
  86.    outside of the VisPro development environment. VisPro supports code 
  87.    regeneration which allows you to incorporate changes you have made to events 
  88.    and code sections outside of the VisPro environment. 
  89.  
  90.    VisPro/C automatically generates object and object event-handler code so you 
  91.    don't have to worry about the details 
  92.  
  93. Integrated development environment 
  94.  
  95.    o Manage bitmap, icon and string resources 
  96.  
  97.    o Visually set comiler and linker options. 
  98.  
  99.    o Monitor compiler progress. 
  100.  
  101.    o Click on compiler errors to find corresponding location in VisPro editor 
  102.      or any external editor. 
  103.  
  104. Multiple views 
  105.    Four development views allow you to efficiently create, change or customize 
  106.    your program. Views include Settings, Layout, Event Tree and List. The 
  107.    layout view provides a WYSIWYG design canvas and a floating tool palette. 
  108.  
  109. Visual DB2/2 database designer 
  110.    Visual method for developing DB2/2 database applications or 
  111.    reverse-engineering existing DB2/2 databases into diagrams. Using the 
  112.    entity-relationship diagramming tool, you drag and drop tables and 
  113.    relationship links in to a layout area. The point-and-click SQL builder 
  114.    allows you to easily build syntax error-free SQL statements. 
  115.  
  116. VisPro/Objects 
  117.    SOM-based interface that allows you to create and add custom controls to the 
  118.    VisPro tool bar. It allows you to specify behavior, styles and methods and 
  119.    generates most of the source code needed to bring the object into all VisPro 
  120.    environments - C, C++ an REXX. 
  121.  
  122. Other features 
  123.  
  124.    o User interface resource compatibility - allows you to build an application 
  125.      with VisPro/REXX and import the interface resources to VisPro/C and and 
  126.      vice versa. User interface resources include: bitmaps, icons, panel 
  127.      definitions, menus and accelerator key definitions. 
  128.  
  129.    o Accelerator key - allows you to type a couple of characters in the event 
  130.      editor to automatically generate a construct of the code for commonly used 
  131.      logic structure. 
  132.  
  133.    o Form styles - provides full support of all forms including plain, sizable, 
  134.      scrollable, window list, dialog and title bar. 
  135.  
  136.    o Drag/drop support - enables you to add drag and drop functionality to your 
  137.      VisPro program. 
  138.  
  139.    o OS/2-style help - allows you to provide OS/2-style (IPF) help to your 
  140.      program which users can access your program's help file just like help for 
  141.      other OS/2 applications. 
  142.  
  143. System Requirements: OS/2 2.x or OS/2 Warp, 5Mb memory and 2.5 Mb hard disk 
  144. space; IBM CSet, IBM CSet++, or IBM CSET++ FirstStep 
  145.  
  146. Suggested Retail Price:  $399 
  147.  
  148.  
  149. ΓòÉΓòÉΓòÉ 2. Getting Started ΓòÉΓòÉΓòÉ
  150.  
  151. Once you install your Evaluation version of VisPro/C, you can use the online 
  152. help to get information about how to use the product. Instructions for 
  153. installing the Evaluation version, opening a project, and using the online help 
  154. are provided in the following sections. 
  155.  
  156. o Installing the Evaluation Version 
  157.  
  158. o Creating a VisPro/C Project 
  159.  
  160. o Opening the Main form 
  161.  
  162. o Using the VisPro/C Online Help 
  163.  
  164. o Using the C Information Online Reference 
  165.  
  166.  
  167. ΓòÉΓòÉΓòÉ 2.1. Installing the Evaluation Version ΓòÉΓòÉΓòÉ
  168.  
  169. Before you use VisPro/C, ensure the following: 
  170.  
  171.  1. OS/2 2.0 or any later version must be installed on your system. 
  172.  
  173.  2. DB2/2 must be installed to use the VisPro/C Database Designer. 
  174.  
  175.  3. Your hard disk should have approximately 2.5 megabytes of free disk space. 
  176.  
  177.  4. The IBM CSET compiler must be installed on your system for you to compile 
  178.     source code created by VisPro/C. 
  179.  
  180.  5. The OS/2 2.1 Toolkit is also required for you to create OS/2 applications. 
  181.  
  182. NOTE: No version of VisPro/C should be running when you install the Evaluation 
  183. version. If this occurs, close all VisPro/C windows, reboot and then start the 
  184. installation over. 
  185.  
  186. To install the VisPro/C Evaluation version, complete the following steps: 
  187.  
  188.  1. Place the Evaluation diskette in the drive you wish to install from. 
  189.  
  190.  2. Press the right mouse button to get a pop-up menu on the diskette drive you 
  191.     are using. 
  192.  
  193.  3. Select the arrow on the Open menu item. 
  194.  
  195.  4. Select Icon View. 
  196.  
  197.  5. Double-click on the SETUP.EXE program, which has the VisPro/C icon. 
  198.  
  199.  6. Select the drive where you want to install the Evaluation version beside 
  200.     'Install on drive'. 
  201.  
  202.  7. If you want to change the path you are installing on, type the path name in 
  203.     the Install path field. 
  204.  
  205.  8. Select Install. 
  206.  
  207.  9. When the installation is complete, the Installation Complete window 
  208.     appears. It will prompt you for additional input if modifications to your 
  209.     CONFIG.SYS file are necessary. 
  210.  
  211.     By default, the installation program will modify your CONFIG.SYS and 
  212.     display this README information book. If you do not wish the installation 
  213.     program to modify your CONFIG.SYS, deselect the 'Update the CONFIG.SYS' 
  214.     check box and you will be given instructions on the changes needed. If you 
  215.     do not wish to view the README book, deselect the appropriate check box. 
  216.  
  217. 10. Select Continue. 
  218.  
  219.     The changes are made to your CONFIG.SYS. 
  220.  
  221. 11. Since VisPro/C requires a path be specified to its required files, you must 
  222.     shutdown and reboot before using the product. 
  223.  
  224.     After Rebooting, the VisPro/C folder appears on the OS/2 desktop. 
  225.  
  226. 12. Double Click on the VisPro/C icon in the Workplace Shell. 
  227.  
  228.     You will see the VisPro/C Icon View window appear. This window contains the 
  229.     following: 
  230.  
  231.    o VisPro/C Code Templates: Allows you to drag and drop your own code 
  232.      sections into your projects. See the online help for the Code Templates 
  233.      program on how to extend your list of available code sections. 
  234.    o Projects folder: Where you will create new projects. 
  235.    o Samples folder: Contains the Data entry sample. 
  236.    o Color palette: Allows you to change colors on your form. 
  237.    o Font palette: Allows you to change the font on your form. 
  238.    o Read Me: This Read Me File. 
  239.  
  240.  
  241. ΓòÉΓòÉΓòÉ 2.2. Creating a VisPro/C Project ΓòÉΓòÉΓòÉ
  242.  
  243. When you open the VisPro/C folder you created during installation, you see a 
  244. template called Project. You can drag a new folder off the Project template and 
  245. use it as your new project, which will become your application. 
  246.  
  247. To open your new project, complete the following steps: 
  248.  
  249.  1. Open the VisPro/C icon on your desktop. To do so, double-click the folder. 
  250.  
  251.  2. Open the Projects folder in the VisPro/C folders Icon View window. To do 
  252.     so, double-click the Projects folder. 
  253.  
  254.  3. Create a new Project folder. To do so, press the right mouse button and 
  255.     drag a folder off the Project template in the Projects - Icon View window. 
  256.  
  257.     A Project folder appears. 
  258.  
  259.  4. Rename your Project folder. To do so, select the Project folder and press 
  260.     Alt while you click the left mouse button. Type the name you want to assign 
  261.     to your new application. 
  262.  
  263.     Click outside of the folder. This 'sets' the name for the Project folder. 
  264.  
  265.  5. Open your Project folder. To do so, double-click the folder icon. 
  266.  
  267.     The icon view for your new application appears. You will see a Main icon. 
  268.     The Main icon is the form you use to begin designing your application. 
  269.     After your application is complete, do not delete, move, or rename the Main 
  270.     form. 
  271.  
  272.     The next section details the ways in which a form may be accessed. 
  273.  
  274.  
  275. ΓòÉΓòÉΓòÉ 2.3. Opening the Main Form ΓòÉΓòÉΓòÉ
  276.  
  277. To begin creating your application, you can open the Main form in one of two 
  278. ways: 
  279.  
  280. o METHOD A: 
  281.  
  282.   Double-click on the Main icon. The form appears in the Layout view, 
  283.   presenting the tool bar and the canvas. This view allows you to easily design 
  284.   your form. 
  285.  
  286. o METHOD B: 
  287.  
  288.   Select the Main icon, and then click the right mouse button to get the pop-up 
  289.   menu for the Main icon. Select Open. A cascading menu appears, allowing you 
  290.   to select the view you want to begin working with. The Layout view is 
  291.   recommended for designing the layout of your form. 
  292.  
  293.   You may also generate source code and start a compilation from the pop-up 
  294.   menu, without having to open your project. 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 2.4. Using VisPro/C's Online Help ΓòÉΓòÉΓòÉ
  298.  
  299. VisPro/C includes an extensive online help system that you can use if you have 
  300. questions while you are working. To get information about how the online help 
  301. works, select the Help menu. A cascading menu appears, presenting the following 
  302. menu items 
  303.  
  304. o Help Index.... 
  305. o General Help.... 
  306. o Using Help.... 
  307. o Product information.... 
  308.  
  309. You can select any of these items. To find out what information each of these 
  310. items provides, highlight the item (use the arrow keys), and then press F1. 
  311.  
  312. Note: You can browse the help using the online help Contents. To use the 
  313. Contents, select the OPTIONS menu from within any help window, and then select 
  314. CONTENTS. 
  315.  
  316.  
  317. ΓòÉΓòÉΓòÉ 2.5. Using the C Online Language Reference ΓòÉΓòÉΓòÉ
  318.  
  319. If you require information about C, you can use the excellent C Online Language 
  320. Reference that comes with the CSET++ or CSET compilers. To use the reference, 
  321. double click on the IBM C/C++ Tools folder in your Workplace Shell. Then double 
  322. click the C/C++ Online Language Reference icon in the Icon View window. 
  323.  
  324. You may also wish to use the QwikInf facility which comes with the IBM Toolkit 
  325. to speed access to your most used programming references. To find out more 
  326. about KwikInf, start it by selecting the KwikInf Icon from the Toolkit 
  327. Information folder of the Toolkit 2.1 Icon folder. 
  328.  
  329.  
  330. ΓòÉΓòÉΓòÉ 3. Limitations of the Evaluation Version ΓòÉΓòÉΓòÉ
  331.  
  332. The Evaluation Version of VisPro/C differs from the full product in several key 
  333. aspects: 
  334.  
  335. o No user's guide or reference is provided. However, you can get enough 
  336.   information to get started by viewing this README file and by referring to 
  337.   the online help. The full product comes with a complete user's guide which 
  338.   includes detailed information on how to use VisPro, a description of the 
  339.   structure of the generated code, full descriptions on all the add on objects, 
  340.   and much more. 
  341.  
  342. o The evaluation version is limited to generating the source for projects with 
  343.   two windows (forms). Also each form is limited to at most 10 objects. 
  344.   Obviously, these limitations are not part of the full product. 
  345.  
  346. o The Database Designer is not included in the Evaluation version. This feature 
  347.   allows you to design DB2/2 applications or reverse engineer existing DB2/2 
  348.   databases to create entity/relationship (E/R) diagrams. These can then be 
  349.   used to create visual SQL statements or to automatically generate the code 
  350.   used to access Database Manager-DB2/2 calls. Using the Database Designer you 
  351.   can construct a form accessing a database table with a single drag and drop 
  352.   operation. 
  353.  
  354.     _________________________________________
  355.     The VisPro/C Database Designer.
  356.  
  357. o The VisPro add-on objects are not included in the Evaluation Version. These 
  358.   objects are business graphics, formatted entry field, spreadsheet, clock, and 
  359.   calendar. 
  360.  
  361.     _________________________________________
  362.     A sample application displaying some of the add-on objects.
  363.  
  364.   You can use these objects in any or your C applications, even those not 
  365.   generated by VisPro. 
  366.  
  367.    Business graphics 
  368.       Add pizzaz to your business related applications by using this control. 
  369.       Displays your data in bar, stacked bar, pie, line and area charts 
  370.       formats. You can control many style options including 3D effects and 
  371.       colors. 
  372.  
  373.    Formatted entry field 
  374.       Displays a text entry area that has specific formats of data, including 
  375.       date, time, uppercase, or a customizable picture mask. 
  376.  
  377.    Spreadsheet 
  378.       Allows users to enter and display data in spreadsheet format. You can 
  379.       control the number of rows and columns, as well as other spreadsheet 
  380.       attributes. This is ideal for providing you applications with a way of 
  381.       entering information in column fashion. 
  382.  
  383.    Calendar 
  384.       This monthly calendar provides you applications with a quick and easy way 
  385.       of specifing date information. 
  386.  
  387.    Clock 
  388.       The clock control displays the time in analog, digital and military 
  389.       format. 
  390.  
  391.             _________________________________________
  392.             A sample application displaying the clock object in analog,
  393.             digital, and military formats.
  394.  
  395. o The evaluation version is shipped with only one sample program. The full 
  396.   product currently has several, including samples showing how to use the 
  397.   container and the VisPro add-on objects, 
  398.  
  399. o The resource information for each window is generated in binary form in the 
  400.   Evaluation Version. As a result, it is not possible to modify these outside 
  401.   the VisPro environment. In the full product, this information is generated in 
  402.   textual form, allowing for easy inspection and modification. 
  403.  
  404. o The product information window is forced to the foreground every time you 
  405.   enter the Evaluation Version of the VisPro editor. In the full product, you 
  406.   can choose not to view this window. 
  407.  
  408. o After opening the layout view 40 times, the evaluation version will bring a 
  409.   window telling you that you have used it 40 times.  After this, you will no 
  410.   longer be able to bring up the layout editor. 
  411.  
  412.  
  413. ΓòÉΓòÉΓòÉ 4. Sample Project ΓòÉΓòÉΓòÉ
  414.  
  415. This section describes the steps you follow to create a simple data entry 
  416. application using a variety of standard objects. Your final application should 
  417. look something like this: 
  418.  
  419. To use the application, a user types text into the entry field at the top of 
  420. the project. Selecting the Add push button or pressing the Enter key adds the 
  421. item in the entry field to the end of the list box in ascending or descending 
  422. order, depending on the state of the Sort order radio buttons. 
  423.  
  424. If the user selects Clear, the contents of the list box and entry field are 
  425. deleted, and the text insertion cursor is placed in the entry field for further 
  426. processing. 
  427.  
  428. To create the data entry application, complete the steps in each of the 
  429. following sections. 
  430.  
  431.  1. Start the Application 
  432.  
  433.  2. Add the Objects 
  434.  
  435.  3. Size and Align Objects 
  436.  
  437.  4. Provide Behavior 
  438.  
  439.  5. Changing the Order of the Objects 
  440.  
  441.  6. Compile and Execute the Application 
  442.  
  443.  
  444. ΓòÉΓòÉΓòÉ 4.1. Start the Application ΓòÉΓòÉΓòÉ
  445.  
  446. To start the application and name it, complete the following steps: 
  447.  
  448.  1. Double-click the VisPro/C icon in the Workplace Shell. 
  449.  
  450.  2. Double-click the PROJECTS icon folder in the VisPro/C Icon View window. 
  451.  
  452.     The Projects - Icon View window appears. 
  453.  
  454.  3. Drag a new project off the Project template (hold down the right mouse 
  455.     button and drag to an empty space in the Projects folder, then release). 
  456.  
  457.  4. Use direct editing to name the new project Data (press the Alt key and 
  458.     click the left mouse button at the same time). Type Data over the existing 
  459.     name. 
  460.  
  461.  5. Double-click the Data project icon. 
  462.  
  463.     The Data - Icon View window appears. You will see the following icons: 
  464.  
  465.    o Main form, which is the form you use to begin designing your application. 
  466.      After your application is complete, do not delete, move, or rename the 
  467.      Main form. 
  468.  
  469.    o Form template, which allows you to drag off additional forms if you want 
  470.      your application to have more than one window. 
  471.  
  472.    o SubProcs folder, which allows you to incorporate existing C code into your 
  473.      application or to group commonly used code segments so they can be called 
  474.      anywhere in your program. 
  475.  
  476.    o Source folder, which contains all of the source code for your project. The 
  477.      source code is created by selecting either Generate source or Generate and 
  478.      compile from the project's Form menu. 
  479.  
  480.    o OPTIONS.MKC, is a file which contains the build options for your 
  481.      application. It is invoked by double-clicking the OPTIONS.MKC icon. 
  482.  
  483.    o RESOURCE.VPC, is a file which contains external resources for your 
  484.      application, such as bitmaps or pointers. You can start the VisPro 
  485.      Resource editor by double-clicking on the RESOURCE.VPC file. 
  486.  
  487.  6. Double-click on the Main icon. 
  488.  
  489.     The Layout view for the application appears. 
  490.  
  491.     The Form Layout view is the environment in which you design the window that 
  492.     your user will perform tasks with. For each window your user works with, 
  493.     you create a form. This application will consist of a single form. 
  494.  
  495.     The form consists of two main parts: the Tool Bar/Palette and Canvas. 
  496.  
  497.  
  498. ΓòÉΓòÉΓòÉ 4.1.1. The Tool Bar/Palette ΓòÉΓòÉΓòÉ
  499.  
  500. _________________________________________
  501. The VisPro/C Tool palette. An * denotes objects that are not
  502. included in the Evaluation version.
  503.  
  504. About the Tool Bar 
  505.  
  506. The tool bar and tool palette consist of a series of icons. Each icon 
  507. represents a tool. Each tool is used to place a certain kind of object on the 
  508. canvas. For example, the push button tool places a push button object on the 
  509. canvas. 
  510.  
  511. An object is a graphical item that can be used to perform tasks. Radio buttons 
  512. and list boxes are examples of objects. 
  513.  
  514. The difference between a tool and an object is that a tool is a graphical 
  515. representation of something that can be added to the canvas. Once added, it 
  516. becomes an object that can be used to perform tasks. 
  517.  
  518. You can turn off the tool bar by selecting Open and then Settings from the Form 
  519. menu. Select the Options page and deselect Show tool bar. You can also use the 
  520. Options page to select the tool palette. If you select Save defaults, all the 
  521. defaults you have set for the form are saved, including fonts, grid spacing, 
  522. etc. 
  523.  
  524. Saving defaults affects the defaults for every other project you create. If you 
  525. do not select Save defaults, your changes will affect only the project the 
  526. change was made in. 
  527.  
  528.  
  529. ΓòÉΓòÉΓòÉ 4.1.2. The Canvas ΓòÉΓòÉΓòÉ
  530.  
  531. _________________________________________
  532. The VisPro/C Layout view, showing the tool bar and tool palette.
  533.  
  534. About the Canvas 
  535.  
  536. The canvas is the open, gridded area below the tool bar. This is the area in 
  537. which you will design (or lay out) your form. You select the tools you need 
  538. from the tool bar or tool palette and add them to the canvas. Once objects are 
  539. added to the canvas, you can customize their appearance and provide behavior 
  540. for them. 
  541.  
  542. You can turn off the grid in the canvas by selecting Open and then Settings 
  543. from the Form menu. Select the Options page and deselect Show grid. If you 
  544. select Save defaults, all the defaults you have set for the form are saved, 
  545. including fonts, grid spacing, etc. Saving defaults affects the defaults for 
  546. every other project you create. If you do not select Save defaults, your 
  547. changes will affect only  the project the change was made in. 
  548.  
  549. Note: Snap to grid forces the object to align with the nearest grid line. If 
  550. you do not want to use this feature, deselect it. 
  551.  
  552.  
  553. ΓòÉΓòÉΓòÉ 4.2. Add the Objects ΓòÉΓòÉΓòÉ
  554.  
  555. In this section, you add the objects from the toolbar to the Layout view of 
  556. your application. You will then specify characteristics, such as a unique name, 
  557. for those objects. You specify these characteristics using the Settings view 
  558. for the objects. 
  559.  
  560. The application consists of a text object, two push buttons, two radio buttons, 
  561. a list box, and an entry field. 
  562.  
  563. Complete the steps in the following sections to add the objects and define 
  564. settings for them. 
  565.  
  566.  
  567. ΓòÉΓòÉΓòÉ 4.2.1. ADD Push Button ΓòÉΓòÉΓòÉ
  568.  
  569. In this section, you add a push button to the canvas. You then use the Settings 
  570. view of the push button to specify that it will be named ADD. In addition, you 
  571. use the Settings view to provide a descriptive name (known as a symbol) for the 
  572. push button. This descriptive name makes it easy to identify the object when 
  573. you begin programming. 
  574.  
  575.  1. Select the Push button tool from the tool bar. 
  576.  
  577.  2. Click inside the canvas to place a push button approximately where you see 
  578.     it in the figure of the application (the bottom left corner of your form). 
  579.  
  580.  3. Double-click the push button. 
  581.  
  582.     The Settings view notebook for the push button appears, displaying the 
  583.     Style page. 
  584.  
  585.  4. Select the Default check box.  This causes the ADD push button to be 
  586.     selected whenever the Enter key is pressed. 
  587.  
  588.  5. Select the General tab on the Settings notebook. 
  589.  
  590.  6. Select the Text field, and type ~Add. This causes the push button to appear 
  591.     with the label Add on the Layout view, and when the application is run. The 
  592.     tilde (~) character in front of the A places an underscore beneath the A 
  593.     character, allowing the user to select the ADD push button by pressing the 
  594.     Alt-A combination. 
  595.  
  596.     Note: An alternative method for specifying the name of the object is to use 
  597.     direct editing. The General page is recommended here for convenience 
  598.     because you will be specifying other settings for the object. 
  599.  
  600.  7. Select the Symbol field, and type ADD. Do not change the default ID. 
  601.  
  602.     Note: Symbol is a unique name you supply that identifies an object. The ID 
  603.     is a unique integer used to identify an object. The Symbol is optional, but 
  604.     you include it because a symbol with a descriptive name is easier to refer 
  605.     to. 
  606.  
  607.  8. Select Close from the title bar icon menu (the symbol at the top left-hand 
  608.     corner of the Settings view window). 
  609.  
  610.  
  611. ΓòÉΓòÉΓòÉ 4.2.2. CLEAR Push Button ΓòÉΓòÉΓòÉ
  612.  
  613. In this section, you add another push button to the canvas. You then use the 
  614. Settings view of the push button to specify that it will be named CLEAR. In 
  615. addition, you use the Settings view to provide a descriptive name (known as a 
  616. symbol) for the push button. This descriptive name makes it easy to identify 
  617. the object when you begin programming. 
  618.  
  619.  1. Select the Push button tool from the tool bar. 
  620.  
  621.  2. Click inside the canvas to place a push button approximately where you see 
  622.     it in the figure of the application (to the right of the ADD button). 
  623.  
  624.  3. Double-click the push button. 
  625.  
  626.     The Settings view notebook for the push button appears, displaying the 
  627.     Style page. The defaults are used for the Style page. 
  628.  
  629.  4. Select the General tab on the notebook. Select the Text field, and type 
  630.     ~Clear. This causes the push button to appear with the label Clear when the 
  631.     application it run.  The tilde (~) character in front of the C places an 
  632.     underscore beneath the C character, allowing the user to select the CLEAR 
  633.     push button by pressing the Alt-C combination. 
  634.  
  635.     Note: An alternative method for specifying the name of the object is to use 
  636.     direct editing. The General page is recommended here for convenience 
  637.     because you will be specifying other settings for the object. 
  638.  
  639.  5. Select the Symbol field, and type CLEAR. Do not change the default ID. 
  640.  
  641.     Note: Symbol is a unique name you supply that identifies an object. The ID 
  642.     is a unique integer used to identify an object. The Symbol is optional, but 
  643.     you include it because a symbol with a descriptive name is easier to refer 
  644.     to. 
  645.  
  646.  6. Select Close from the title bar icon menu (the symbol at the top left-hand 
  647.     corner of the Settings view window). 
  648.  
  649.  
  650. ΓòÉΓòÉΓòÉ 4.2.3. ITEMS List Box ΓòÉΓòÉΓòÉ
  651.  
  652. To add and define settings for the ITEMS list box, complete the following 
  653. steps: 
  654.  
  655.  1. Select the List box tool from the tool bar. 
  656.  
  657.  2. Click inside the canvas to place the list box above the CLEAR and ADD push 
  658.     buttons. 
  659.  
  660.  3. Double-click the list box. 
  661.  
  662.     The Settings view notebook for the list box appears. 
  663.  
  664.  4. Select the General tab on the notebook. 
  665.  
  666.  5. Select the Symbol field, and type ITEMS. Do not change the default ID. 
  667.  
  668.  6. Select Close from the title bar icon menu. 
  669.  
  670.  
  671. ΓòÉΓòÉΓòÉ 4.2.4. Sort Order Radio Buttons ΓòÉΓòÉΓòÉ
  672.  
  673. Two radio buttons, Ascending and Descending, will now be added to your project. 
  674. Radio buttons represent a mutually exclusive choice that the user of your 
  675. project must make. That is, only one of these buttons can be highlighted at a 
  676. time. Radio buttons (and check boxes) are generally used only to show a 
  677. selection state in your applications. 
  678.  
  679. To add the Ascending and Descending radio buttons to your project, complete the 
  680. following steps: 
  681.  
  682.  1. To accomodate the next several objects, increase the size of your form by 
  683.     positioning the mouse pointer over the top border of your form window. 
  684.  
  685.  2. Right click and drag the form window up about an inch, then release the 
  686.     mouse to set the new form position. 
  687.  
  688.  3. Select the Radio button tool from the tool bar. 
  689.  
  690.  4. Click inside the canvas to place two radio buttons, one over the other, 
  691.     above the Items list box. 
  692.  
  693.  5. Double-click the top radio button. 
  694.  
  695.     The Settings view notebook for the radio button appears. 
  696.  
  697.  6. Select the Group check box on the Style page. This provides a mutually 
  698.     exclusive behavior for the two radio buttons (you should only select the 
  699.     Group check box for the first radio button in a group). 
  700.  
  701.  7. Select the General tab on the notebook. 
  702.  
  703.  8. Select the Text field, and type Ascending. 
  704.  
  705.  9. Select the Symbol field, and type ASCENDING. Do not change the default ID. 
  706.  
  707. 10. Select Close from the title bar icon menu. 
  708.  
  709. 11. Double-click the lower radio button. 
  710.  
  711.     The Settings view notebook for the radio button appears. 
  712.  
  713. 12. Select the General tab on the notebook. 
  714.  
  715. 13. Select the Text field, and type Descending. 
  716.  
  717. 14. Select the Symbol field, and type DESCENDING. Do not change the default ID. 
  718.  
  719. 15. Select Close from the title bar icon menu. 
  720.  
  721.  
  722. ΓòÉΓòÉΓòÉ 4.2.5. Sort Order Text Object ΓòÉΓòÉΓòÉ
  723.  
  724. To add and define settings for the Sort order text object, complete the 
  725. following steps: 
  726.  
  727.  1. Select the Text object from the tool bar. 
  728.  
  729.  2. Click inside the canvas to place the text object above the Ascending radio 
  730.     button. 
  731.  
  732.  3. Double-click the text object. 
  733.  
  734.     The Settings view notebook for the text object appears. 
  735.  
  736.  4. Select the General tab on the notebook. 
  737.  
  738.  5. Select the Text field, and type Sort order. 
  739.  
  740.  6. Select Close from the title bar icon menu. 
  741.  
  742.  
  743. ΓòÉΓòÉΓòÉ 4.2.6. DATA Entry Field ΓòÉΓòÉΓòÉ
  744.  
  745. To add and define settings for the Data entry field, complete the following 
  746. steps: 
  747.  
  748.  1. Select the Entry field tool from the tool bar. 
  749.  
  750.  2. Click inside the canvas to place an entry field tool on the canvas, above 
  751.     the Sort order text object. 
  752.  
  753.  3. Double-click the entry field. 
  754.  
  755.     The Settings view notebook for the entry field appears. 
  756.  
  757.  4. Select the General tab on the notebook. 
  758.  
  759.  5. Select the Symbol field and type DATA. Do not change the default ID. 
  760.  
  761.  6. Select Close from the title bar icon menu. 
  762.  
  763.  
  764. ΓòÉΓòÉΓòÉ 4.2.7. Size and Align the Objects ΓòÉΓòÉΓòÉ
  765.  
  766. To adjust the text so it fits inside each object, complete the following steps: 
  767.  
  768.  1. Select the Pointer tool from the Tool bar/palette. 
  769.  
  770.  2. Select the objects that contain text (the text object and radio buttons). 
  771.  
  772.     An easy way to select multiple objects is to use drag selection. Place the 
  773.     mouse pointer over the first object and press the left mouse button. Hold 
  774.     it down as you move the mouse to select the other objects. Then release the 
  775.     mouse button. 
  776.  
  777.     The selected objects are highlighted. 
  778.  
  779.  3. From the Selected menu, select Arrange, and then select Fit to Text. 
  780.  
  781.     The objects you selected change size to accommodate the text inside. 
  782.  
  783.     Note: You did not fit the text for the entry field because the text in the 
  784.     entry field changes when the field is used, depending upon the total. You 
  785.     did not change the push buttons because they need to be equal sizes. 
  786.  
  787.  
  788. ΓòÉΓòÉΓòÉ 4.3. Provide Behavior for the Application ΓòÉΓòÉΓòÉ
  789.  
  790. You will now program the application so that it works as described at the 
  791. beginning of this section. 
  792.  
  793. You can provide behavior for the application from the Layout view. However, we 
  794. will use the Event tree view because it allows you to easily see both the 
  795. objects and the C statements for the behavior you specify. 
  796.  
  797. o To switch to the Event tree view, select Event tree view from the View menu. 
  798.  
  799. o The objects you added to your application appear on the left. The Event 
  800.   window appears on the right. 
  801.  
  802. In the following sections, you will provide behavior for the When opened event, 
  803. the ADD push button, and the CLEAR push button. 
  804.  
  805.  
  806. ΓòÉΓòÉΓòÉ 4.3.1. When Opened Event ΓòÉΓòÉΓòÉ
  807.  
  808. When the user starts this project, one of the two radio buttons should be 
  809. highlighted (since they are mutually exclusive, and one or the other must 
  810. always be highlighted). The When opened event is where all form initialization 
  811. takes place: such as loading list boxes with data and setting the display 
  812. styles for objects. 
  813.  
  814. To select the Ascending radio button from the Form When opened event, complete 
  815. the following steps: 
  816.  
  817.  1. From the Form menu, select When, and then Opened(WM_INITDLG). 
  818.  
  819.     The Event Opened window appears. The top of the Event window displays the 
  820.     following statement for Event opened: 
  821.  
  822.         /* Event Opened - Form DATA\Main */
  823.         CHAR aTextValue[255]="text";
  824.         LONG anIntegerValue=0;
  825.         ULONG anUnsignedValue=0;
  826.  
  827.     We will be dragging objects to the Event Opened window from the Event tree 
  828.     view. 
  829.  
  830.  2. Position the Event Opened window so that the left side of the window is 
  831.     visible beneath the Event tree view of your project. 
  832.  
  833.     Select the title bar of the Event tree view window to make it active. 
  834.  
  835.  3. Move the mouse pointer over the ASCENDING radio button icon (on the left 
  836.     side of the Event tree view), and hold down the right mouse button as you 
  837.     drag from the ASCENDING radio button icon on the Event tree view to the 
  838.     Event Opened window. 
  839.  
  840.  4. Release the mouse when you reach a point below the existing code on the 
  841.     Event Opened window. 
  842.  
  843.     The Create Link window appears. 
  844.  
  845.  5. Select Check the item from the Create Link window, then select OK. 
  846.  
  847.     SHORTCUT METHOD: Double-click Select a button. 
  848.  
  849.     The following C statement appears: 
  850.  
  851.         /* Check the item  ASCENDING Radio Button */
  852.         WinCheckButton(hwndDlg, ASCENDING, 1);
  853.  
  854. The code in the Event Opened window should look like this when your are 
  855. finished: 
  856.  
  857. /* Event Opened - Form DATA\Main */
  858. CHAR aTextValue[255]="text";
  859. LONG anIntegerValue=0;
  860. ULONG anUnsignedValue=0;
  861.  
  862. /* Check the item  ASCENDING Radio Button */
  863. WinCheckButton(hwndDlg, ASCENDING, 1);
  864.  
  865.  
  866. ΓòÉΓòÉΓòÉ 4.3.2. ADD Push Button ΓòÉΓòÉΓòÉ
  867.  
  868. The ADD push button takes the value found in the entry field and adds it to the 
  869. list box. 
  870.  
  871. To provide this behavior, complete the following steps: 
  872.  
  873.  1. From the Event tree view, select the ADD push button. 
  874.  
  875.  2. From the Selected menu, select When, and then Clicked/Selected. 
  876.  
  877.     The following C statements appear in the top of the Event window. 
  878.  
  879.         /* Event ~Add ADD , Clicked/Selected */
  880.         CHAR aTextValue[255]="text";
  881.         LONG anIntegerValue=0;
  882.         ULONG anUnsignedValue=0;
  883.  
  884.  3. Make sure the Add push button Clicked/selected event is highlighted. Then 
  885.     drag the Data entry field into the Event window, below the existing C 
  886.     statements, and then release the mouse button. 
  887.  
  888.     The Create Link window appears. 
  889.  
  890.  4. Select Get item text, and then select OK. 
  891.  
  892.     The following C statement appears: 
  893.  
  894.         /* Get item text DATA Entry Field */
  895.         WinQueryDlgItemText(hwndDlg, DATA, sizeof(aTextValue), aTextValue);
  896.  
  897.  5. Move the mouse pointer over the Ascending radio button icon. Then drag the 
  898.     ASCENDING radio button into the Event window, below the existing C 
  899.     statements, and release the mouse button. 
  900.  
  901.     The Create Link window appears. 
  902.  
  903.  6. Select Is button selected, then select OK. 
  904.  
  905.     The following C statement appears: 
  906.  
  907.         /* Is button selected? Ascending Radio Button */
  908.         anUnsignedValue=(ULONG)WinQueryButtonCheckState(hwndDlg,ASCENDING);
  909.  
  910.  7. On a new line below this statement, type the word if (followed by a space). 
  911.     The following code template will be added: 
  912.  
  913.         if ()
  914.         {
  915.         } else {
  916.         } /* end if */
  917.  
  918.  8. In the parenthesis, type 
  919.  
  920.         anUnsignedValue == 1
  921.     . 
  922.  
  923.  9. Move the cursor down one line and to the right of the bracket ({), and 
  924.     press Enter to insert a blank line in your code template. 
  925.  
  926.     This provides space to insert the code for the next step. 
  927.  
  928. 10. Make sure the ADD push button Clicked/selected event is highlighted. Then 
  929.     drag the ITEMS list box into the Event window, into the blank line created 
  930.     by the previous step. 
  931.  
  932.     The Create Link window appears. 
  933.  
  934. 11. Select Add item sorted ascending, and then select OK. 
  935.  
  936.     The following C statement appears: 
  937.  
  938.         /* Add item sorted ascending ITEMS List Box */
  939.         anIntegerValue=(LONG)WinSendDlgItemMsg(hwndDlg, ITEMS,
  940.                           LM_INSERTITEM,
  941.                           MPFROMSHORT(LIT_SORTASCENDING),
  942.                           MPFROMP(aTextValue));  /* Text for new item */
  943.  
  944. 12. Insert a blank line between the lines containing the words else and end if. 
  945.  
  946. 13. Make sure the ADD push button Clicked/selected event is highlighted. Then 
  947.     drag the ITEMS list box into the Event window, and into the blank line 
  948.     created by the previous step. 
  949.  
  950.     The Create Link window appears. 
  951.  
  952. 14. Select Add item sorted descending, and then select OK. 
  953.  
  954.     The following C statement appears: 
  955.  
  956.         /* Add item sorted descending ITEMS List Box */
  957.         anIntegerValue=(LONG)WinSendDlgItemMsg(hwndDlg, ITEMS,
  958.                           LM_INSERTITEM,
  959.                           MPFROMSHORT(LIT_SORTDESCENDING),
  960.                           MPFROMP(aTextValue));  /* Text for new item */
  961.  
  962.     Now that the text has been added to the list box, we will place the cursor 
  963.     back into the entry field, and highlight its contents. 
  964.  
  965.     This allows the user to either press the Enter key to add a new instance of 
  966.     the value to the list box, or begin typing a new value without having to 
  967.     delete the previous value. 
  968.  
  969. 15. Make sure the Add push button Clicked/selected event is highlighted. Then 
  970.     drag the Data entry field into the Event window, below the existing 
  971.     statements. 
  972.  
  973.     The Create Link window appears. 
  974.  
  975. 16. Select Get item text length, and then select OK. 
  976.  
  977.     The following C statement appears: 
  978.  
  979.         /* Get item text length DATA Entry Field */
  980.         anIntegerValue=(LONG)WinQueryDlgItemTextLength(hwndDlg, DATA);
  981.  
  982. 17. Once more, we will drag the Data entry field into the Event window, below 
  983.     the existing statements. 
  984.  
  985.     The Create Link window appears. 
  986.  
  987. 18. Select Set selection, and then select OK. 
  988.  
  989.     The following C statement appears: 
  990.  
  991.         /* Set selection DATA Entry Field */
  992.         anUnsignedValue = (ULONG)WinSendDlgItemMsg(hwndDlg, DATA,
  993.                           EM_SETSEL,
  994.                           MPFROM2SHORT(0,    /* First char in selection */
  995.                           5),             /* Last char in selection */
  996.                           0)
  997.  
  998. 19. Change the number 5 to anIntegerValue. 
  999.  
  1000.     The preceding two statements highlight existing text in the DATA entry 
  1001.     field by selecting all characters within this object. 
  1002.  
  1003. 20. Drag the DATA entry field into the event window, releasing the mouse below 
  1004.     the existing statements in the event window: 
  1005.  
  1006.     The Create Link window appears. 
  1007.  
  1008. 21. Select Give focus to window, and then select OK. 
  1009.  
  1010.     The following C statement appears: 
  1011.  
  1012.         /* Give focus to window DATA Entry Field */
  1013.         WinSetFocus(HWND_DESKTOP,WinWindowFromID(hwndDlg, DATA));
  1014.  
  1015. 22. Select Save from the Event menu. 
  1016.  
  1017. When you are finished with the ADD push button, your code will look like this: 
  1018.  
  1019. /* Event ~Add ADD, Clicked/selected */
  1020. CHAR aTextValue[255]="text";
  1021. LONG anIntegerValue=0;
  1022. ULONG anUnsignedValue=0;
  1023.  
  1024.  
  1025. /* Get item text DATA Entry Field */
  1026. WinQueryDlgItemText(hwndDlg, DATA, sizeof(aTextValue), aTextValue);
  1027.  
  1028. /* Is button selected? ASCENDING Radio Button */
  1029. anUnsignedValue=(ULONG)WinQueryButtonCheckstate(hwndDlg,ASCENDING);
  1030.  
  1031. if (anUnsignedValue == 1)
  1032. {
  1033. /* Add item sorted ascending ITEMS List Box */
  1034. anIntegerValue=(LONG)WinSendDlgItemMsg(hwndDlg, ITEMS,
  1035.                   LM_INSERTITEM,
  1036.                   MPFROMSHORT(LIT_SORTASCENDING),
  1037.                   MPFROMP(aTextValue));  /* Text for new item */
  1038. } else {
  1039. /* Add item sorted descending ITEMS List Box */
  1040. anIntegerValue=(LONG)WinSendDlgItemMsg(hwndDlg, ITEMS,
  1041.                   LM_INSERTITEM,
  1042.                   MPFROMSHORT(LIT_SORTDESCENDING),
  1043.                   MPFROMP(aTextValue));  /* Text for new item */
  1044. } /* end if */
  1045.  
  1046. /* Get item text length DATA Entry Field */
  1047. anIntegerValue=(LONG)WinQueryDlgItemTextLength(hwndDlg, DATA);
  1048.  
  1049. /* Set selection DATA Entry Field */
  1050. anUnsignedValue = (ULONG)WinSendDlgItemMsg(hwndDlg, DATA,
  1051.                   EM_SETSEL,
  1052.                   MPFROM2SHORT(0,    /* First char in selection */
  1053.                   anIntegerValue),             /* Last char in selection */
  1054.                   0);
  1055.  
  1056. /* Give focus to window DATA Entry Field */
  1057. WinSetFocus(HWND_DESKTOP,WinWindowFromID(hwndDlg, DATA));
  1058.  
  1059.  
  1060. ΓòÉΓòÉΓòÉ 4.3.3. CLEAR Push Button ΓòÉΓòÉΓòÉ
  1061.  
  1062. The CLEAR push button deletes everything in the Items list box and the DATA 
  1063. entry field, then places the cursor in the DATA entry field to allow further 
  1064. input. 
  1065.  
  1066. To provide this behavior, complete the following steps: 
  1067.  
  1068.  1. From the Event tree view, select the CLEAR push button. 
  1069.  
  1070.  2. From the Selected menu, select When, and then Clicked/Selected. 
  1071.  
  1072.     The following C statements appear in the Event window. 
  1073.  
  1074.         /* Event ~Clear CLEAR, Clicked/selected */
  1075.         CHAR aTextValue[255]="text";
  1076.         LONG anIntegerValue=0;
  1077.         ULONG anUnsignedValue=0;
  1078.  
  1079.  3. Make sure the CLEAR push button Clicked/selected event is highlighted. Then 
  1080.     drag the ITEMS list box into the Event window, below the existing C 
  1081.     statement, and then release the mouse button. 
  1082.  
  1083.     The Create Link window appears. 
  1084.  
  1085.  4. Select Delete all items, and then select OK. 
  1086.  
  1087.     The following C statement appears: 
  1088.  
  1089.         /* Delete all items ITEMS List Box */
  1090.         WinSendDlgItemMsg(hwndDlg, ITEMS,
  1091.                           LM_DELETEALL, 0, 0);
  1092.  
  1093.  5. Next, drag the Data entry field into the event window, below the existing C 
  1094.     statements, and then release the mouse button. 
  1095.  
  1096.     The Create Link window appears. 
  1097.  
  1098.  6. Select Clear all and then select OK. 
  1099.  
  1100.     The following C statement appears. 
  1101.  
  1102.         /* Clear all DATA Entry Field */
  1103.         WinSetDlgItemText(hwndDlg,DATA,"");
  1104.  
  1105.  7. Drag the DATA entry field into the event window, below the existing C 
  1106.     statements, and then release the mouse button. 
  1107.  
  1108.     The Create Link window appears. 
  1109.  
  1110.  8. Select Give focus to window, and then select OK. 
  1111.  
  1112.     The following C statement appears: 
  1113.  
  1114.         /* Give item focus DATA Entry Field */
  1115.         WinSetFocus(HWND_DESKTOP,WinWindowFromID(hwndDlg, DATA));
  1116.  
  1117.  9. Select Save from the Event menu. 
  1118.  
  1119. When you are finished editing the CLEAR push button, your code will look like 
  1120. this: 
  1121.  
  1122. /* Event ~Clear CLEAR, Clicked/selected */
  1123. CHAR aTextValue[255]="text";
  1124. LONG anIntegerValue=0;
  1125. ULONG anUnsignedValue=0;
  1126.  
  1127. /* Delete all items ITEMS List Box */
  1128. WinSendDlgItemMsg(hwndDlg, ITEMS,
  1129.                   LM_DELETEALL, 0, 0);
  1130.  
  1131. /* Clear all DATA Entry Field */
  1132. WinSetDlgItemText(hwndDlg,DATA, 0);
  1133.  
  1134. /* Give focus to window DATA Entry Field */
  1135. WinSetFocus(HWND_DESKTOP,WinWindowFromID(hwndDlg, DATA));
  1136.  
  1137.  
  1138. ΓòÉΓòÉΓòÉ 4.4. Changing the Order of the Objects ΓòÉΓòÉΓòÉ
  1139.  
  1140. When the application starts, the ADD push button would be given focus. This 
  1141. means that it is the currently selected object in your form. To give the DATA 
  1142. entry field focus, you would click on it with the left mouse button, or press 
  1143. Shift+Tab from the keyboard. 
  1144.  
  1145. In this section, we will use the List view to give focus to the DATA entry 
  1146. field when the application is started. This prevents the user from having to 
  1147. select the DATA entry field before typing data. To move to the List view, 
  1148. select List view from the View menu. 
  1149.  
  1150. Each row in the List view represents an object in the Layout view. The object 
  1151. type and icon appear on the left of the split bar, with other attributes on the 
  1152. right.  In this view, you can use direct editing to change the Text identifier 
  1153. for an object, as well as the Symbol name (descriptive name) for an object. 
  1154.  
  1155. To give focus to the DATA entry field  when your application is started, 
  1156. complete the following steps: 
  1157.  
  1158.  1. Select the DATA entry field row by left-clicking on it with the mouse. 
  1159.  
  1160.     The DATA entry field row is highlighted. 
  1161.  
  1162.  2. With the mouse cursor on the DATA entry field row, right-click and drag the 
  1163.     mouse pointer until it is just above the ADD push button row. 
  1164.  
  1165.     A solid horizontal line appears above the ADD push button row. 
  1166.  
  1167.  3. Release the mouse button, and the DATA entry field appears above the ADD 
  1168.     push button in the object order. 
  1169.  
  1170.     You could also programmatically give the focus to the entry field in the 
  1171.     'When opened' event for the main form. The technique you just used, 
  1172.     however, is much faster to implement and visualize if your are working with 
  1173.     many objects. 
  1174.  
  1175.  4. Select Generate and compile from the Form menu, then double-click on the 
  1176.     RUN.EXE program object in your project folder to see your changes. 
  1177.  
  1178.  
  1179. ΓòÉΓòÉΓòÉ 4.5. Compile and Execute the Application ΓòÉΓòÉΓòÉ
  1180.  
  1181. To compile the application, select Generate and compile from the Form menu. 
  1182.  
  1183. The VisPro Viewer appears, displaying the compilation progress and notifying 
  1184. you when the compilation is complete. 
  1185.  
  1186. If there is an error in your code, it will be displayed in the VisPro/Viewer 
  1187. output window. Double-click on that error line in the VisPro Viewer, and the 
  1188. event window containing the error will appear for you to correct. 
  1189.  
  1190. To run the application, double-click the left mouse button on the file RUN.EXE, 
  1191. which is located in the source folder of your project. 
  1192.  
  1193.  
  1194. ΓòÉΓòÉΓòÉ 5. How To Order VisPro/C ΓòÉΓòÉΓòÉ
  1195.  
  1196. VisPro/C is available directly from HockWare or from your favorite software 
  1197. reseller. 
  1198.  
  1199. Telephone  FAX: 
  1200.  
  1201. (919) 380-0616, Fax: (919) 380-0757 
  1202.  
  1203. CompuServe: 
  1204.  
  1205. CompuServe ID#: 71333,3226 
  1206.  
  1207. You can reach our forum in the OS/2 Vendors forum by typing GO HOCKWARE 
  1208.  
  1209. Internet: 
  1210.  
  1211. Internet ID: hockware@vnet.net 
  1212.  
  1213. ADDRESS: 
  1214.  
  1215. HockWare Incorporated, P.O. Box 336, Cary, NC 27512-0336 (USA) 
  1216.  
  1217. The next section contains an online order form, which you may print out to use 
  1218. when mailing or faxing your order to us. 
  1219.  
  1220.  
  1221. ΓòÉΓòÉΓòÉ 5.1. Order Form for VisPro/C ΓòÉΓòÉΓòÉ
  1222.  
  1223. SHIPPING ADDRESS:                    BILLING ADDRESS:
  1224.  
  1225. Name: ____________________________   Name: ____________________________
  1226. Company: _________________________   Company: _________________________
  1227. Address: _________________________   Address: _________________________
  1228. __________________________________   __________________________________
  1229. City: ____________________________   City: ____________________________
  1230. State: ___________________________   State: ___________________________
  1231. Country: _________________________   Country: _________________________
  1232. Zip: _____________________________   Zip: _____________________________
  1233. Phone: ___________________________   Phone: ___________________________
  1234. FAX: _____________________________   FAX: _____________________________
  1235. PAYMENT METHOD: (Circle)
  1236. Check  Purchase Order(Include copy of PO)  Credit Card:  Visa   Amex   MC
  1237. Wire Transfer                              Account Number:
  1238.                                            ______________________________
  1239.                                            Expiration Date: _____________
  1240.  
  1241. UPS SHIPPING and HANDLING FEES: (Alaska, Hawaii, Puerto Rico and Intnl.
  1242.                                  shipping fees vary.  Please call.)
  1243. Ground: 1-3 Copies    $7.00      each additional copy:        $2.00
  1244. 2nd day air: 1 copy   15.00      each additional copy:         4.00
  1245. Next day air: 1 copy  25.00      each additional copy:         6.00
  1246.  
  1247. ITEM                    QUANTITY    UNIT PRICE          TOTAL
  1248. VisPro/REXX Gold        __________  $299.00             _____________
  1249. VisPro/REXX BRONZE      __________  $59.00              _____________
  1250. VisPro/Reports          __________  $199.00             _____________
  1251. VisPro/C                __________  $399.00             _____________
  1252. VisPro/C++              __________  $399.00             _____________
  1253. Development Suite
  1254.  (VisPro/REXX, C, C++)  __________  $599.00             _____________
  1255.                                     SUBTOTAL            _____________
  1256.           Sales Tax (residents of NC only, 6% subtotal) _____________
  1257.                                     Shipping            _____________
  1258.                                     TOTAL               _____________
  1259. Where did you hear about VisPro/C?
  1260.  
  1261.     HockWare, Inc. Telephone (919) 380-0616   FAX (919) 380-0757
  1262.  
  1263.  
  1264. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1265.  
  1266. Trademark of the IBM Corporation.