home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / plitlk11.zip / TOOLKIT.INF (.txt) < prev    next >
OS/2 Help File  |  1995-06-01  |  760KB  |  8,670 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. How to Use the 'PL/I for OS/2 Toolkit Reference' ΓòÉΓòÉΓòÉ
  3.  
  4. The PL/I for OS/2 Toolkit Reference provides information about how to use the 
  5. following tools provided in IBM PL/I for OS/2 Toolkit: 
  6.  
  7. o Visual PL/I creates Presentation Manager (PM) applications for the PL/I for 
  8.   OS/2 development environment. Visual PL/I allows you to create graphical user 
  9.   interface (GUI) applications visually, and then generates the underlying PL/I 
  10.   code and PM calls. 
  11.  
  12. o C2PLI conversion aid helps you convert C header files to PL/I include files. 
  13.  
  14. Before you begin to use this information, it would help you to understand how 
  15. you can: 
  16.  
  17. o Expand the Contents to see all available topics 
  18. o Obtain additional information for a highlighted word or phrase 
  19. o Use action bar choices 
  20.  
  21. How to Use the Contents 
  22.  
  23. When the Contents window first appears, some topics have a plus (+) sign beside 
  24. them. The plus sign indicates that additional topics are available for you to 
  25. select. 
  26.  
  27. To expand the Contents if you are using a mouse, click on the plus sign that is 
  28. next to the selection. If you are using the keyboard, use the Up Arrow () or 
  29. Down Arrow () key to highlight the topic, and press the plus (+) key. For 
  30. example, Type functions has a plus sign beside it. To see additional topics for 
  31. that heading, click on the plus sign or highlight that topic and press the plus 
  32. (+) key. 
  33.  
  34. To view a topic, double-click on the topic, or press the Up or Down Arrow key 
  35. to highlight the topic, and then press the Enter key. 
  36.  
  37. How to Obtain Additional Information 
  38.  
  39. After you select a topic, the information for that topic appears in a window. 
  40. Highlighted words or phrases indicate that additional information is available. 
  41. You will notice that certain words and phrases are highlighted in green 
  42. letters, or in white letters on a black background. These are called hypertext 
  43. terms. If you are using a mouse, double-click on the highlighted word. If you 
  44. are using a keyboard, press the Tab key to move to the highlighted word, and 
  45. then press the Enter key. Additional information then appears in a window. 
  46.  
  47. How to Use Action Bar Choices 
  48.  
  49. Several choices are available for managing information presented in PL/I for 
  50. OS/2 Toolkit Reference. There are three pull-down menus on the action bar:  the 
  51. Services menu, the Options menu, and the Help menu. 
  52.  
  53. The actions that are selectable from the Services menu operate only on the 
  54. active window that is currently displayed on the screen. These actions include 
  55. the following: 
  56.  
  57. Bookmark 
  58.   Allows you to set a placeholder so you can retrieve information of interest 
  59.   to you at a later time. 
  60.  
  61.   When you place a bookmark on a topic, it is added to a list of bookmarks you 
  62.   have previously set. You can view the list, and you can remove one or all of 
  63.   the bookmarks from the list. If you have not set any bookmarks, the list is 
  64.   empty. 
  65.  
  66.   To set a bookmark, do the following: 
  67.  
  68.     1. Select a topic from the Contents. 
  69.     2. When that topic appears, choose the Bookmark option from the Services 
  70.        pull-down. 
  71.     3. If you want to change the name used for the bookmark, type the new name 
  72.        in the field. 
  73.     4. Click on the Place radio button, or press the Up or Down Arrow key to 
  74.        select it. 
  75.     5. Click on OK (or select it and press Enter). The bookmark is then added 
  76.        to the bookmark list. 
  77.  
  78. Search 
  79.   Allows you to find occurrences of a word or phrase in the current topic, 
  80.   selected topics, or all topics. 
  81.  
  82.   You can specify a word or phrase to be searched. You can also limit the 
  83.   search to a set of topics by first marking the topics in the Contents list. 
  84.  
  85.   To search for a word or phrase in all topics, do the following: 
  86.  
  87.     1. Choose the Search option from the Services pull-down. 
  88.     2. Type the word or words to be searched for. 
  89.     3. Click on All sections, or press the Up or Down Arrow key to select it. 
  90.     4. Click on Search (or select it and press Enter) to begin the search. 
  91.     5. The list of topics where the word or phrase appears is displayed. 
  92.  
  93. Print 
  94.   Allows you to print one or more topics. You can also print a set of topics by 
  95.   first marking the topics in the Contents list. 
  96.  
  97.   To print the Contents list of the document, do the following: 
  98.  
  99.     1. Choose Print from the Services pull-down. 
  100.     2. Click on Contents, or press the Up or Down Arrow key to select it. 
  101.     3. Click on Print (or select it and press Enter). 
  102.     4. The Contents list is printed on your printer. 
  103.  
  104. Copy 
  105.   Allows you to copy a topic that you are viewing to the System Clipboard or to 
  106.   a file that you can edit. This is particularly useful for copying syntax 
  107.   definitions and program samples into the application that you are developing. 
  108.  
  109.   You can copy a topic that you are viewing in two ways: 
  110.  
  111.    o If you select Copy, the topic that you are viewing is copied into the 
  112.      System Clipboard. If you are using a Presentation Manager* (PM) editor 
  113.      (for example, the Enhanced Editor) that copies or cuts (or both) to the 
  114.      System Clipboard, and pastes to the System Clipboard, you can easily add 
  115.      the copied information to your program source module. 
  116.  
  117.    o If you select Copy to file, the topic that you are viewing is copied into 
  118.      a temporary file named TEXT.TMP. You can later edit that file by using any 
  119.      editor. TEXT.TMP is placed in the directory where your viewable document 
  120.      resides. 
  121.  
  122.   To copy the contents of a topic, do the following: 
  123.  
  124.     1. Expand the Contents list and select a topic. 
  125.     2. When the topic appears, choose Copy to file from the Services pull-down. 
  126.     3. The system puts the text pertaining to that topic into the temporary 
  127.        file TEXT.TMP. 
  128.  
  129. For information on any of the choices in the Services pull-down, highlight the 
  130. choice and press the F1 key. 
  131.  
  132. The actions that are selectable from the Options menu allow you to change the 
  133. way your Contents list is displayed. To expand the Contents and show all levels 
  134. for all topics, choose Expand all from the Options pull-down. You can also 
  135. press the Ctrl and * keys together. 
  136.  
  137. For information on any of the choices in the Options pull-down, highlight the 
  138. choice and press the F1 key. 
  139.  
  140. The actions that are selectable from the Help menu allow you to select 
  141. different types of help information. You can also press the F1 key for help 
  142. information about the Information Presentation Facility (IPF). 
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ <hidden> Related Information ΓòÉΓòÉΓòÉ
  146.  
  147. o Copyright 
  148. o Edition Notice 
  149. o Notices 
  150. o Trademarks and Service Marks 
  151.  
  152.  
  153. ΓòÉΓòÉΓòÉ 1.1. Copyright ΓòÉΓòÉΓòÉ
  154.  
  155. Copyright International Business Machines Corporation, 1994. All rights 
  156. reserved. 
  157.  
  158. Note to U.S. Government Users - Documentation related to restricted rights - 
  159. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  160. Schedule Contract with IBM* Corp. 
  161.  
  162.  
  163. ΓòÉΓòÉΓòÉ 1.2. Edition Notice ΓòÉΓòÉΓòÉ
  164.  
  165. First Edition, July 1994. 
  166.  
  167. This edition applies to Version 1 Release 1 of PL/I for OS/2 Toolkit, Part 
  168. Number 1322966, and to all subsequent releases and modifications until 
  169. otherwise indicated in new editions.  This publication could include technical 
  170. inaccuracies or typographical errors.  Changes are periodically made to the 
  171. information herein; any such changes will be reported in subsequent revisions. 
  172.  
  173. When you send information to IBM, you grant IBM a nonexclusive right to use or 
  174. distribute the information in any ways it believes appropriate without 
  175. incurring any obligation to you. 
  176.  
  177.  
  178. ΓòÉΓòÉΓòÉ 1.3. Notices ΓòÉΓòÉΓòÉ
  179.  
  180. Any reference to an IBM product, program, or service is not intended to state 
  181. or imply that only IBM's product, program, or service may be used. Any 
  182. functionally equivalent product, program, or service that does not infringe any 
  183. of IBM's intellectual property rights may be used instead of the IBM product, 
  184. program, or service. Evaluation and verification of operation in conjunction 
  185. with other products, programs, or services, except those expressly designated 
  186. by IBM, are the user's responsibility. 
  187.  
  188. IBM may have patents or pending patent applications covering subject matter in 
  189. this document. The furnishing of this document does not give you any license to 
  190. these patents. You can send license inquiries, in writing, to the IBM Director 
  191. of Commercial Relations, IBM Corporation, Armonk, NY 10504. 
  192.  
  193.  
  194. ΓòÉΓòÉΓòÉ 1.4. Trademarks and Service Marks ΓòÉΓòÉΓòÉ
  195.  
  196. The following terms, denoted by an asterisk (*) in this publication, are 
  197. trademarks or service marks of IBM Corporation in the United States or other 
  198. countries: 
  199.  
  200. Common User Access 
  201. CUA 
  202. IBM 
  203. OS/2 
  204. Presentation Manager 
  205. PS/2 
  206.  
  207.  
  208. ΓòÉΓòÉΓòÉ 2. About This Book ΓòÉΓòÉΓòÉ
  209.  
  210. This book explains how to use the following tools provided in IBM* PL/I for 
  211. OS/2* Toolkit: 
  212.  
  213. Visual PL/I for OS/2 creates Presentation Manager* (PM) applications for the 
  214. PL/I for OS/2 development environment. Presentation Manager is the graphical 
  215. user interface (GUI) for the IBM OS/2 operating system. 
  216.  
  217. C2PLI conversion aid helps you convert C header files to PL/I include files. 
  218.  
  219.  
  220. ΓòÉΓòÉΓòÉ 2.1. How This Book is Organized ΓòÉΓòÉΓòÉ
  221.  
  222. To design graphical user interfaces, or to develop the online help for it, see 
  223. Getting Started with PL/I for OS/2 Toolkit and Designing Your User Interface. 
  224.  
  225. To write, link, compile, and run the final application, see Creating a Working 
  226. Application. 
  227.  
  228. To help you create GUIs, see Tutorials. The first tutorial provides all the 
  229. instructions you need. Advanced users of Visual PL/I and Presentation Manager 
  230. may want to go directly to the tutorials in the back of the book in order to 
  231. quickly explore Visual PL/I. 
  232.  
  233. To help you convert C header files to PL/I include files using the C2PLI 
  234. conversion aid, see C2PLI Conversion Aid. 
  235.  
  236. For advanced users, such as creating your own code blocks, see the Appendixes. 
  237. They also provide reference material related to Visual PL/I functions and error 
  238. messages. 
  239.  
  240. Throughoutthisbook ,helpfultipsonusingVisualPL / Iarehighlightedforyou .
  241.  
  242.  
  243. ΓòÉΓòÉΓòÉ 2.2. Before Using Visual PL/I ΓòÉΓòÉΓòÉ
  244.  
  245. o If you are designing a GUI, you need to know how to use OS/2: 
  246.  
  247.    - Select and deselect items in a window 
  248.    - Use scroll bars 
  249.    - Use push buttons, radio buttons, and check boxes 
  250.    - Identify which window is the active window 
  251.    - Make a window active 
  252.    - Move windows 
  253.    - Change the size of windows 
  254.    - Maximize, minimize, and restore windows 
  255.    - Use the menu bar and select options from the related menus 
  256.    - Use the OS/2 system menu 
  257.  
  258.   For more information, read the OS/2 online tutorial entitled "Introducing 
  259.   OS/2". The topics "Introduction" and "Windows" provide helpful information 
  260.   about windows. Also, refer to information on using OS/2 panel interfaces in 
  261.   the OS/2 Application Design Guide. 
  262.  
  263. o If you are developing online help for an application, you need to know how to 
  264.   use OS/2, and how to mark (tag) the text for the Information Presentation 
  265.   Facility (IPF) format used by OS/2. The Information Presentation Facility 
  266.   Guide and Reference contains details on using IPF. See Related Publications. 
  267.  
  268. o If you are developing an application, you need to be familiar with the PL/I 
  269.   language. 
  270.  
  271.  
  272. ΓòÉΓòÉΓòÉ 2.3. Related Publications ΓòÉΓòÉΓòÉ
  273.  
  274. You may find the following publications helpful when using PL/I for OS/2 
  275. Toolkit. Order numbers are listed in Bibliography. 
  276.  
  277. o IBM OS/2 Application Design Guide 
  278.   This book provides information on using OS/2 panel interfaces. 
  279.  
  280. o Presentation Manager Programming Reference, Volume 1 to Volume 3 
  281.   These books provide reference type information on OS/2 Presentation Manager. 
  282.   After you install the OS/2 Developer's Toolkit, you can view these books 
  283.   online by selecting them in the Toolkit Information folder. 
  284.  
  285. o Information Presentation Facility Guide and Reference 
  286.   This book describes OS/2's Information Presentation Facility (IPF), the 
  287.   mechanism that handles help text. After you install the OS/2 Developer's 
  288.   Toolkit, you can view this book online by selecting it in the Toolkit 
  289.   Information folder. 
  290.  
  291. o Object-Oriented Design: IBM Common User Access Guidelines, SC34-4399 
  292.   This book describes the guidelines that define the Common User Access* (CUA*) 
  293.   user interface. These guidelines can help you develop consistent look and 
  294.   feel for your OS/2 Presentation Manager applications. 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 2.3.1. Softcopy Publications ΓòÉΓòÉΓòÉ
  298.  
  299. The program that IBM licenses to you may include licensed publications in 
  300. displayable or source form. Except as provided in this section, the terms and 
  301. conditions of your license agreement with IBM apply to these publications and 
  302. to any copies that you make from them. 
  303.  
  304. You may use the licensed publications in displayable or source form on all 
  305. machines designated for this program. You may also copy and use the licensed 
  306. publications on other machines in support of your authorized use of this 
  307. program. 
  308.  
  309. To support your authorized use of the Program, you may make printed copies of 
  310. the displayable or source material if you reproduce the copyright notice and 
  311. any other legend of ownership on each copy or partial copy. 
  312.  
  313.  
  314. ΓòÉΓòÉΓòÉ 2.4. Program Service ΓòÉΓòÉΓòÉ
  315.  
  316. You can use CompuServe to submit problems to IBM and communicate directly with 
  317. the PL/I product development team. For CompuServe membership information, call 
  318. 1-800-848-8199 and request Representative 239. 
  319.  
  320. As a CompuServe member, you can access CompuServe using a modem. At the ! 
  321. command prompt, type GO OS2DF1. Place your messages and comments regarding PL/I 
  322. in "Section 6, REXX and Other Languages". 
  323.  
  324. If you are not a CompuServe user, send your comments to: 
  325.  
  326. IBM Corporation
  327. Department J41/D146
  328. P.O. Box 49023
  329. 555 Bailey Avenue
  330. San Jose, CA  95161-9023
  331.  
  332. You can also fax comments to the attention of the PL/I development team at 
  333. (408) 463-4820. 
  334.  
  335.  
  336. ΓòÉΓòÉΓòÉ 3. Getting Started with PL/I for OS/2 Toolkit ΓòÉΓòÉΓòÉ
  337.  
  338. This part introduces you to PL/I for OS/2 Toolkit. It shows you how to install 
  339. PL/I for OS/2 Toolkit and takes you through the steps involved in getting 
  340. started. It also provides an overview of the following functions that comprise 
  341. PL/I for OS/2 Toolkit: 
  342.  
  343. o Visual PL/I 
  344. o C2PLI conversion aid 
  345. o OS/2 Developer's Toolkit 
  346.  
  347.  
  348. ΓòÉΓòÉΓòÉ 4. About PL/I for OS/2 Toolkit ΓòÉΓòÉΓòÉ
  349.  
  350. PL/I for OS/2 Toolkit contains the following tools: 
  351.  
  352. o Visual PL/I for OS/2 
  353.  
  354. o C2PLI, a C-to-PL/I conversion aid 
  355.  
  356. o OS/2 Developer's Toolkit 
  357.  
  358.  
  359. ΓòÉΓòÉΓòÉ 4.1. Visual PL/I Simplifies Creating GUI Applications ΓòÉΓòÉΓòÉ
  360.  
  361. Visual PL/I is a powerful development environment for OS/2 PM applications. You 
  362. can use it both as a design tool and as a code generator to develop programs 
  363. quickly. 
  364.  
  365. Visual PL/I allows you to create GUI applications visually, or through a 
  366. point-and-click method, and then it generates the underlying PL/I code and PM 
  367. calls. 
  368.  
  369. With Visual PL/I, you can enjoy the following benefits. 
  370.  
  371. Design your user interface by selecting objects: Visual PL/I simplifies the 
  372. process of creating graphics-based OS/2 applications by letting you paint an 
  373. application onto the screen to create a prototype of the product you need, 
  374. while it generates the background PL/I code and PM calls required to control 
  375. the interaction between application components. PM programmers may also find 
  376. many advantages to working with Visual PL/I. By automating the procedure of 
  377. programming for windows, Visual PL/I allows developers to concentrate on 
  378. program design and function, rather than on the complexities of the coding 
  379. process. 
  380.  
  381. With Visual PL/I, it is no longer necessary to be a programmer in order to 
  382. create a GUI. You can experiment with the `look and feel' of the product until 
  383. it looks exactly the way you want it to. You can work on several projects at 
  384. once, so you can copy windows and controls between applications. And, at any 
  385. time while building an application, you can switch to test mode. 
  386.  
  387. Generate PL/I code automatically: Visual PL/I writes code automatically for the 
  388. application you design. You can compile and link this code to create a working 
  389. prototype of your application. You can also use Visual PL/I code blocks to 
  390. create a working application. 
  391.  
  392. Visual PL/I generates the following files: 
  393.  
  394. Source file    Contains the source code for the program, written in PL/I 
  395.                programming language. 
  396.  
  397. Header file    Supplies function declarations and definitions of identifiers 
  398.                used in the program. 
  399.  
  400. Resource file  Defines the resources (windows, menus, dialog boxes, and icons) 
  401.                used by the application. It may reference other files, for 
  402.                example, a dialog resource file (.dlg) containing dialog box 
  403.                specifications. 
  404.  
  405. Make file      Contains instructions for compiling and linking an application. 
  406.  
  407. You can also import your own files for incorporation into an application. 
  408.  
  409. Build a library of commonly used code blocks: Visual PL/I has a code block 
  410. facility that allows you to build and maintain a library of reusable code 
  411. blocks. You can create reusable code blocks as required, and then add the 
  412. tested code blocks into the library for use within different applications. 
  413.  
  414. Create online help: You can write online help, which is linked automatically 
  415. and presented using IPF. You can create two levels of help: 
  416.  
  417. o Help for windows (extended help) 
  418. o Help for individual controls (contextual help) 
  419.  
  420. Get customers involved in design decisions early: Because you can prototype 
  421. quickly, you can invite customers to participate with you in designing the 
  422. product. Once you select the output files required, you can generate the 
  423. related code at any time, from a Visual PL/I menu. 
  424.  
  425. Use accelerator (shortcut) keys: Accelerators are combinations of keystrokes 
  426. that, when selected, are interpreted as commands to the application. 
  427. Accelerator keys are also known as shortcut keys. 
  428.  
  429. When you assign accelerators, Visual PL/I automatically creates the accelerator 
  430. tables that are defined to OS/2 in order for the accelerator keys to actually 
  431. work in your application. 
  432.  
  433. Use all OS/2 colors and fonts: In OS/2, you have access to the following types 
  434. of palettes: 
  435.  
  436. o Scheme palette 
  437. o Color palette 
  438. o Font palette 
  439. As you use Visual PL/I to create an application, you can use all three of these 
  440. palettes to create a variety of colors and fonts for your windows. Using the 
  441. drag and drop method, you can select the palette you want to use, and drop it 
  442. into your application. To access any of these OS/2 color options, complete 
  443. these steps: 
  444.  
  445.  1. Open the OS/2 System folder. 
  446.  
  447.  2. Select System Setup from the folder. 
  448.  
  449.  3. Select the type of palette you want to work with. 
  450.  
  451.  4. Select the color or font you want to add to your Visual PL/I design. Hold 
  452.     down mouse button 2 and drag the color or font selection directly into the 
  453.     Visual PL/I object. 
  454.  
  455. In addition to using a palette to create a color and font for an individual 
  456. window, you can select a color scheme from the Color Scheme palette, drag it 
  457. onto your project window, and create a color scheme that will flow through all 
  458. windows you create for the project. 
  459.  
  460.  
  461. ΓòÉΓòÉΓòÉ 4.2. C2PLI Converts C Header Files to PL/I ΓòÉΓòÉΓòÉ
  462.  
  463. The C2PLI conversion aid helps you convert C header files into the equivalent 
  464. PL/I include files. The tool minimizes manual conversion effort and allows you 
  465. to easily incorporate C programs into your PL/I programming environment. 
  466.  
  467.  
  468. ΓòÉΓòÉΓòÉ 4.3. OS/2 Developer's Toolkit Provides Other Tools ΓòÉΓòÉΓòÉ
  469.  
  470. OS/2 Developer's Toolkit is a collection of application development tools for 
  471. the PM programmer. Visual PL/I uses the following tools: 
  472.  
  473. o Header files 
  474. o IPF compiler 
  475. o Resource compiler 
  476. o Make facility 
  477. o Import librarian 
  478. o Linker 
  479.  
  480. The Developer's Toolkit also includes the following useful online documents 
  481. located in the Toolkit Information folder: 
  482.  
  483. o IPF Guide and Reference 
  484. o Presentation Manager Programming Reference 
  485.  
  486.  
  487. ΓòÉΓòÉΓòÉ 5. Installing the Toolkits ΓòÉΓòÉΓòÉ
  488.  
  489. This section lists all system requirements for PL/I for OS/2 Toolkit, and 
  490. provides instructions on how to install and run it on your workstation. It also 
  491. contains all the basic information you need to start using Visual PL/I and the 
  492. C2PLI conversion aid. Detailed instructions for completing specific tasks are 
  493. included in the following chapters of this book. 
  494.  
  495.  
  496. ΓòÉΓòÉΓòÉ 5.1. What You Should Have ΓòÉΓòÉΓòÉ
  497.  
  498. The PL/I for OS/2 Toolkit product comes with this book and 12 diskettes. Before 
  499. you install the diskettes, read the following sections. 
  500.  
  501.  
  502. ΓòÉΓòÉΓòÉ 5.2. System Requirements ΓòÉΓòÉΓòÉ
  503.  
  504. You can run PL/I for OS/2 Toolkit on any IBM PS/2* (or true compatible) You can 
  505. run PL/I for OS/2 Toolkit on any IBM PS/2* (or true compatible) with at least 
  506. an 80386SX processor. You need a fixed drive with at least 10MB for minimum 
  507. configuration. 
  508.  
  509. Your workstation must have the following: 
  510.  
  511. o OS/2 Version 2.1 or later 
  512.  
  513. o PL/I for OS/2 Professional Edition Version 1.1 (10H7848), or 
  514.   PL/I for OS/2 Personal Edition Version 1.1 (10H7819) 
  515.  
  516. If  youareworkingwithlargeprojects 
  517. ,ensurethatyouhaveenoughfreespaceforthemontheswapperdrive .Forexample 
  518. ,aprojectwith100windowscouldrequirebetween4and5Mofdiskspace .
  519.  
  520.  
  521. ΓòÉΓòÉΓòÉ 5.3. Installing on Your Workstation ΓòÉΓòÉΓòÉ
  522.  
  523. The section guides you through the installation of: 
  524.  
  525. o IBM OS/2 Developer's Toolkit 
  526. o IBM PL/I for OS/2 Toolkit 
  527. You can install them from product diskettes onto your workstation's hard drive. 
  528.  
  529. The installation programs create the necessary subdirectories for you and will 
  530. automatically update your CONFIG.SYS file, unless you choose to update your 
  531. CONFIG.SYS file manually. For instructions on updating your CONFIG.SYS file 
  532. manually, see Modifying Your CONFIG.SYS File. 
  533.  
  534. Online help is available throughout the installation program for each of the 
  535. program's options, fields, and push buttons. You can get help either by 
  536. selecting HELP, or by making the specific field or push button active and then 
  537. pressing F1. 
  538.  
  539.  
  540. ΓòÉΓòÉΓòÉ 5.3.1. Installing OS/2 2.1 Developer's Toolkit ΓòÉΓòÉΓòÉ
  541.  
  542. The following installation directions assume that you are starting the 
  543. installation procedure from diskettes in drive A. If you are starting your 
  544. installation from another drive, substitute the letter of that drive (D or E, 
  545. etc.) in the following steps for drive A. 
  546.  
  547.  1. Insert Diskette 1 into drive A. 
  548.  
  549.  2. From an OS/2 window or full-screen, change the current drive to drive A by 
  550.     issuing the following command: 
  551.  
  552.         a:
  553.     at the OS/2 command prompt. 
  554.  
  555.  3. Type 
  556.  
  557.         install
  558.     at the OS/2 command prompt and press Enter. The logo window appears. 
  559.  
  560.  4. Select OK. The Toolkit Information window appears. 
  561.  
  562.  5. Select the box for each component to be installed. 
  563.  
  564.  6. Select the Options pull-down. 
  565.  
  566.  7. To install one or more components on the default drive: 
  567.  
  568.     a. Select Install. 
  569.  
  570.        Follow the prompts in the message boxes to complete the installation on 
  571.        the default drive. 
  572.  
  573.  8. To install components on other drives: 
  574.  
  575.     a. From the Options pull-down, select Set drives. 
  576.  
  577.        The Toolkit Drive Selection window shows the selected Toolkit component 
  578.        and the current drive assignment. 
  579.  
  580.        If you did not select a component for installation on the previous 
  581.        window, it does not appear in the window. To install a component on 
  582.        another drive, select the Down arrow in the Drive field, then select the 
  583.        desired drive letter. After completing your changes, select OK to 
  584.        activate the changes. The Toolkit Information reappears. 
  585.  
  586.     b. Select the Options pull-down. 
  587.  
  588.     c. Select Install. 
  589.  
  590.     d. Follow the prompts in the message boxes to complete the installation. 
  591.  
  592. You will swap diskettes several times during installation. The message Install 
  593. successful on drive x appears under the name of each component at the 
  594. completion of the installation. Remove the last diskette. Select Options, then 
  595. Exit. 
  596.  
  597. You have successfully installed OS/2 Developer's Toolkit. At this point, you do 
  598. not need to reboot your system. Go on to the next section to install PL/I for 
  599. OS/2 Toolkit. 
  600.  
  601.  
  602. ΓòÉΓòÉΓòÉ 5.3.2. Installing PL/I for OS/2 Toolkit ΓòÉΓòÉΓòÉ
  603.  
  604. To install PL/I for OS/2 Toolkit onto your workstation, do the following: 
  605.  
  606.  1. Insert Diskette 1 of 2 into drive A. 
  607.  
  608.  2. From an OS/2 window or full-screen, change the current drive to drive A by 
  609.     issuing the following command: 
  610.  
  611.         a:
  612.     at the OS/2 command prompt. 
  613.  
  614.  3. Type 
  615.  
  616.         install
  617.     at the OS/2 command prompt and press Enter. There is a short delay while 
  618.     files are being loaded. 
  619.  
  620.     The PL/I for OS/2 Toolkit READ.ME file appears. Read this file for the most 
  621.     recent information about PL/I for OS/2 Toolkit. Press Continue to continue, 
  622.     or Cancel to exit. If you press Continue, the PL/I for OS/2 Toolkit Install 
  623.     panel appears. 
  624.  
  625.  4. On the Install panel: 
  626.  
  627.     a. Indicate whether you want the program to update your CONFIG.SYS file 
  628.        automatically. This is recommended if you do not want to manually update 
  629.        your CONFIG.SYS file. If you choose to have your CONFIG.SYS file 
  630.        modified automatically, the installation program first creates a backup 
  631.        copy with the name CONFIG.BAK. 
  632.  
  633.        Select OK to continue with the installation. 
  634.  
  635.     b. If you choose not to update your CONFIG.SYS file automatically, a 
  636.        message box appears to tell you that the path information is placed in 
  637.        the CONFIG.ADD file. 
  638.  
  639.        Select YES to continue with the installation, or NO to return to the 
  640.        previous screen. 
  641.  
  642.     c. Indicate whether you want to install PL/I for OS/2 Toolkit and new PL/I 
  643.        for OS/2 header files. For a description of these components, select the 
  644.        component and then select the Descriptions button. You may decide that 
  645.        you want to install all of the available options;  if so, select Select 
  646.        all to install the entire product. 
  647.  
  648.     d. Provide the drive and directory in which you want to install the PL/I 
  649.        for OS/2 Toolkit files. By default, they are placed in the C:\PLITK 
  650.        directory. However, if you want to install the files on another drive, 
  651.        select Disk Space, select the appropriate drive onto which you want to 
  652.        install the files, select change directories to selected drive, and then 
  653.        select OK. 
  654.  
  655.  5. After you have specified your installation options, select Install or press 
  656.     Enter to proceed. 
  657.  
  658.     Youdonothavetoinstallalltheoptionsatthispoint 
  659.     .Youcanusetheinstallationprogramagainatanytimetoreinstall ,delete 
  660.     ,orinstalladditionaloptions .
  661.  
  662.  6. If a file with the same name as a backup file exists, a dialog box appears. 
  663.     Choose either to overwrite the existing file, or provide a new file name. 
  664.     Then select OK or press Enter. 
  665.  
  666.     A window displays the status of the installation program, including which 
  667.     files are being installed and the percentage of the total files that have 
  668.     been installed. 
  669.  
  670.  7. When the installation is complete, a message box appears indicating that 
  671.     installation has successfully completed. Select OK to return to the main 
  672.     installation window, and then select EXIT to end the installation program. 
  673.  
  674.  8. Reboot your system to use the revised CONFIG.SYS file. 
  675.  
  676.     If you chose to manually modify your CONFIG.SYS file, see Modifying Your 
  677.     CONFIG.SYS File at this time. 
  678.  
  679.  
  680. ΓòÉΓòÉΓòÉ 5.4. Modifying Your CONFIG.SYS File ΓòÉΓòÉΓòÉ
  681.  
  682. If you chose to manually update your CONFIG.SYS at installation, the path 
  683. statements can be found in the CONFIG.ADD file. To update your CONFIG.SYS file 
  684. manually, do the following: 
  685.  
  686.  1. Open your CONFIG.SYS file with a text editor. 
  687.  
  688.  2. Make the following changes in your CONFIG.SYS file by adding the following 
  689.     statements to the corresponding path name: 
  690.  
  691.    Path Name   Statement 
  692.  
  693.    LIBPATH     C:\PLITK; 
  694.  
  695.    IBM.VPLI    C:\PLITK; 
  696.  
  697.    IBM.SYSLIB  C:\PLITK\INCLUDE; 
  698.  
  699.    INCLUDE     C:\PLITK\INCLUDE;C:\PLITK; 
  700.  
  701.    HELP        C:\PLITK\HLP; 
  702.  
  703.    LIB         C:\PLITK; 
  704.  
  705.  3. Save the modified CONFIG.SYS file and exit the text editor. 
  706.  
  707.  4. Close all active programs and system sessions. 
  708.  
  709.  5. Reboot your workstation to use the revised CONFIG.SYS file. 
  710.  
  711. You have successfully installed PL/I for OS/2 Toolkit on your workstation. 
  712.  
  713.  
  714. ΓòÉΓòÉΓòÉ 5.5. Warning on Level of PL/I for OS/2 ΓòÉΓòÉΓòÉ
  715.  
  716. If the PMWIN.CPY file in the \IBMPLI\INCLUDE directory is dated: 
  717.  
  718. o June 1, 1994 (PL/I for OS/2 Personal Edition, 10H7819), or 
  719.  
  720. o June 2, 1994 (PL/I for OS/2 Professional Edition, 10H7848) or earlier 
  721. Then you must replace the PMWIN.CPY file with the version that comes with PL/I 
  722. for OS/2 Toolkit: 
  723.  
  724.  1. Find the PMWIN.CPN file in the \PLITK\INCLUDE directory. 
  725.  
  726.  2. Rename the existing PMWIN.CPY file in the \IBMPLI\INCLUDE directory. 
  727.  
  728.  3. Copy PMWIN.CPN (the Visual PL/I version) into the \IBMPLI\INCLUDE 
  729.     directory. 
  730.  
  731.  4. Rename PMWIN.CPN to PMWIN.CPY. 
  732.  
  733.  
  734. ΓòÉΓòÉΓòÉ 5.6. Starting and Ending Visual PL/I ΓòÉΓòÉΓòÉ
  735.  
  736. To start Visual PL/I: 
  737.  
  738.  1. Select the Visual PL/I icon from the appropriate Desktop Manager folder. 
  739.     The IBM product panel appears for a moment. When the Visual PL/I folder 
  740.     appears, as shown in A Typical Visual PL/I Folder, you can start using 
  741.     Visual PL/I. 
  742.  
  743.  
  744.         A Typical Visual PL/I Folder
  745.  
  746. To end Visual PL/I: 
  747.  
  748.  1. Display the Visual PL/I folder. 
  749.  
  750.  2. Position the mouse pointer in the window and click mouse button 2 to 
  751.     display the context menu. 
  752.  
  753.  3. Select Exit from the context menu to exit Visual PL/I. 
  754.  
  755.     If you have not saved the contents of a project you are working on, you are 
  756.     prompted to open the project, display the project context menu, and either 
  757.     select Save (to save the project in the Visual PL/I directory) or Save as 
  758.     (to save the project to any of your other directories). All Visual PL/I 
  759.     projects are stored as files with the .PMG file extension. 
  760.  
  761.  
  762. ΓòÉΓòÉΓòÉ 5.7. Getting Help ΓòÉΓòÉΓòÉ
  763.  
  764. Help for learning how to use Visual PL/I is offered in two ways: 
  765.  
  766. o Tutorials 
  767. o Online help 
  768.  
  769.  
  770. ΓòÉΓòÉΓòÉ 5.7.1. Completing the Tutorials ΓòÉΓòÉΓòÉ
  771.  
  772. Tutorials at the end of this book are provided to help you use Visual PL/I. You 
  773. can follow each step and create your own sample application. 
  774.  
  775.  
  776. ΓòÉΓòÉΓòÉ 5.7.2. Getting Online Help ΓòÉΓòÉΓòÉ
  777.  
  778. While you are working with Visual PL/I, help is available by pressing F1. 
  779.  
  780.  
  781. ΓòÉΓòÉΓòÉ 5.7.2.1. Highlighted words ΓòÉΓòÉΓòÉ
  782.  
  783. Highlighted words on help windows indicate that additional information is 
  784. available for this topic. To display the information, double-click on the word. 
  785.  
  786.  
  787. ΓòÉΓòÉΓòÉ 5.7.2.2. Pop-up windows ΓòÉΓòÉΓòÉ
  788.  
  789. Generally, these windows have a Help push button. Select that push button to 
  790. display additional information about the active window. 
  791.  
  792. To get additional information, select Help from the action bar. Select any of 
  793. the following: 
  794.  
  795. General help    Displays general information about the active window. To 
  796.                 display extended help, press F2 from any help window. 
  797.  
  798. Using help      Displays Help for using the help facility. 
  799.  
  800. Keys help       Displays information about the keys and their functions. Press 
  801.                 F9 from any help window to get help for the keys. 
  802.  
  803.  
  804. ΓòÉΓòÉΓòÉ 6. Before You Begin Using Visual PL/I ΓòÉΓòÉΓòÉ
  805.  
  806. Before you begin working with Visual PL/I, you need to be familiar with its 
  807. concepts and conventions. This chapter also explains how to set up your 
  808. environment. 
  809.  
  810.  
  811. ΓòÉΓòÉΓòÉ 6.1. Understanding Visual PL/I Concepts ΓòÉΓòÉΓòÉ
  812.  
  813. When you create an application with Visual PL/I, it stores the application 
  814. components, such as windows, menu bars, and controls, into a single project. 
  815. Projects are represented as icons in the Visual PL/I for OS/2 folder. 
  816.  
  817.  
  818. A Typical Visual PL/I for OS/2 Folder
  819.  
  820. To open a project, double-click mouse button 1 on the project icon. Objects you 
  821. have created for the project are displayed in the project window as icons. 
  822. While you would normally keep all the features for a particular interface or 
  823. application in the same project, you can also use a project to collect objects 
  824. that are to be shared by several different applications. 
  825.  
  826. A context menu provides you with the options available for each object. 
  827.  
  828. To display the context menu, select the window or project and press mouse 
  829. button 2 in the client area. A client area is the open space within a window. 
  830. For example, An Example of a Context Menu shows the context menu for a project. 
  831.  
  832.  
  833. An Example of a Context Menu
  834.  
  835.  
  836. ΓòÉΓòÉΓòÉ 6.2. Setting Up Your Visual PL/I Environment ΓòÉΓòÉΓòÉ
  837.  
  838. Before you begin creating applications with Visual PL/I, you can set the 
  839. following options: 
  840.  
  841. o Select the directory in which all projects are stored by default 
  842. o Select the compile and link options to be used for all projects by default 
  843. o Select whether you want your projects to be enabled for National Language 
  844.   Support (NLS) 
  845. o Identify the editor you will use with Visual PL/I 
  846. o Select whether you want Visual PL/I to beep when a warning is issued 
  847.  
  848. The following sections explain how to define each of these settings. Visual 
  849. PL/I displays the default settings. 
  850.  
  851.  
  852. ΓòÉΓòÉΓòÉ 6.2.1. Selecting a Working Directory for All of Your Projects ΓòÉΓòÉΓòÉ
  853.  
  854. You can select the directory to which the code for Visual PL/I projects will be 
  855. stored by default: 
  856.  
  857.  1. Move the mouse pointer into the Visual PL/I for OS/2 folder client area, 
  858.     the open space within the folder. 
  859.  
  860.  2. Click mouse button 2 to display the context menu. 
  861.  
  862.  3. Select the Open arrow. 
  863.  
  864.  4. Select Settings. The Settings notebook appears. 
  865.  
  866.  5. Select the Project Directory tab to display the Project Directory page of 
  867.     the notebook, as shown in Project Directory Page of Settings Notebook. 
  868.  
  869.  
  870.         Project Directory Page of Settings Notebook
  871.  
  872.  6. Complete the fields as required. 
  873.  
  874.  7. Select the system menu icon in the upper left corner of the notebook. 
  875.     Select Close to process your entries in the page and to close the notebook. 
  876.  
  877.     Or, double-click on the system menu icon. 
  878.  
  879.  
  880. ΓòÉΓòÉΓòÉ 6.2.2. Defining Compile and Link Options ΓòÉΓòÉΓòÉ
  881.  
  882. To define these settings: 
  883.  
  884.  1. Move the mouse pointer into the Visual PL/I folder client area. 
  885.  
  886.  2. Click mouse button 2 to display the context menu. 
  887.  
  888.  3. Select the Open arrow. 
  889.  
  890.  4. Select Settings. The Settings notebook appears. 
  891.  
  892.  5. Select the Compile and link tab to display the Compile and Link page of the 
  893.     notebook. 
  894.  
  895.  
  896.         Compile and Link Page of Settings Notebook
  897.  
  898.  6. Complete the fields as required, or use the defaults provided. 
  899.  
  900.  7. Select the system menu icon in the upper left corner of the notebook. 
  901.     Select Close to process your entries in the page and to close the notebook. 
  902.  
  903.     Or, double-click on the system menu icon to close. 
  904.  
  905.  
  906. ΓòÉΓòÉΓòÉ 6.2.3. Selecting National Language Support (NLS) Options ΓòÉΓòÉΓòÉ
  907.  
  908. With Visual PL/I, you can store text strings as constants in a header file. 
  909. This option is provided for National Language Support (NLS) purposes. All 
  910. translated material is held in the same location. 
  911.  
  912. To create all projects for NLS: 
  913.  
  914.  1. Move the mouse pointer into the Visual PL/I folder client area. 
  915.  
  916.  2. Click mouse button 2 to display the context menu. 
  917.  
  918.  3. Select the Open arrow. 
  919.  
  920.  4. Select Settings from the cascaded menu. The Settings notebook appears. 
  921.  
  922.  5. Select the NLS notebook tab. The following page appears: 
  923.  
  924.  
  925.         NLS Page of Settings Notebook
  926.  
  927.  6. Complete the fields as required. 
  928.  
  929.  7. Select the system menu icon in the upper left corner of the notebook. 
  930.  
  931.  8. Select Close to process your entries in the page and to close the notebook. 
  932.  
  933.  
  934. ΓòÉΓòÉΓòÉ 6.2.4. Defining an Editor to Visual PL/I ΓòÉΓòÉΓòÉ
  935.  
  936. You can choose which editor you want to use with Visual PL/I. It must be a 
  937. Presentation Manager editor, such as epm.exe. To define the editor: 
  938.  
  939.  1. Move the mouse pointer into the Visual PL/I folder client area. 
  940.  
  941.  2. Click mouse button 2 to display the context menu. 
  942.  
  943.  3. Select the Open arrow. 
  944.  
  945.  4. Select Settings. The Settings notebook appears. 
  946.  
  947.  5. Select the Editor notebook tab. 
  948.  
  949.  
  950.         Editor Page of Settings Notebook
  951.  
  952.  6. Type the path and file name, where the editor resides. 
  953.  
  954.  7. Select the system menu icon in the upper left corner of the notebook. 
  955.  
  956.  8. Select Close to process your entries in the page and to close the notebook. 
  957.  
  958.  
  959. ΓòÉΓòÉΓòÉ 6.2.5. Enabling Visual PL/I for Sound ΓòÉΓòÉΓòÉ
  960.  
  961. As you work with Visual PL/I, you can enable it for sound. Then, whenever a 
  962. warning occurs, the system issues a beep to alert you. 
  963.  
  964.  1. Move the mouse pointer into the Visual PL/I folder client area. 
  965.  
  966.  2. Click mouse button 2 to display the context menu. 
  967.  
  968.  3. Select the Open arrow. 
  969.  
  970.  4. Select Settings. The Settings notebook appears. 
  971.  
  972.  5. Select the Sound notebook tab. Sound Page of Settings Notebook appears. 
  973.  
  974.  
  975.         Sound Page of Settings Notebook
  976.  
  977.  6. Complete the fields as required. 
  978.  
  979.  7. Select the system menu icon in the upper left corner of the notebook. 
  980.  
  981.  8. Select Close to process your entries in the page and to close the notebook. 
  982.  
  983.  
  984. ΓòÉΓòÉΓòÉ 7. Designing Your User Interface ΓòÉΓòÉΓòÉ
  985.  
  986. This part describes how to design the various items that determine the 
  987. appearance of an interface and create a working prototype of your application. 
  988. To create a working application, see Creating a Working Application. 
  989.  
  990.  
  991. ΓòÉΓòÉΓòÉ 8. Working with Projects ΓòÉΓòÉΓòÉ
  992.  
  993. In Visual PL/I, the term project refers to a set of Presentation Manager (PM) 
  994. windows and other objects, such as menus and controls.  They collectively 
  995. represent the user interface for all or parts of a PM application. Several 
  996. applications can share projects. A new application can reuse parts of a 
  997. project. 
  998.  
  999. Each time you begin to design a new application, you should create a new 
  1000. project. Visual PL/I projects are stored as files with the .PMG file extension. 
  1001. These files are saved in a format that only Visual PL/I can interpret. 
  1002.  
  1003. A project can include one or more of the following objects: 
  1004.  
  1005. o Windows 
  1006. o Menus 
  1007. o Dialog boxes 
  1008. o Controls 
  1009. o Online help 
  1010. o Links between controls and windows 
  1011. o Accelerator or shortcut key tables 
  1012. o Threads 
  1013.  
  1014. In addition to holding this collection of objects, a project can also store 
  1015. skeleton windows you can use as models in developing other windows. You can 
  1016. also store skeleton menus. 
  1017.  
  1018.  
  1019. ΓòÉΓòÉΓòÉ 8.1. Allowing Multi-Developer Support ΓòÉΓòÉΓòÉ
  1020.  
  1021. Visual PL/I projects are divided into two categories: 
  1022.  
  1023. o DLL project 
  1024. o EXE project 
  1025.  
  1026. A DLL project requires an EXE project to load the windows and dialogs within 
  1027. the project. You cannot run a DLL project on its own. 
  1028.  
  1029. IfyouareunfamiliarwiththesetermsandyouplantouseVisualPL / Itobuildaprototype 
  1030. ,createanEXEproject .IfyouselectDLL 
  1031. ,youcannotrunyourprototypeafteryouhavecompletedtheapplicationdesign 
  1032. .Toworkproperly ,theEXEprojectmustcalltheDLLproject .
  1033.  
  1034. For applications with more than one developer, it is suggested that one 
  1035. developer work on an EXE project while the others develop DLL projects. The EXE 
  1036. project must contain the main function and should contain at least one primary 
  1037. window with related dialogs. Other developers can then work on various DLL 
  1038. projects.  These projects contain dialogs and windows that the main EXE project 
  1039. can call. 
  1040.  
  1041. When the projects are joined together, the final links are put in to call 
  1042. windows and dialogs in DLL projects. When generating DLL projects, use an 
  1043. earlier version of the EXE project to unit test the DLL windows and dialogs. 
  1044. Each developer should use a different project name to ensure unique window 
  1045. procedure names throughout the application. 
  1046.  
  1047.  
  1048. ΓòÉΓòÉΓòÉ 8.2. Defining IDs and #define Values for Project Components ΓòÉΓòÉΓòÉ
  1049.  
  1050. Each component of your application must have an identifier and a #define value 
  1051. assigned to it. The identifier and value are stored as #define statements for 
  1052. use by Visual PL/I and the OS/2 resource compiler. These statements are also 
  1053. translated into named constants for use in the PL/I code. As you use Visual 
  1054. PL/I to create these components, you are asked to type an ID number and a 
  1055. #define value for the component. The #define value assigns a resource 
  1056. identification number and a parameter name to the item you created. This 
  1057. information is required for programming purposes. If you do not fill in these 
  1058. two fields, Visual PL/I automatically assigns an ID and a #define value to the 
  1059. control. 
  1060.  
  1061. You  cancreateaheaderfileandassignyourown# defineconstantsandIDstoyourproject 
  1062. .Todoso :
  1063.  
  1064.  1. Click on mouse button 2 to display the project context menu. 
  1065.  
  1066.  2. Select Import from the menu. 
  1067.  
  1068.  3. Select Associate .h file. 
  1069.  
  1070.  4. Associate the file with your project by completing all fields in the 
  1071.     Associate .h file pop-up window, or by renaming the file to your project 
  1072.     name, using the following format: 
  1073.  
  1074.     projectname.pmh 
  1075.  
  1076.     The #define combination box is now filled with the constants from your 
  1077.     file. For example, for entry fields, the constants prefixed with EF_ will 
  1078.     fill the #define combination box. For push buttons, the prefix is PB_. The 
  1079.     projectname.pmh file is checked each time the project is opened. 
  1080.  
  1081.  
  1082. ΓòÉΓòÉΓòÉ 8.3. Creating a New Project ΓòÉΓòÉΓòÉ
  1083.  
  1084. To create a new project: 
  1085.  
  1086.  1. Start Visual PL/I. The Visual PL/I folder displays icons for all projects 
  1087.     that you worked on in the previous Visual PL/I session. If you are opening 
  1088.     the folder for the first time, it contains one or more sample applications 
  1089.     created using Visual PL/I. 
  1090.  
  1091.  2. Position the mouse pointer in the client area of the Visual PL/I folder and 
  1092.     click mouse button 2 to display the context menu. 
  1093.  
  1094.  
  1095.         Context Menu
  1096.  
  1097.  3. Select New from the context menu. The New Project pop-up window is 
  1098.     displayed, as shown in New Project Pop-Up Window. 
  1099.  
  1100.  
  1101.         New Project Pop-Up Window
  1102.  
  1103.  4. Type the name you want to assign to your new project. You can type up to 
  1104.     eight characters in length for the name. 
  1105.  
  1106.  5. Select whether the project is to generate a DLL or EXE file. 
  1107.  
  1108.     YoucannotrunaDLLprojectonitsown 
  1109.     .ItrequiresanEXEprojecttoloadthewindowsanddialogswithintheproject .
  1110.  
  1111.  6. Select the New push button. 
  1112.  
  1113. The new project is created and an icon representing the project is added to the 
  1114. Visual PL/I window, similar to the one shown in Folder Containing the MYPROJ 
  1115. Icon. You can now proceed to define the objects. 
  1116.  
  1117.  
  1118. Folder Containing the MYPROJ Icon
  1119.  
  1120.  
  1121. ΓòÉΓòÉΓòÉ 8.3.1. Representing Projects as Text in the Visual PL/I Folder ΓòÉΓòÉΓòÉ
  1122.  
  1123. As you continue to create and store new projects in Visual PL/I, you will have 
  1124. many icons in the Visual PL/I folder. You can change the presentation of the 
  1125. projects to a text list of project names, rather than having each project 
  1126. represented by an icon. 
  1127.  
  1128. Youcanalsoapplythisoptiontowindowsandmenusrepresentedinaparticularprojectwindow .
  1129.  
  1130. To create a text list within the Visual PL/I folder: 
  1131.  
  1132.  1. Click mouse button 2 to display the context menu. 
  1133.  
  1134.  2. Select Open. 
  1135.  
  1136.  3. Select Text view. 
  1137.  
  1138.  
  1139. ΓòÉΓòÉΓòÉ 8.3.2. Representing Projects as Icons in the Visual PL/I Folder ΓòÉΓòÉΓòÉ
  1140.  
  1141. When you first receive Visual PL/I, projects are represented as icons in the 
  1142. Visual PL/I folder by default. However, if you have changed to text, you can 
  1143. easily change back to icons. To display icons with corresponding text: 
  1144.  
  1145.  1. Click mouse button 2 in the client area of the folder to display the 
  1146.     related context menu. 
  1147.  
  1148.  2. Select Open. 
  1149.  
  1150.  3. Select Icon view. 
  1151.  
  1152.  
  1153. ΓòÉΓòÉΓòÉ 8.4. Opening an Existing Project ΓòÉΓòÉΓòÉ
  1154.  
  1155. You can open an existing project with one of the following methods: 
  1156.  
  1157. o From the Visual PL/I folder 
  1158. o From the command line 
  1159.  
  1160.  
  1161. ΓòÉΓòÉΓòÉ 8.4.1. From the Visual PL/I Folder ΓòÉΓòÉΓòÉ
  1162.  
  1163. Each time you start Visual PL/I, it automatically displays the projects you 
  1164. last worked on. You can use any of them by double-clicking mouse button 1 on 
  1165. the icon. 
  1166.  
  1167. If the projects are stored in another directory and are not currently 
  1168. displayed, do the following: 
  1169.  
  1170.  1. Display the context menu by moving the mouse pointer into the Visual PL/I 
  1171.     folder and clicking mouse button 2. 
  1172.  
  1173.  2. Select Load Project... from the context menu to display the Select a .PMG 
  1174.     file pop-up window. 
  1175.  
  1176.  
  1177.         Select a .PMG File Pop-Up Window
  1178.     This window displays the names of any project files it finds in the 
  1179.     directory specified. 
  1180.  
  1181.  3. Select the directory to be searched. 
  1182.  
  1183.  4. Select the project to be opened. 
  1184.  
  1185.  5. Select OK. 
  1186.  
  1187.  
  1188. ΓòÉΓòÉΓòÉ 8.4.2. From the Command Line ΓòÉΓòÉΓòÉ
  1189.  
  1190.  1. At the OS/2 command prompt, type VPLI. You can also specify the name of the 
  1191.     project you want to open. For example: 
  1192.  
  1193.     VPLI proj1.pmg 
  1194.  
  1195.  2. Press Enter. 
  1196.  
  1197.     NotethatonlyonecopyofVisualPL / Icanbeexecutingonyourworkstation .
  1198.  
  1199.  
  1200. ΓòÉΓòÉΓòÉ 8.5. Saving a Project ΓòÉΓòÉΓòÉ
  1201.  
  1202. You can save a project at any time and resume working on it later. Saved 
  1203. projects are stored with the .PMG file type. Remember to save your project 
  1204. before you exit. 
  1205.  
  1206. To save a project: 
  1207.  
  1208.  1. Position the mouse pointer in the client area of the project window. Click 
  1209.     mouse button 2 to display the project context menu. 
  1210.  
  1211.  2. Select Savefrom the menu. 
  1212.  
  1213.     If the project window is open, selecting PF2 also saves the project. 
  1214.  
  1215. The project is saved under its original name that you assigned when you created 
  1216. it. 
  1217.  
  1218. If you want to save the project with a different name, select Save As from the 
  1219. context menu. The Save As pop-up window appears, as shown in Save As Window. 
  1220. The original project name appears as the file name. You can change it by over 
  1221. typing it with the new name. 
  1222.  
  1223. You can also use Save As to copy a project. 
  1224.  
  1225.  
  1226. Save As Window
  1227.  
  1228.  
  1229. ΓòÉΓòÉΓòÉ 8.6. Deleting a Project ΓòÉΓòÉΓòÉ
  1230.  
  1231. To delete a Visual PL/I project: 
  1232.  
  1233.  1. Display the Visual PL/I folder. 
  1234.  
  1235.  2. Select the icon for the project you want to delete. 
  1236.  
  1237.  3. Click mouse button 2 to display the context menu. 
  1238.  
  1239.  4. Select Delete from the context menu. 
  1240.  
  1241.  5. Select From folder from the cascaded menu to remove the project from the 
  1242.     Visual PL/I folder, while leaving the project intact on your disk. 
  1243.  
  1244.  6. Select From disk from the cascaded menu to remove all files from the disk. 
  1245.     This also removes the project from the Visual PL/I folder. 
  1246.  
  1247.  
  1248. ΓòÉΓòÉΓòÉ 8.7. Copying Objects Between Projects ΓòÉΓòÉΓòÉ
  1249.  
  1250. To copy objects, such as windows and menus, from one project to another: 
  1251.  
  1252.  1. Open the project containing the objects you want to copy. 
  1253.  
  1254.  2. Open the project that is to contain the copied objects. 
  1255.  
  1256.  3. Select the appropriate object icon. 
  1257.  
  1258.  4. Press the CTRL key and mouse button 2 at the same time. Drag and drop the 
  1259.     object icon into the receiving project window. Release both the CTRL key 
  1260.     and mouse button 2. 
  1261.  
  1262.  5. The object is duplicated in the receiving project window. 
  1263.  
  1264.  
  1265. ΓòÉΓòÉΓòÉ 8.8. Moving Objects Between Projects ΓòÉΓòÉΓòÉ
  1266.  
  1267. To move objects, such as windows and menus, from one project to another: 
  1268.  
  1269.  1. Open the project containing the objects you want to move. 
  1270.  
  1271.  2. Open the project that is to contain the moved objects. 
  1272.  
  1273.  3. Select the object icon. 
  1274.  
  1275.  4. Press down mouse button 2 and drag and drop the icon onto the receiving 
  1276.     project window. Release mouse button 2. 
  1277.  
  1278.  5. The object now appears in the receiving window and disappears from the 
  1279.     window that originally contained it. 
  1280.  
  1281.  
  1282. ΓòÉΓòÉΓòÉ 8.9. Defining Settings for a Specific Project ΓòÉΓòÉΓòÉ
  1283.  
  1284. In the same way that you defined settings for all of your projects (see Setting 
  1285. Up Your Visual PL/I Environment), you can define settings for a specific 
  1286. project. Any settings that you define for a project override the overall 
  1287. settings you have defined for all projects (in the Visual PL/I folder Settings 
  1288. option). 
  1289.  
  1290. You can define the following settings for a project in the projects notebook: 
  1291.  
  1292. o The project options, which determine whether the project is to be an .EXE or 
  1293.   a .DLL file. 
  1294.  
  1295. o The output options for the project, which include: 
  1296.  
  1297.    - The files to be written as output files 
  1298.    - Whether output windows and menus are written to a .DLG file 
  1299.  
  1300. o The compile and link options, which include: 
  1301.  
  1302.    - The link command to be used 
  1303.    - The library to be used for the project 
  1304.    - The compile options to be used 
  1305.    - The stack size 
  1306.    - Other object files to be used with the project 
  1307.  
  1308. o The drive and path of the project directory 
  1309.  
  1310. o Whether or not you want to use a grid to help you design your project 
  1311.   windows. 
  1312.  
  1313. o If you are working on a LAN, the database you want to work with. 
  1314.  
  1315. The following sections provide step-by-step instructions on how to complete 
  1316. each notebook page. 
  1317.  
  1318.  
  1319. ΓòÉΓòÉΓòÉ 8.10. Setting Project Options ΓòÉΓòÉΓòÉ
  1320.  
  1321. To set project options for your project: 
  1322.  
  1323.  1. Open the project window by positioning the mouse pointer on the project 
  1324.     icon and clicking on mouse button 2. 
  1325.  
  1326.  2. Select Open. The project window appears. 
  1327.  
  1328.  3. Click on mouse button 2 in the client area of the project window. 
  1329.  
  1330.  4. Select the Open arrow. 
  1331.  
  1332.  5. Select Settings. The Project Settings notebook and the Project Options page 
  1333.     within the notebook appear. 
  1334.  
  1335.  
  1336.         Project Options Page of the Project Settings Notebook
  1337.  
  1338.  6. Select whether the project is to be an .EXE or a .DLL file. Choose .EXE if 
  1339.     you are creating a prototype. 
  1340.  
  1341.  7. Click on the system menu icon in the upper left corner of the window and 
  1342.     select Close. Your selections are saved and the notebook is closed. 
  1343.  
  1344.  
  1345. ΓòÉΓòÉΓòÉ 8.11. Setting Output Options ΓòÉΓòÉΓòÉ
  1346.  
  1347. To set output options for your project: 
  1348.  
  1349.  1. Open the Project Settings notebook by positioning the mouse pointer on the 
  1350.     project icon and clicking mouse button 2. 
  1351.  
  1352.  2. Select Open. The project window appears. 
  1353.  
  1354.  3. Click on mouse button 2 in the client area of the project window. 
  1355.  
  1356.  4. Select the Open arrow. 
  1357.  
  1358.  5. Select Settings. The Project Settings notebook appears. 
  1359.  
  1360.  6. Select the Output Options tab to display the notebook page as shown in 
  1361.     Output Options Page of the Project Settings Notebook. 
  1362.  
  1363.  
  1364.         Output Options Page of the Project Settings Notebook
  1365.  
  1366.  7. Choose which files are to be written as output files. Click on the check 
  1367.     box to select or deselect a file. 
  1368.  
  1369.  8. Select whether output windows and menus should be written to a .DLG file. 
  1370.  
  1371.  9. Click on the system menu icon in the upper left corner of the window and 
  1372.     select Close. Your selections are saved and the notebook is closed. 
  1373.  
  1374.  
  1375. ΓòÉΓòÉΓòÉ 8.12. Setting Compile and Link Options ΓòÉΓòÉΓòÉ
  1376.  
  1377. To set the compile and link options for your project: 
  1378.  
  1379.  1. Open the Project Settings notebook by positioning the mouse pointer on the 
  1380.     project icon and clicking mouse button 2. 
  1381.  
  1382.  2. Select Open. The project window appears. 
  1383.  
  1384.  3. Click on mouse button 2 in the client area of the project window. 
  1385.  
  1386.  4. Select the Open arrow. 
  1387.  
  1388.  5. Select Settings. The Project Settings notebook appears. 
  1389.  
  1390.  6. Select the Compile and Link tab to display the Compile & Link notebook 
  1391.     page, as shown in Compile and Link Notebook Page. 
  1392.  
  1393.  
  1394.         Compile and Link Notebook Page
  1395.  
  1396.  7. If you want to change the link command, type the new command. 
  1397.  
  1398.  8. If you want to select a new library for use with your project, type the new 
  1399.     library name. 
  1400.  
  1401.  9. Type any new compile options to be used, if necessary. 
  1402.  
  1403. 10. Change the stack size to be used for your project, if necessary. 
  1404.  
  1405. 11. List any other object files to be used with the project. 
  1406.  
  1407. 12. Select the System Menu in the upper left corner of the notebook. 
  1408.  
  1409. 13. Select Close to process your entries and close the notebook. 
  1410.  
  1411.  
  1412. ΓòÉΓòÉΓòÉ 8.13. Setting the Drive and Path for Your Project Directory ΓòÉΓòÉΓòÉ
  1413.  
  1414. To set the drive and path of the working directory that contains the project: 
  1415.  
  1416.  1. Select the project icon in the Visual PL/I folder. 
  1417.  
  1418.  2. Click mouse button 2 to display the context menu. 
  1419.  
  1420.  3. Select Open. The project window appears. 
  1421.  
  1422.  4. Click mouse button 2 to display the context menu of the project window. 
  1423.  
  1424.  5. Select the Open arrow. 
  1425.  
  1426.  6. Select Settings. The Project Settings notebook appears. 
  1427.  
  1428.  7. Select the Project directory page from the Project Settings Notebook. The 
  1429.     window shown in Project Directory Page of the Settings Notebook appears. 
  1430.  
  1431.  8. If the drive and path are correct, select Close from the system menu icon. 
  1432.  
  1433.  9. If you change the drive and path, type the correct directory. Select Close 
  1434.     from the system menu icon to set the working directory for the project. 
  1435.  
  1436.  
  1437. Project Directory Page of the Settings Notebook
  1438.  
  1439.  
  1440. ΓòÉΓòÉΓòÉ 8.14. Creating a Grid on Your Project Windows ΓòÉΓòÉΓòÉ
  1441.  
  1442. As you design your windows, Visual PL/I has several design tools available to 
  1443. help you create attractive and professional-looking windows. One of these 
  1444. options is the use of a grid to help you with the placement of controls. 
  1445.  
  1446. To set up grids on your project windows: 
  1447.  
  1448.  1. Select the project icon in the Visual PL/I folder. 
  1449.  
  1450.  2. Click mouse button 2 to display the context menu. 
  1451.  
  1452.  3. Select Open. The project window appears. 
  1453.  
  1454.  4. Click mouse button 2 to display the context menu of the project window. 
  1455.  
  1456.  5. Select the Open arrow. 
  1457.  
  1458.  6. Select Settings. The Project Settings notebook appears. 
  1459.  
  1460.  7. Select the Grid tab in the notebook to display the Grids notebook page, as 
  1461.     shown in Grids Page in the Settings Notebook. 
  1462.  
  1463.  
  1464.         Grids Page in the Settings Notebook
  1465.  
  1466.  8. Your options on this window are as follows: 
  1467.  
  1468.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1469.         Γöé Table 1. Grid Options                             Γöé
  1470.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1471.         Γöé OPTION       Γöé DESCRIPTION                       Γöé
  1472.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1473.         Γöé GRID        Γöé Select this option to create a grid on the windows.  If Γöé
  1474.         Γöé           Γöé you select this option, size the grid by typing an X   Γöé
  1475.         Γöé           Γöé and Y coordinate in the corresponding entry fields in  Γöé
  1476.         Γöé           Γöé this notebook.  The larger the number entered, the more Γöé
  1477.         Γöé           Γöé distance between the grid marks.             Γöé
  1478.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1479.         Γöé SNAP        Γöé This option allows you to move a control icon into a   Γöé
  1480.         Γöé           Γöé window.  Visual PL/I automatically positions it at the  Γöé
  1481.         Γöé           Γöé next horizontal grid mark in the window.  You can still Γöé
  1482.         Γöé           Γöé size it vertically.                   Γöé
  1483.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1484.         Γöé SNAP WIDTH     Γöé Select this option to have Visual PL/I automatically   Γöé
  1485.         Γöé           Γöé position the control both vertically and horizontally  Γöé
  1486.         Γöé           Γöé in the window.                      Γöé
  1487.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1488.         Table 1. Grid Options
  1489.  
  1490.  9. Select the system menu in the upper left corner of the window. 
  1491.  
  1492. 10. Select Close to process your entries. When you open any window, it contains 
  1493.     a grid. 
  1494.  
  1495.  
  1496. ΓòÉΓòÉΓòÉ 9. Designing Windows ΓòÉΓòÉΓòÉ
  1497.  
  1498. This chapter takes you through each of the steps required to: 
  1499.  
  1500. o Create a window 
  1501. o Move a window 
  1502. o Change window measurements 
  1503. o Change window attributes 
  1504. o Change the style of a window 
  1505. o Copy a window 
  1506. o Display, hide, or delete windows 
  1507. o Select the color and font for a window 
  1508.  
  1509.  
  1510. ΓòÉΓòÉΓòÉ 9.1. Creating a New Window ΓòÉΓòÉΓòÉ
  1511.  
  1512. To create a new window: 
  1513.  
  1514.  1. Open the Project window. 
  1515.  
  1516.  2. Click on mouse button 2 to display the context menu of the project window. 
  1517.  
  1518.  3. Select New from the menu. 
  1519.  
  1520.  4. Select Window from the cascaded menu to display the New Window pop-up. 
  1521.  
  1522.  
  1523.         New Window Pop-Up
  1524.  
  1525.  5. In the Reference name field, type the name you want to assign to the 
  1526.     window. Give each window a unique and meaningful name. This name also 
  1527.     serves as the identifier for the icon representing this window in the 
  1528.     project window. 
  1529.  
  1530.  6. Type the window title in the Title bar text entry field. The title appears 
  1531.     in the title bar of the new window when it is displayed. 
  1532.  
  1533.  7. You can select any menu bar that has already been defined in the project 
  1534.     from the menus list box and attach it to the window being created. If no 
  1535.     menu bars have been defined in the project, the default of No Menubar is 
  1536.     selected. 
  1537.  
  1538.  8. To define the type of window you want to create, select one of the 
  1539.     following from Window type group box, as shown in Window Types. 
  1540.  
  1541.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1542.         Γöé WINDOW TYPE             Γöé DESCRIPTION               Γöé
  1543.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1544.         Γöé PRIMARY WINDOW           Γöé A movable and resizable window in which Γöé
  1545.         Γöé                   Γöé you present the objects and actions of  Γöé
  1546.         Γöé                   Γöé your application.  Every application   Γöé
  1547.         Γöé                   Γöé has a primary window.          Γöé
  1548.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1549.         Γöé SECONDARY WINDOW          Γöé A movable and resizable window that is  Γöé
  1550.         Γöé                   Γöé always associated with a primary     Γöé
  1551.         Γöé                   Γöé window.                 Γöé
  1552.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1553.         Γöé DIALOG BOX             Γöé A movable, fixed-size window in which  Γöé
  1554.         Γöé                   Γöé you ask users for information required  Γöé
  1555.         Γöé                   Γöé to complete an action.  A dialog box is Γöé
  1556.         Γöé                   Γöé associated with another window.     Γöé
  1557.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1558.         Table 2. Window Types
  1559.  
  1560.  9. You can specify the following characteristics of the window in the Window 
  1561.     Styles group box, as shown in Window Characteristics. 
  1562.  
  1563.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1564.         Γöé WINDOW STYLE           Γöé DESCRIPTION                 Γöé
  1565.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1566.         Γöé TITLE BAR            Γöé The area at the top of a window that con-  Γöé
  1567.         Γöé                 Γöé tains its title.              Γöé
  1568.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1569.         Γöé SYSTEM MENU           Γöé A pull-down menu in the top left-hand    Γöé
  1570.         Γöé                 Γöé corner of the window that you can use to  Γöé
  1571.         Γöé                 Γöé restore, move, resize, minimize, and maxi- Γöé
  1572.         Γöé                 Γöé mize the window.  It allows you either to  Γöé
  1573.         Γöé                 Γöé end the application or to close the     Γöé
  1574.         Γöé                 Γöé window, depending on whether the window is Γöé
  1575.         Γöé                 Γöé the primary window or a secondary window.  Γöé
  1576.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1577.         Γöé MINIMIZE             Γöé A component in the top right-hand corner  Γöé
  1578.         Γöé                 Γöé of the window that removes the window and  Γöé
  1579.         Γöé                 Γöé places an application-defined icon on the  Γöé
  1580.         Γöé                 Γöé screen.  You can select the ICON push    Γöé
  1581.         Γöé                 Γöé button to associate an icon of your choice Γöé
  1582.         Γöé                 Γöé with the window.              Γöé
  1583.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1584.         Γöé MAXIMIZE             Γöé A component in the top right-hand corner  Γöé
  1585.         Γöé                 Γöé of the window that enlarges the window to  Γöé
  1586.         Γöé                 Γöé the largest possible size, the size of the Γöé
  1587.         Γöé                 Γöé screen.                   Γöé
  1588.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1589.         Γöé HORIZONTAL SCROLL BAR      Γöé A window component associated with a hori- Γöé
  1590.         Γöé                 Γöé zontal scrollable area that provides you  Γöé
  1591.         Γöé                 Γöé with a visual clue that more information  Γöé
  1592.         Γöé                 Γöé is available and that the unseen informa-  Γöé
  1593.         Γöé                 Γöé tion can be brought into view.       Γöé
  1594.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1595.         Γöé VERTICAL SCROLL BAR       Γöé A window component associated with a ver-  Γöé
  1596.         Γöé                 Γöé tical scrollable area that provides you   Γöé
  1597.         Γöé                 Γöé with a visual clue that more information  Γöé
  1598.         Γöé                 Γöé is available and that the unseen informa-  Γöé
  1599.         Γöé                 Γöé tion can be brought into view.       Γöé
  1600.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1601.         Γöé SHELL POSITION          Γöé This option allows OS/2 to position the   Γöé
  1602.         Γöé                 Γöé first window in the application relative  Γöé
  1603.         Γöé                 Γöé to other applications that are already   Γöé
  1604.         Γöé                 Γöé running.                  Γöé
  1605.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1606.         Table 3. Window Characteristics
  1607.     Select as many of these options as you wish to include in the window. 
  1608.  
  1609. 10. The Border styles you can select for the window are as follows. Select one 
  1610.     option only, as shown in Border Options. 
  1611.  
  1612.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1613.         Γöé BORDER STYLE       Γöé DESCRIPTION                    Γöé
  1614.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1615.         Γöé NO BORDER         Γöé No border type selected.              Γöé
  1616.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1617.         Γöé LINE BORDER        Γöé Thin line around the frame.            Γöé
  1618.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1619.         Γöé DIALOG BORDER       Γöé Default border for a dialog box.          Γöé
  1620.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1621.         Γöé SIZABLE BORDER      Γöé Default border for a resizable window.       Γöé
  1622.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1623.         Table 4. Border Options
  1624.  
  1625. 11. If desired, type a number in the ID field and a name in the #define field. 
  1626.     These #define values are used to assign a  resource identification number 
  1627.     and a parameter name for programming purposes. If you do not fill in these 
  1628.     fields, Visual PL/I automatically assigns an ID value and a #define name to 
  1629.     the window. See Defining IDs and #define Values for Project Components for 
  1630.     more information. 
  1631.  
  1632. 12. To return all settings to their defaults, select the Reset push button. 
  1633.  
  1634.     To select an icon to represent the window when it is minimized, select the 
  1635.     Icon push button to display a pop-up window. Select an icon from those 
  1636.     currently available or load a new icon into Visual PL/I. See Adding or 
  1637.     Replacing Your Own Icons for details. 
  1638.  
  1639.     To save the window, select OK. The saved window is represented by a window 
  1640.     icon and the name you typed in the name field. 
  1641.  
  1642.  
  1643. ΓòÉΓòÉΓòÉ 9.2. Moving a Window ΓòÉΓòÉΓòÉ
  1644.  
  1645. If the window has a title bar: 
  1646.  
  1647.  1. Move the arrow pointer over the title bar. 
  1648.  
  1649.  2. Hold down mouse button 1. 
  1650.  
  1651.  3. Move the pointer to the new position and release the button. 
  1652.  
  1653. If the window has no title bar: 
  1654.  
  1655.  1. Move the pointer over the client area of the window. 
  1656.  
  1657.  2. Click on mouse button 1. 
  1658.  
  1659.  3. When the pointer changes shape, hold down the button, move the window to 
  1660.     the new position, and release the button. The window is redrawn at its new 
  1661.     position. 
  1662.  
  1663.  
  1664. ΓòÉΓòÉΓòÉ 9.3. Changing Measurements for a Window ΓòÉΓòÉΓòÉ
  1665.  
  1666. You can set both the position and the size of a window as you work with it. To 
  1667. change window measurements: 
  1668.  
  1669.  1. Select the window to be changed. 
  1670.  
  1671.  2. Display the context menu for the window. 
  1672.  
  1673.  3. Select Position/size from the context menu. The Position/Size pop-up window 
  1674.     appears. 
  1675.  
  1676.  
  1677.         Position/Size Pop-Up Window
  1678.  
  1679.  4. Change the following fields as required: 
  1680.  
  1681.    o The X position relates to the position of the window on the X axis. 
  1682.  
  1683.    o The Y position field relates to the position of the window on the Y axis. 
  1684.  
  1685.    o The X size relates to the length of the window on the X axis. 
  1686.  
  1687.    o The Y size relates to the length of the window on the Y axis. 
  1688.  
  1689.  5. Select OK. The window is repositioned or resized. 
  1690.  
  1691. To  quicklysizeawindow :
  1692.  
  1693.  1. Move the cursor over the border until it changes shape to a double-arrowed 
  1694.     pointer. 
  1695.  
  1696.  2. Hold down mouse button 1. 
  1697.  
  1698.  3. Move the pointer to the new position and release the button. 
  1699. The window redraws itself to the new size. 
  1700.  
  1701. If the window is not resizable, Presentation Manager does not normally let you 
  1702. resize it. However, with Visual PL/I you can resize it as follows: 
  1703.  
  1704.  1. Position the pointer just inside the border. 
  1705.  
  1706.  2. Hold down mouse button 1. 
  1707.  
  1708.  3. Move the pointer to the new position and release the button. 
  1709.  
  1710. The window is redrawn with its border in the new position. 
  1711.  
  1712.  
  1713. ΓòÉΓòÉΓòÉ 9.4. Changing the Attributes of a Window ΓòÉΓòÉΓòÉ
  1714.  
  1715. To change the attributes you have assigned to a window: 
  1716.  
  1717.  1. Select the icon or name in the project window that represents the window 
  1718.     you want to change. 
  1719.  
  1720.  2. Click mouse button 2 to display the context menu. 
  1721.  
  1722.  3. Select Change from the context menu. The Change Window pop-up appears, as 
  1723.     shown in Change Window Pop-Up. You can now change any of these attributes. 
  1724.  
  1725.  
  1726.         Change Window Pop-Up
  1727.  
  1728.  4. Change any of the attributes displayed in the window and select OK to 
  1729.     process your entries. See Creating a New Window. 
  1730.  
  1731.  
  1732. ΓòÉΓòÉΓòÉ 9.5. Changing Window Style ΓòÉΓòÉΓòÉ
  1733.  
  1734. You can specify characteristics for an existing window. To display the 
  1735. characteristics available: 
  1736.  
  1737.  1. Select the icon representing the window you wish to work on. 
  1738.  
  1739.  2. Display the context menu. 
  1740.  
  1741.  3. Select Styles from the menu. The Window Styles pop-up window appears, as 
  1742.     shown in Window Styles Pop-Up Window. 
  1743.  
  1744.  
  1745.         Window Styles Pop-Up Window
  1746.  
  1747.  4. Select an entry from the WS_Styles list to define the appearance or 
  1748.     behavior of the window. For example, WS_MAXIMIZED creates a maximized 
  1749.     window. 
  1750.  
  1751.  5. Select an item from the Item Styles list to define other characteristics of 
  1752.     a window. For example, FCF_TASKLIST adds the window title to the switch 
  1753.     list on the OS/2 Task Manager window. 
  1754.  
  1755. For more information on these options, see Presentation Manager Programming 
  1756. Reference. 
  1757.  
  1758.  
  1759. ΓòÉΓòÉΓòÉ 9.6. Copying Windows ΓòÉΓòÉΓòÉ
  1760.  
  1761. Visual PL/I has options available that let you: 
  1762.  
  1763. o Copy a window within a project 
  1764. o Copy a window from one project to another project 
  1765.  
  1766. The following sections provide instructions on how to complete each of these 
  1767. activities. 
  1768.  
  1769.  
  1770. ΓòÉΓòÉΓòÉ 9.6.1. Copying a Window Within a Project ΓòÉΓòÉΓòÉ
  1771.  
  1772. To create a copy of a window in the same project: 
  1773.  
  1774.  1. Select the icon or name of the window you wish to copy. 
  1775.  
  1776.  2. Display the context menu. 
  1777.  
  1778.  3. Select Copy from the menu. A copy of the window is created and represented 
  1779.     by an icon with the number 1 added to the original window name. Change the 
  1780.     name of the new window immediately in order to avoid confusion. 
  1781.  
  1782. A  quickmethodofcopyingawindowis :
  1783.  
  1784.  1. Select the window icon. 
  1785.  
  1786.  2. Position the mouse pointer on the icon and press the CTRL key and mouse 
  1787.     button 2 at the same time. Move the mouse pointer into the client area and 
  1788.     release the mouse button and the CTRL key. 
  1789.  
  1790.     A copy of the window is added to the project window. The copy has a number 
  1791.     added to the end of the window identifier. Each time you make a copy of the 
  1792.     window, this number is incremented by one digit. 
  1793.  
  1794.  
  1795. ΓòÉΓòÉΓòÉ 9.6.2. Copying a Window From One Project to Another ΓòÉΓòÉΓòÉ
  1796.  
  1797. To copy a window from one project to another project: 
  1798.  
  1799.  1. Open both projects. 
  1800.  
  1801.  2. Select the icon representing the window you want to copy. 
  1802.  
  1803.  3. Press the CTRL key and mouse button 2 simultaneously and drag and drop the 
  1804.     window icon into the client area of the other project. 
  1805.  
  1806.  
  1807. ΓòÉΓòÉΓòÉ 9.7. Displaying and Hiding Windows ΓòÉΓòÉΓòÉ
  1808.  
  1809. Windows that are currently available in your Visual PL/I project are 
  1810. represented by icons in the project window. When a window is in an icon format, 
  1811. it is referred to as a hidden window. As you work with Visual PL/I, you can 
  1812. display and hide windows in your project as necessary. 
  1813.  
  1814.  
  1815. ΓòÉΓòÉΓòÉ 9.7.1. Hiding A Single Window ΓòÉΓòÉΓòÉ
  1816.  
  1817. To hide a single window: 
  1818.  
  1819.  1. Place the mouse pointer on the open window. 
  1820.  
  1821.  2. Click mouse button 2 on the window. 
  1822.  
  1823.  3. Select Hide from the cascaded menu. The window is reduced to an icon in the 
  1824.     project window. 
  1825.  
  1826.  
  1827. ΓòÉΓòÉΓòÉ 9.7.2. Showing or Hiding All Windows ΓòÉΓòÉΓòÉ
  1828.  
  1829. To display all windows that reside in a selected project: 
  1830.  
  1831.  1. Open the project. 
  1832.  
  1833.  2. Display the context menu. 
  1834.  
  1835.  3. Select Windows from the menu. 
  1836.  
  1837.  4. To open all windows in the project, select Show all from the cascaded menu. 
  1838.     All windows currently in the project are opened and displayed on your 
  1839.     screen. 
  1840.  
  1841.     To hide all windows in the project, select Hide all from the cascaded menu. 
  1842.     All windows currently in the project are reduced to icons in the project 
  1843.     window. 
  1844.  
  1845.  
  1846. ΓòÉΓòÉΓòÉ 9.8. Deleting a Window from a Project ΓòÉΓòÉΓòÉ
  1847.  
  1848. To delete a window: 
  1849.  
  1850.  1. In the project window, select the icon representing the window to be 
  1851.     deleted. 
  1852.  
  1853.  2. Display the context menu. 
  1854.  
  1855.  3. Select Delete. 
  1856.  
  1857. The window is deleted from the project. 
  1858.  
  1859.  
  1860. ΓòÉΓòÉΓòÉ 9.9. Setting Color and Font for a Window ΓòÉΓòÉΓòÉ
  1861.  
  1862. You can change the appearance of all controls within a window, such as the 
  1863. foreground or background color, font name, or size. 
  1864.  
  1865.  1. Using mouse button 2, click on the client area of the project window to 
  1866.     change the appearance of all controls in the window. 
  1867.  
  1868.  2. From the context menu, select Pres Params (presentation parameters). The 
  1869.     Settings pop-up window appears, as shown in Settings Pop-Up Window. 
  1870.  
  1871.  
  1872.         Settings Pop-Up Window
  1873.  
  1874.  3. Set the presentation parameters as required and select OK to process your 
  1875.     entries. 
  1876.  
  1877.     You can set colors in either of these two ways: 
  1878.  
  1879.    o By using RGB (red, green, blue) values 
  1880.    o By using the color indexes offered by Visual PL/I 
  1881.  
  1882.  
  1883. ΓòÉΓòÉΓòÉ 9.9.1. Using RGB Values to Set Window Color ΓòÉΓòÉΓòÉ
  1884.  
  1885. To use RGB values to change the color of controls in a window: 
  1886.  
  1887.  1. Select the appropriate control in the window. 
  1888.  
  1889.  2. Select an item from the list of presentation parameters. For example, to 
  1890.     change the background color of a control, select BACKGROUNDCOLOR. 
  1891.  
  1892.  3. Display the Set Presentation Parameters window. 
  1893.  
  1894.     The red, green, and blue values range from 0-255. Calculate a single RGB 
  1895.     value by using the following formula: 
  1896.  
  1897.          RGB= Red*65536 + Green*256 + Blue
  1898.  
  1899.  4. Type the RGB value in the Enter Presentation Parameters settings entry 
  1900.     field. For example, if the RGB value of the color is 1234567, type that 
  1901.     number. 
  1902.  
  1903.  5. Select Add to type your selection in the Selected Parameters list box. 
  1904.  
  1905.  6. Select OK to apply the change to the selected control or window. 
  1906.  
  1907.  
  1908. ΓòÉΓòÉΓòÉ 9.9.2. Using Color Indexes ΓòÉΓòÉΓòÉ
  1909.  
  1910. To set the color parameters by using the Visual PL/I color indexes: 
  1911.  
  1912.  1. Select an Index parameter from the Presentation Parameters list. For 
  1913.     example, BACKGROUNDCOLORINDEX or FOREGROUNDCOLORINDEX. 
  1914.  
  1915.  2. Select a color from the group of color indexes. 
  1916.  
  1917.     ThecolorindexesvaluesetworkonlywhenappliedtoanIndexparameter .Forexample 
  1918.     ,tochangethebackgroundcolorofacontroltored 
  1919.     ,selectBACKGROUNDCOLORINDEXfromthePresentationParameterslistandselectthecolorfromthecolorindexesvalueset .
  1920.  
  1921.  3. Select Add to add your selection to the Selected Parameters list. 
  1922.  
  1923.  4. Select OK to apply the change to the selected control or window. 
  1924.  
  1925.  
  1926. ΓòÉΓòÉΓòÉ 9.9.3. Changing Fonts ΓòÉΓòÉΓòÉ
  1927.  
  1928. To change the font in a window: 
  1929.  
  1930.  1. Display the Set Presentation Parameters pop-up window. 
  1931.  
  1932.  2. Select the presentation parameter to apply the new font. For example, 
  1933.     select FONTNAMESIZE. 
  1934.  
  1935.  3. Select the FONTNAMESIZE option from the Presentation Parameters list. 
  1936.     Scroll through the Fonts list until you find the font you want to use. For 
  1937.     example, 14.Tms Rmn. 
  1938.  
  1939.  4. Select the Add push button and your selection appears in the Selected 
  1940.     Parameters list. 
  1941.  
  1942.  5. Select OK to apply this change to the selected control or window. 
  1943.  
  1944.  
  1945. ΓòÉΓòÉΓòÉ 9.9.4. Changing Color or Font Settings ΓòÉΓòÉΓòÉ
  1946.  
  1947. To change the color or font settings, you must first `unset' these parameters 
  1948. before you can set new ones. 
  1949.  
  1950.  1. Open the Settings window. 
  1951.  
  1952.  2. Select the presentation parameter you wish to change, by selecting the 
  1953.     current color or font from the Selected Presentation Parameters list. 
  1954.  
  1955.  3. Select the Remove push button to delete the entry from the Selected 
  1956.     Presentation Parameters list and return it to the Presentation Parameters 
  1957.     list. 
  1958.  
  1959.  4. Set new presentation parameters as before or select OK to return to the 
  1960.     active window. 
  1961.  
  1962.  
  1963. ΓòÉΓòÉΓòÉ 10. Designing Menus ΓòÉΓòÉΓòÉ
  1964.  
  1965. Menus are the means by which users can select the various options available to 
  1966. them within a product. Menus provide you with a logical method of ordering and 
  1967. layering all actions to be performed by the application user. In Visual PL/I, 
  1968. main menus are divided into two categories: 
  1969.  
  1970. o Menu bars 
  1971. o Pop-up menus 
  1972.  
  1973. Also in this chapter, you learn how to: 
  1974.  
  1975. o Create pull-down menus and cascaded menus 
  1976. o Make changes to a menu 
  1977. o Copy a menu 
  1978.  
  1979.    - Within the same project 
  1980.    - To a different project 
  1981.  
  1982. o Delete a menu 
  1983. o Create a pop-up menu 
  1984.  
  1985.  
  1986. ΓòÉΓòÉΓòÉ 10.1. Menu bar ΓòÉΓòÉΓòÉ
  1987.  
  1988. This is an area at the top of a window that contains action keywords. These 
  1989. keywords provide users with access to specific actions either for a window or 
  1990. any of its associated windows. For each item in the menu, you can create a 
  1991. sub-level of actions or additional keywords and display them in a pull-down 
  1992. menu associated with that menu item. 
  1993.  
  1994.  
  1995. ΓòÉΓòÉΓòÉ 10.2. Pull-down menu ΓòÉΓòÉΓòÉ
  1996.  
  1997. This can have a cascaded menu, which contains a set of choices directly related 
  1998. to the pull-down selection. 
  1999.  
  2000.  
  2001. ΓòÉΓòÉΓòÉ 10.3. Pop-up menu ΓòÉΓòÉΓòÉ
  2002.  
  2003. This contains action keywords, with the option of adding associated pull-down 
  2004. menus and cascaded menus. The only difference in the two is the presentation of 
  2005. the information. 
  2006.  
  2007.  
  2008. ΓòÉΓòÉΓòÉ 10.4. Selecting a Menu Type ΓòÉΓòÉΓòÉ
  2009.  
  2010. When you design menus with Visual PL/I, you can create either: 
  2011.  
  2012. o Menu bar, which appears across the top of your window and has associated 
  2013.   pull-down menus attached to each keyword in the menu. 
  2014.  
  2015. o Pop-up menus, such as the context menus, that are displayed when the user 
  2016.   clicks on the mouse button. 
  2017.  
  2018.  
  2019. ΓòÉΓòÉΓòÉ 10.5. Creating a New Menu ΓòÉΓòÉΓòÉ
  2020.  
  2021. To create a new menu: 
  2022.  
  2023.  1. Open the project. 
  2024.  
  2025.  2. Position the mouse pointer within the project window and click mouse button 
  2026.     2. A list of menu options appears. 
  2027.  
  2028.  3. Select New from the menu. 
  2029.  
  2030.  4. Select Menu from the New cascade. The Menu pop-up window appears, as shown 
  2031.     in New Menu Pop-Up. 
  2032.  
  2033.  
  2034.         New Menu Pop-Up
  2035.  
  2036.  5. In the Reference entry field, type a unique reference name for the new menu 
  2037.     item. 
  2038.  
  2039.  6. Select whether the menu appears to the user as a menu bar, or a pop-up menu 
  2040.     item. 
  2041.  
  2042.  7. If necessary, assign the #define values to the items you are adding to a 
  2043.     menu, by typing a number in the ID field and a value in the #define field. 
  2044.     The #define values are used to assign a resource identification number and 
  2045.     a parameter name for programming purposes. If you do not use this option, 
  2046.     Visual PL/I automatically assigns an ID value and a #define name. See 
  2047.     Defining IDs and #define Values for Project Components for more 
  2048.     information. 
  2049.  
  2050.  8. Select a menu icon (that you have already created) from the project window 
  2051.     and open it. The Menu pop-up window appears. 
  2052.  
  2053.  9. Note that the Indentation Level slider is located at level 1. All text you 
  2054.     type in while the slider is in this position appears in the action bar. 
  2055.  
  2056.     Later, when you add pull-down options for each text item in the menu bar, 
  2057.     move the slider one position to the right to level 2. For cascaded menu 
  2058.     entries for each pull-down menu item, move the slider to the right to level 
  2059.     3. 
  2060.  
  2061. 10. If items already are displayed in the menu selection list shown in the 
  2062.     lower left of the window, select the menu item, pull-down item, or cascade 
  2063.     item you want your menu item to follow. Move the Indentation Level one 
  2064.     position to the right. 
  2065.  
  2066. 11. Type the name of the new menu item in the Menu Text entry field. If you 
  2067.     want the first character of the action name to be used as a keyboard 
  2068.     shortcut key for the action, precede it with a tilde character (~). For 
  2069.     example, ~File, ~Open, and ~Exit. The text is displayed in the menu with 
  2070.     the first character underscored. 
  2071.  
  2072. 12. To add the menu item to the list in the menu pop-up window, either select 
  2073.     Add or press the Enter key. 
  2074.  
  2075.  
  2076. ΓòÉΓòÉΓòÉ 10.6. Adding a Pull-Down Menu ΓòÉΓòÉΓòÉ
  2077.  
  2078. After creating the text to be displayed in the menu bar, add a pull-down menu 
  2079. containing the various user options available from each action item displayed 
  2080. in the menu bar. 
  2081.  
  2082. To add a pull-down for a menu item: 
  2083.  
  2084.  1. Select the menu item to which you want to attach the pull-down, or the 
  2085.     pull-down item you want your pull-down item to follow. 
  2086.  
  2087.  2. Select level 2 on the Indentation Level slider. 
  2088.  
  2089.  3. Type the text of the pull-down item in the Menu Text entry field. 
  2090.  
  2091.  4. Select Add to add the pull-down item to the list in the menu pop-up window. 
  2092.  
  2093.  
  2094. ΓòÉΓòÉΓòÉ 10.7. Adding a Cascaded Menu ΓòÉΓòÉΓòÉ
  2095.  
  2096. Each item on a pull-down menu can have its own cascaded menu. This menu 
  2097. contains a set of choices that are related to the pull-down option. Use this 
  2098. type of menu to reduce the length of a menu. 
  2099.  
  2100. To add a cascade item to a pull-down or a cascade: 
  2101.  
  2102.  1. Select the pull-down item or cascade item you want your cascade item to 
  2103.     follow. 
  2104.  
  2105.  2. Move the Indentation Level slider one position to the right. 
  2106.  
  2107.  3. Type the text of the cascade item being added into the Menu Text entry 
  2108.     field. 
  2109.  
  2110.  4. Select Add to add the cascade item to the menu. 
  2111.  
  2112. The entry appears on the list in the menu pop-up window. 
  2113.  
  2114.  
  2115. ΓòÉΓòÉΓòÉ 10.8. Adding a Separator ΓòÉΓòÉΓòÉ
  2116.  
  2117. In Visual PL/I, a separator is a visual cue, such as a line, that provides a 
  2118. visual distinction between two adjacent lines. You can add a separator to 
  2119. visually divide pull-down items or cascade items. The separating line is 
  2120. inserted between the two items. 
  2121.  
  2122. To add a separator: 
  2123.  
  2124.  1. From the list, select the item you want the separator to follow. 
  2125.  
  2126.  2. Select the Separator push button. 
  2127.  
  2128. The separator is added to the pull-down or cascade, directly following the item 
  2129. you selected. 
  2130.  
  2131.  
  2132. ΓòÉΓòÉΓòÉ 10.9. Editing a Menu Entry ΓòÉΓòÉΓòÉ
  2133.  
  2134. You can edit the text for a menu, pull-down, or cascade item within the menu 
  2135. pop-up window. 
  2136.  
  2137. To edit an item: 
  2138.  
  2139.  1. Select the item in the selection list that is to be changed. 
  2140.  
  2141.  2. Type the new text in the Type item entry field. 
  2142.  
  2143.  3. Select Edit to update the item with the new text. 
  2144.  
  2145.  
  2146. ΓòÉΓòÉΓòÉ 10.10. Moving a Menu Entry ΓòÉΓòÉΓòÉ
  2147.  
  2148. To rearrange items in a menu: 
  2149.  
  2150.  1. Select a menu item to move down. 
  2151.  
  2152.  2. Select Move. 
  2153.  
  2154.     The item is exchanged with the item immediately below. 
  2155.  
  2156.  
  2157. ΓòÉΓòÉΓòÉ 10.11. Deleting Items from a Menu ΓòÉΓòÉΓòÉ
  2158.  
  2159. To delete an item from a menu bar: 
  2160.  
  2161.  1. Select the appropriate menu bar icon from the project window and open it. 
  2162.     The Menu Bar pop-up window appears. 
  2163.  
  2164.  2. Select the menu item to be deleted from the selection list. 
  2165.  
  2166.  3. Select Delete. 
  2167.  
  2168. This action immediately deletes the item selected from the list in the menu 
  2169. pop-up window. 
  2170.  
  2171. Ifyouselectamenuitemfordeletion ,andthenselectDelete ,youalsodeleteallpull - 
  2172. downitemsandcascadeitemsthatbelongtothemenuitem .Ifyouselectapull - 
  2173. downitemfordeletion ,andthenselectDelete 
  2174. ,youalsodeleteallthecascadeitemsthatbelongtothepull - downitem .
  2175.  
  2176.  
  2177. ΓòÉΓòÉΓòÉ 10.12. Changing the Color and Font for Menu Items ΓòÉΓòÉΓòÉ
  2178.  
  2179. To change the color and font used in a menu: 
  2180.  
  2181.  1. Select the appropriate menu icon from the project window and open it. The 
  2182.     Menu pop-up window appears. 
  2183.  
  2184.  2. Select the Color and font push button at the bottom of the Menu pop-up 
  2185.     window. The Settings pop-up window appears, as shown in Settings Pop-Up 
  2186.     Window. 
  2187.  
  2188.  
  2189.         Settings Pop-Up Window
  2190.  
  2191.  3. To change the menu color: 
  2192.  
  2193.    o Select a color from the Color Indexes group, clicking on the color block 
  2194.      with mouse button 1. 
  2195.  
  2196.    o Select the Presentation parameters to be used. 
  2197.  
  2198.    o Select Add or Remove. 
  2199.  
  2200.  4. To change the menu font: 
  2201.  
  2202.    o Select a font from the Type field. Use the Down arrow to display a list of 
  2203.      all available fonts. Note that an example of each font type is displayed 
  2204.      in the Font area as you select it. 
  2205.  
  2206.      When you select a font, the new font type appears in the Presentation 
  2207.      Parameter Value field. 
  2208.  
  2209.    o Select Add or Remove. 
  2210.  
  2211.  5. Select OK. 
  2212.  
  2213.  
  2214. ΓòÉΓòÉΓòÉ 10.13. Setting the Attributes and Styles of a Menu Item ΓòÉΓòÉΓòÉ
  2215.  
  2216. Menu attributes specify the initial settings for a menu item. The status can 
  2217. change frequently during the execution of a program. For example, MIA_CHECKED 
  2218. controls whether a check mark (/) appears next to the item. 
  2219.  
  2220. Action bar styles determine the specific look of the menu bar. For example, 
  2221. MIS_BREAK defines a menu bar pull-down with two columns. 
  2222.  
  2223. To set these two characteristics of a menu bar: 
  2224.  
  2225.  1. Click on mouse button 2 on a project icon in the Project window. 
  2226.  
  2227.  2. Select Change. 
  2228.  
  2229.  3. The Menu in... pop-up window appears. 
  2230.  
  2231.  4. Select the Attributes push button on the right side of the Menu in... 
  2232.     pop-up window. The Action Bar Attributes & Styles pop-up window appears. 
  2233.  
  2234.  
  2235.         Attributes and Styles Pop-Up Window
  2236.  
  2237.  5. Select the attribute and style you want to use as the initial setting for 
  2238.     the menu item. 
  2239.  
  2240.  6. Select OK. 
  2241.  
  2242.  
  2243. ΓòÉΓòÉΓòÉ 10.14. Changing a Menu ΓòÉΓòÉΓòÉ
  2244.  
  2245. To change a menu: 
  2246.  
  2247.  1. Select the menu icon from within the project window. 
  2248.  
  2249.  2. Display the context menu. 
  2250.  
  2251.  3. Select Change... from the menu. The Change a Menu pop-up window appears. 
  2252.     This window is identical to the Add a Menu window. Change the features of 
  2253.     the menu in this window as required. 
  2254.  
  2255.  4. Select OK. 
  2256.  
  2257.  
  2258. ΓòÉΓòÉΓòÉ 10.15. Copying a Menu ΓòÉΓòÉΓòÉ
  2259.  
  2260. You can make a copy of a menu that is already available within a project. You 
  2261. can use copies within the project, or copy it from one project into another 
  2262. one. 
  2263.  
  2264.  
  2265. ΓòÉΓòÉΓòÉ 10.15.1. Copying a Menu Bar Within a Project ΓòÉΓòÉΓòÉ
  2266.  
  2267. To make a copy of a menu bar for later use in your project: 
  2268.  
  2269.  1. Select the menu bar you wish to copy. 
  2270.  
  2271.  2. Press the Ctrl key, and while holding it down, use mouse button 2 to drag 
  2272.     and drop the menu bar into the project window that is to contain it. 
  2273.  
  2274.  3. Release the Ctrl key and the mouse button. A copy of the menu bar is 
  2275.     displayed in the project window. Each time you copy a menu, Visual PL/I 
  2276.     automatically adds a number to it, incrementing the number by one each time 
  2277.     the menu is copied. 
  2278.  
  2279. To copy the menu directly into a specific window: 
  2280.  
  2281.  1. Open the window the menu is to be associated with. 
  2282.  
  2283.  2. Drag and drop the menu directly into the window. Any later changes you make 
  2284.     to the menu is made in the associated window as well. 
  2285.  
  2286.  
  2287. ΓòÉΓòÉΓòÉ 10.15.2. Copying a Menu to Another Project ΓòÉΓòÉΓòÉ
  2288.  
  2289. To copy a menu to another project: 
  2290.  
  2291.  1. Open the project that you want to copy the menu into. 
  2292.  
  2293.  2. Open the project containing the menu you want to copy. 
  2294.  
  2295.  3. Select the menu, by clicking mouse button 1 on it. 
  2296.  
  2297.  4. Press the Ctrl key, and while holding it down, use mouse button 2 to drag 
  2298.     and drop the menu from one project window into the other. 
  2299.  
  2300.  5. Release the Ctrl key and the mouse button. A copy of the menu appears in 
  2301.     the project window. 
  2302.  
  2303. Be  sureyouholddowntheCtrlkeywhenyoucopyamenu .IftheCtrlkeyisnothelddown 
  2304. ,themenuismoved ,notcopied .
  2305.  
  2306.  
  2307. ΓòÉΓòÉΓòÉ 10.16. Deleting a Menu ΓòÉΓòÉΓòÉ
  2308.  
  2309. To delete a menu: 
  2310.  
  2311.  1. Select the menu to be deleted from the project window. 
  2312.  
  2313.  2. Display the context menu. 
  2314.  
  2315.  3. Select Delete from the menu. The menu is deleted from the project. 
  2316.  
  2317.  
  2318. ΓòÉΓòÉΓòÉ 10.17. Creating a Pop-Up Menu ΓòÉΓòÉΓòÉ
  2319.  
  2320. To create a pop-up menu: 
  2321.  
  2322.  1. Open the project. 
  2323.  
  2324.  2. Position the mouse pointer within the project window and click mouse button 
  2325.     2. A list of menu options appears. 
  2326.  
  2327.  3. Select New from the menu. 
  2328.  
  2329.  4. Select Menu from the New cascade. The Menu pop-up window appears, as shown 
  2330.     in Menu Pop-Up Window. 
  2331.  
  2332.  
  2333.         Menu Pop-Up Window
  2334.  
  2335.  5. In the Reference entry field, type a unique reference name for the new menu 
  2336.     item. 
  2337.  
  2338.  6. Select Popup in the Menu type group box. The Define Pop-Up Details window 
  2339.     appears. 
  2340.  
  2341.  7. If necessary, assign the #define value for the pop-up menu by typing in the 
  2342.     ID field and a value in the #define field. 
  2343.  
  2344.     If you do not use this option, Visual PL/I automatically assigns an ID 
  2345.     value and a #define name. See Defining IDs and #define Values for Project 
  2346.     Components. 
  2347.  
  2348.  
  2349. ΓòÉΓòÉΓòÉ 11. Adding Controls, Icons, and Bitmaps ΓòÉΓòÉΓòÉ
  2350.  
  2351. This chapter explains how to add controls, icons, and bitmaps to your 
  2352. applications. The first part of this chapter describes how to use the Objects 
  2353. toolbox to add these objects to your application. The second part of this 
  2354. chapter contains step-by-step instructions on how to add each type of control 
  2355. and tailor it to your requirements. 
  2356.  
  2357. In addition to the information provided in this chapter, you may want to refer 
  2358. to Object-Oriented Design: IBM Common User Access Guidelines for further 
  2359. details on controls. 
  2360.  
  2361.  
  2362. ΓòÉΓòÉΓòÉ 11.1. Controls-An Overview ΓòÉΓòÉΓòÉ
  2363.  
  2364. The controls in a window provide users with the means to make choices and type 
  2365. in information. You can use controls to present a complicated array of options 
  2366. and suboptions in a way that is easy for the user to understand. 
  2367.  
  2368. Controls usually contain text. Examples include labels in push buttons or field 
  2369. prompts. 
  2370.  
  2371. The controls that you can create with Visual PL/I are divided into different 
  2372. types of objects, according to their purpose. They are grouped together in an 
  2373. Objects toolbox, as shown in Visual PL/I for OS/2 Objects Toolbox. 
  2374.  
  2375.  
  2376. Visual PL/I for OS/2 Objects Toolbox
  2377. The objects toolbox automatically appears when you begin working on the first 
  2378. window of your new application. Double-click on the project you want to work 
  2379. with in the Project window. As you point to an object in the toolbox with the 
  2380. mouse pointer, the name of the object is displayed in the space located at the 
  2381. bottom of the toolbox. Choose the type of control you want to add to your 
  2382. application, and drag it into the appropriate window. From this point, you are 
  2383. directed through a series of windows and dialogs that help you define the 
  2384. control exactly as you want it. 
  2385.  
  2386.  
  2387. ΓòÉΓòÉΓòÉ 11.2. Adding Controls ΓòÉΓòÉΓòÉ
  2388.  
  2389. To add a control to a window: 
  2390.  
  2391.  1. Move the mouse pointer into the toolbox. 
  2392.  
  2393.  2. Press and hold down mouse button 2 on the icon you want to move into a 
  2394.     project window. 
  2395.  
  2396.  3. Drag and drop the icon for the required control or object from the Objects 
  2397.     toolbox into the window. Release mouse button 2. The pop-up window 
  2398.     associated with the icon you selected appears. In this window, define the 
  2399.     attributes required to create the control. 
  2400.  
  2401.  4. After you fill in the window, select OK to save your entries and display 
  2402.     the resulting control in the window. 
  2403.  
  2404.  
  2405. ΓòÉΓòÉΓòÉ 11.3. Adding an Entry Field ΓòÉΓòÉΓòÉ
  2406.  
  2407. An entry field is a two-part control consisting of text and a rectangular box 
  2408. into which users can type one or more lines of text. If more information is 
  2409. available than is currently visible, users can scroll the entry fields. 
  2410.  
  2411. An entry field is either a single-line (SLE) entry field or a multi-line entry 
  2412. (MLE) field. The information in this section explains how to add both types of 
  2413. fields to your application. 
  2414.  
  2415.  
  2416. ΓòÉΓòÉΓòÉ 11.3.1. Adding a Single-Line Entry Field ΓòÉΓòÉΓòÉ
  2417.  
  2418.  1. Select the Entry Field icon in the Objects toolbox and drag it into the 
  2419.     window. The Entry Field Options pop-up window appears. 
  2420.  
  2421.  
  2422.         Entry Field Options Pop-Up Window
  2423.  
  2424.  2. If you want data to automatically appear in this entry field each time the 
  2425.     window is opened, type the data in the Default field. 
  2426.  
  2427.  3. In the  Maximum Size field, define the maximum number of characters to be 
  2428.     typed in the entry field. 
  2429.  
  2430.  4. Select the Options entry field. 
  2431.  
  2432.     If you want a border around the entry field, select the Margin check box. 
  2433.  
  2434.     If you want the entry field to automatically scroll when the data typed by 
  2435.     the user takes up more space than the visible part of the entry field, 
  2436.     select the Autoscroll check box. 
  2437.  
  2438.  5. If you are creating your own IDs and # defines, type this information in 
  2439.     the ID and #define fields. If you do not make entries in these fields, 
  2440.     Visual PL/I automatically generates these IDs and #defines for you. See 
  2441.     Defining IDs and #define Values for Project Components. 
  2442.  
  2443.  6. Select what Alignment the data will have that the user types in the entry 
  2444.     field. Typed data is either left-aligned, right-aligned, or centered. 
  2445.  
  2446.  7. Use the Naming options group box to define the entry field's variable name. 
  2447.  
  2448.  8. Use the Variable Typegroup box to specify whether the entry field is 
  2449.     declared as a global, or a local variable. If you select global, the 
  2450.     variable is available throughout the application. 
  2451.  
  2452.  9. The list box in the lower right of this pop-up window provides data type 
  2453.     options for future releases of Visual PL/I. The data type is currently 
  2454.     fixed at CHAR. 
  2455.  
  2456.  
  2457. ΓòÉΓòÉΓòÉ 11.3.2. Adding a Multi-Line Entry Field (MLE) ΓòÉΓòÉΓòÉ
  2458.  
  2459. A multi-line entry field (MLE)  is an entry field that allows a user to type 
  2460. more than one line of information. 
  2461.  
  2462.  1. Select the MLE icon in the Objects toolbox and drag it into the window. The 
  2463.     Multiple Line Entry Field Type pop-up window appears. 
  2464.  
  2465.  
  2466.         Multiple Line Entry Field Type Pop-Up Window
  2467.  
  2468.  2. Select one or more of the check boxes, as shown in Attributes for 
  2469.     Multi-Line Entry. 
  2470.  
  2471.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2472.         Γöé ATTRIBUTE              Γöé DESCRIPTION               Γöé
  2473.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2474.         Γöé BORDER               Γöé Creates a border around the entry    Γöé
  2475.         Γöé                   Γöé field.                  Γöé
  2476.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2477.         Γöé READ ONLY              Γöé User cannot change the text in the    Γöé
  2478.         Γöé                   Γöé entry field.               Γöé
  2479.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2480.         Γöé WORD WRAP              Γöé Automatically moves the text in the   Γöé
  2481.         Γöé                   Γöé entry field to the next line as space  Γöé
  2482.         Γöé                   Γöé is used up in a line.          Γöé
  2483.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2484.         Γöé HORIZONTAL SCROLLBAR        Γöé The entry field can be scrolled hor-   Γöé
  2485.         Γöé                   Γöé izontally.                Γöé
  2486.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2487.         Γöé VERTICAL SCROLLBAR         Γöé Scrolls the entry field to the left or  Γöé
  2488.         Γöé                   Γöé right.                  Γöé
  2489.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2490.         Γöé IGNORE TABS             Γöé Ignores tabs in the entry field, if   Γöé
  2491.         Γöé                   Γöé tabs are set in the window.       Γöé
  2492.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2493.         Table 5. Attributes for Multi-Line Entry
  2494.  
  2495.  3. Select the Attributes for the multiple entry field. 
  2496.  
  2497.  
  2498. ΓòÉΓòÉΓòÉ 11.4. Adding a Combination Box ΓòÉΓòÉΓòÉ
  2499.  
  2500. A combination box is a control that combines the capabilities of an entry field 
  2501. and a list box. 
  2502.  
  2503.  1. Select the Combination Box icon from the Objects toolbox and drag it into 
  2504.     the window. The Combination Box Type window appears. 
  2505.  
  2506.  
  2507.         Combination Box Type Window
  2508.  
  2509.  2. Select one of the following types of combination box: 
  2510.  
  2511.    o Combination box - a control that combines the capabilities of an entry 
  2512.      field or a list box. 
  2513.  
  2514.    o Drop-down combination box - a list hidden until the user takes an action 
  2515.      to make it visible. 
  2516.  
  2517.    o Drop-down list - a variation of a list box. A drop-down list only displays 
  2518.      one item until the user takes an action to display the other objects or 
  2519.      choices. 
  2520.  
  2521.  3. Type the text in the Current text field. This text is the current entry in 
  2522.     the combination box when it is displayed. 
  2523.  
  2524.  4. If you are assigning your own IDs and # defines, type this information in 
  2525.     the related fields. See Defining IDs and #define Values for Project 
  2526.     Components. 
  2527.  
  2528.  5. Select OK. 
  2529.  
  2530.  
  2531. ΓòÉΓòÉΓòÉ 11.5. Adding Radio Buttons or Push Buttons ΓòÉΓòÉΓòÉ
  2532.  
  2533. You can add two types of buttons to your application window: 
  2534.  
  2535. o Radio buttons 
  2536. o Push buttons 
  2537.  
  2538. To add a radio button or a push button to a window: 
  2539.  
  2540.  1. Select the Buttons icon from the Objects toolbox and use the drag and drop 
  2541.     option to place it in your window. The Button Controls pop-up window 
  2542.     appears. 
  2543.  
  2544.  
  2545.         Button Controls Pop-Up Window
  2546.  
  2547.  2. If you want to display text within the button, type the text in the Button 
  2548.     text entry field. 
  2549.  
  2550.  3. Select the type of button you want to use in the window. In addition to the 
  2551.     buttons already described earlier in this section, you can add: 
  2552.  
  2553.    o An auto radio button, which is filled in automatically when a user selects 
  2554.      it. When the radio button is not automatic, you can control what happens 
  2555.      when the user selects it. 
  2556.  
  2557.    o A 3 state check box is identical to a check box (see Adding Check Boxes), 
  2558.      except that its check box can be half-toned as well as checked or 
  2559.      unchecked. It has three distinct states. 
  2560.  
  2561.    o An auto 3 state check box automatically toggles its state when the user 
  2562.      clicks on it, but you must insert code to change the state of a regular 3 
  2563.      state check box. 
  2564.  
  2565.    o A user-defined button, which gives you the option of defining the 
  2566.      appearance of a push button. 
  2567.  
  2568.  4. Select OK. 
  2569.  
  2570.  
  2571. ΓòÉΓòÉΓòÉ 11.6. Adding an Icon/Bitmap Button to a Window ΓòÉΓòÉΓòÉ
  2572.  
  2573. You can add push buttons to your application in the form of icons and bitmaps. 
  2574.  
  2575.  1. Select the Icon Button icon from the Objects toolbox and drag and drop it 
  2576.     into the window in which you would like the button to appear. The Button 
  2577.     Icon/Bitmap pop-up window appears. 
  2578.  
  2579.  
  2580.         Button Icon/Bitmap Pop-Up Window
  2581.  
  2582.  2. Either: 
  2583.  
  2584.    o Type the name of the icon or bitmap file that you want to make into a push 
  2585.      button. If you type the name of a bitmap, select the Bitmap check box. 
  2586.  
  2587.      or 
  2588.  
  2589.    o Select Files to see a list of icons available on the system. 
  2590.  
  2591.  3. Select the icon button or bitmap you want to add. You can move the icon 
  2592.     button or change the color and font as you wish. 
  2593.  
  2594.  4. Select OK. 
  2595.  
  2596.     The bitmap or icon appears as a push button in your application. 
  2597.  
  2598.  
  2599. ΓòÉΓòÉΓòÉ 11.7. Adding Check Boxes ΓòÉΓòÉΓòÉ
  2600.  
  2601. A check box allows users to turn on or off an option, like a switch. 
  2602.  
  2603.  1. Select the Check Box icon from the Objects toolbox. Drag and drop the icon 
  2604.     into the window to which the check box is to be added. 
  2605.  
  2606.     The Check Box Controls pop-up window appears. 
  2607.  
  2608.  
  2609.         Check Box Controls Pop-Up Window
  2610.  
  2611.  2. If you want to display text to the right of a check box, type the text in 
  2612.     the Button text entry field. 
  2613.  
  2614.  3. Select the type of check box you want to add to the window. When a user 
  2615.     selects an auto check box, Visual PL/I automatically checks it. When the 
  2616.     check box is not automatic, you can control what happens when the user 
  2617.     selects it. 
  2618.  
  2619.  4. Select OK. 
  2620.  
  2621.  
  2622. ΓòÉΓòÉΓòÉ 11.8. Adding a List Box ΓòÉΓòÉΓòÉ
  2623.  
  2624. A list box offers users a scrollable list from which they can make a choice. 
  2625.  
  2626.  1. Select the List Box icon from the Objects toolbox. Drag and drop the icon 
  2627.     into the window to which the list box is to be added. 
  2628.  
  2629.     The List Box #define pop-up window appears. 
  2630.  
  2631.  
  2632.         List Box #define Pop-Up Window
  2633.  
  2634.  2. If you want to define your own ID and # define value for this list box, 
  2635.     type the data in the respective fields. If you make no entries in these two 
  2636.     fields, Visual PL/I automatically assigns an ID and a #define to the object 
  2637.     you just created. See Defining IDs and #define Values for Project 
  2638.     Components. 
  2639.  
  2640.  3. Select OK. 
  2641.  
  2642.  
  2643. ΓòÉΓòÉΓòÉ 11.9. Adding a Spin Button ΓòÉΓòÉΓòÉ
  2644.  
  2645. A spin button enables you to complete an entry field by scrolling through a 
  2646. ring of related choices. 
  2647.  
  2648.  1. Select the Spin Button icon from the Objects toolbox. Drag and drop the 
  2649.     icon into the window to which the list box is to be added. 
  2650.  
  2651.     The Spin Button Control pop-up window appears. 
  2652.  
  2653.  
  2654.         Spin Button Control Pop-Up Window
  2655.  
  2656.  2. In the Spin Button type group box, specify whether the spin button is a 
  2657.     master button or a servant button. Master buttons have spin arrows and 
  2658.     servant buttons do not. 
  2659.  
  2660.     One example of the use of both types might be the setting of hours and 
  2661.     minutes. You can use a master button to set the minutes, and the servant 
  2662.     button to set the hour. 
  2663.  
  2664.     Use servant buttons in conjunction with a master button. The button that 
  2665.     spins, the master button, is the last button selected. 
  2666.  
  2667.  3. Each attribute that you check in the Style list is associated with the spin 
  2668.     button being added to the window. 
  2669.  
  2670.  4. Checked attributes in the Style list are associated with the spin button 
  2671.     being added to the window. 
  2672.  
  2673.     If you check the Numeric style option, you must define both an Upper limit 
  2674.     and a Lower limit for the Numeric range within the spin button. 
  2675.  
  2676.  5. Select the type of Alignment you require. The options are as follows: 
  2677.  
  2678.    o Default alignment sets the contents of the spin button to the current OS/2 
  2679.      defaults. 
  2680.  
  2681.    o Center alignment centers the contents of the spin button. 
  2682.  
  2683.    o Left alignment sets the contents of the spin button to the left. 
  2684.  
  2685.    o Right alignment sets the contents of the spin button to the right. 
  2686.  
  2687.  6. Select the Default contents push button to display the Spin Button-Add 
  2688.     Default Contents pop-up window, shown in Spin Button - Add Default Contents 
  2689.     Pop-Up Window. In this window, you can type in the sequence of text to be 
  2690.     displayed, for example, the months of the year. 
  2691.  
  2692.  
  2693.         Spin Button - Add Default Contents Pop-Up Window
  2694.  
  2695.  7. If you are assigning your own IDs and # define values, type these values. 
  2696.     See Defining IDs and #define Values for Project Components. 
  2697.  
  2698.  8. Select OK. 
  2699.  
  2700.  
  2701. ΓòÉΓòÉΓòÉ 11.10. Adding a Slider ΓòÉΓòÉΓòÉ
  2702.  
  2703.  1. Select the Slider icon from the Objects toolbox. Drag and drop the icon 
  2704.     into the window to which the value set is to be added. The Slider Button 
  2705.     Controls pop-up window appears. 
  2706.  
  2707.  
  2708.         Slider Button Controls Window
  2709.  
  2710.  2. In the Display slider group box, specify whether the slider is to be 
  2711.     positioned horizontally or vertically. 
  2712.  
  2713.  3. In the Slider type group box, indicate the type of slider you want to 
  2714.     create: 
  2715.  
  2716.    o Snap to increment allows the user to select a value to the nearest 
  2717.      gradation line. 
  2718.  
  2719.    o Ribbon strip indicates that the slider shaft colors behind the button as 
  2720.      the button moves along. 
  2721.  
  2722.    o Read only indicates that the slider is used only to display values. 
  2723.  
  2724.  4. Use the Start at group box to indicate the position of the arm (home 
  2725.     position). 
  2726.  
  2727.  5. Use the Place slider group box to indicate the position of the slider 
  2728.     shaft. It is either left, right, or center for a horizontal slider; and 
  2729.     bottom, top, or center for a vertical slider. 
  2730.  
  2731.  6. Use the Numeric Range group box to indicate the numbers to be displayed on 
  2732.     the slider scale. You can set the first number to be displayed, the upper 
  2733.     limit, and the numbers displayed in between for the increment. 
  2734.  
  2735.  7. Use the Place button at group box to set the position of the buttons to 
  2736.     left or bottom, or right or top. 
  2737.  
  2738.  8. Select OK. 
  2739.  
  2740.  
  2741. ΓòÉΓòÉΓòÉ 11.11. Adding a Notebook ΓòÉΓòÉΓòÉ
  2742.  
  2743. To add a notebook to a window: 
  2744.  
  2745.  1. Select the Book icon from the Objects toolbox. Drag and drop the icon into 
  2746.     the window where you want to add the notebook. 
  2747.  
  2748.  
  2749.         Notebook Control Window
  2750.  
  2751.  2. To simulate a real notebook, pages are bound together at one edge. In the 
  2752.     Binding group box, select whether you want the notebook to look like a 
  2753.     Solid bound book or a Spiral notebook. 
  2754.  
  2755.  3. The back of the notebook control is shaded to give a three-dimensional 
  2756.     effect. Use the Paint Back Pages group box to specify which sides of the 
  2757.     notebook are to be shaded. 
  2758.  
  2759.  4. Major tabs are located across from the binding. Minor tabs are located on 
  2760.     the side, at right angles to the major tabs. Use the Side of Major Tabs 
  2761.     group box to select the position of the major tabs. 
  2762.  
  2763.  5. Select the Tab Sizes push button to display the Tab Sizes pop-up window, as 
  2764.     shown in Tab Sizes Window. 
  2765.  
  2766.     You can set the height and width (in pixels) of tabs. 
  2767.  
  2768.  
  2769.         Tab Sizes Window
  2770.  
  2771.  6. Select the shape of the tabs that divide the notebook up into sections in 
  2772.     the Tab Shape group box of the Notebook Control window. 
  2773.  
  2774.  7. Select whether the tab information is left-justified, right-justified, or 
  2775.     centered on the tab in the Tab Justification group box. 
  2776.  
  2777.  8. Select whether the status text is left-justified, right-justified, or 
  2778.     centered on the notebook page in the Justify Status group box. 
  2779.  
  2780.  9. Select OK. 
  2781.  
  2782. 10. Each page in the notebook is created as a window or dialog box. Create a 
  2783.     window and drop it on the notebook. The Page Details pop-up window appears 
  2784.     as shown in Page Details Window. 
  2785.  
  2786.     Afterthefirstpageisdroppedonthenotebook 
  2787.     ,additionalpagesmustbedroppedonthenotebookitselfratherthanonthecurrentpage 
  2788.     .Youcaneditthepagesdirectlyusingtheobjectmanager 
  2789.     .Usetheleftandrightarrowsatthebottomofthenotebooktomovebetweenpages .
  2790.  
  2791.  
  2792.         Page Details Window
  2793.  
  2794. 11. Use this window to create the tabs for your notebook and to determine the 
  2795.     order in which they are presented. A Major tab appears, by default, on the 
  2796.     right side of your notebook. A Minor tab appears, by default, on the bottom 
  2797.     of the notebook page. 
  2798.  
  2799. 12. The order of the tabs is determined by the order in which you add them. To 
  2800.     reverse the order of two tabs, select the second tab and click on the Move 
  2801.     push button. The second tab becomes the first in the order of presentation. 
  2802.  
  2803.     Note:  This option only works on the tab shown directly above in the list. 
  2804.  
  2805. 13. After completing the page details, select OK to return to the Notebook 
  2806.     Control window. 
  2807.  
  2808. 14. Select OK. 
  2809.  
  2810.  
  2811. ΓòÉΓòÉΓòÉ 11.12. Adding a Group Box ΓòÉΓòÉΓòÉ
  2812.  
  2813.  1. Select the Group Box icon from the Objects toolbox. Drag and drop the icon 
  2814.     into the window. The Groupbox Item Text pop-up window appears. 
  2815.  
  2816.  
  2817.         Group Box Item Text Pop-Up Window
  2818.  
  2819.  2. If you want a label on the group box, type the text in the Text entry 
  2820.     field. 
  2821.  
  2822.  3. If you are assigning your own IDs and #defines, type the values in the ID 
  2823.     and #define entry fields. 
  2824.  
  2825.  4. Select OK. 
  2826.  
  2827.  
  2828. ΓòÉΓòÉΓòÉ 11.13. Adding Static Text ΓòÉΓòÉΓòÉ
  2829.  
  2830. Static text is the means by which the application presents descriptive 
  2831. information (for example, headings and field prompts) to the user. 
  2832.  
  2833. To add static text to a window: 
  2834.  
  2835.  1. Select the Text icon from the Objects toolbox. Drag and drop the icon into 
  2836.     the container. The Text Control pop-up window appears. 
  2837.  
  2838.  
  2839.         Text Control Pop-Up Window
  2840.  
  2841.  2. Type the text you want to add to the window in the Type text entry field. 
  2842.  
  2843.  3. Use the Horizontal options group box to specify how the text should be 
  2844.     aligned horizontally: 
  2845.  
  2846.    o Align left to left-align the text in the text field 
  2847.  
  2848.    o Center X to horizontally center the text within the text field 
  2849.  
  2850.    o Align right to right-align the text in the text field 
  2851.  
  2852.  4. Use the Vertical Options group box to specify how the text should be 
  2853.     aligned vertically: 
  2854.  
  2855.    o Align top to position the text at the top of the text field 
  2856.  
  2857.    o Center Y to vertically center the text within the text field 
  2858.  
  2859.    o Align bottom to position the text at the bottom of the text field 
  2860.  
  2861.  5. Select OK. 
  2862.  
  2863. If  allofthetextisnotdisplayedinthefield 
  2864. ,expandthesizeofthedisplayboxusingthepointertodragtheedgesofthebox .
  2865.  
  2866.  
  2867. ΓòÉΓòÉΓòÉ 11.14. Adding a Rectangle ΓòÉΓòÉΓòÉ
  2868.  
  2869.  1. Select the Rectangle icon from the Objects toolbox. Drag and drop the icon 
  2870.     into the window. The Rectangle Controls pop-up window appears. 
  2871.  
  2872.  
  2873.         Rectangle Controls Pop-Up Window
  2874.  
  2875.  2. Use the Styles group box to select the type of rectangle you want to add: 
  2876.  
  2877.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2878.         Γöé RECTANGLE TYPE          Γöé DESCRIPTION                Γöé
  2879.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2880.         Γöé FOREGROUND FRAME         Γöé Transparent rectangle in the foreground  Γöé
  2881.         Γöé                  Γöé of your window.              Γöé
  2882.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2883.         Γöé FOREGROUND RECTANGLE       Γöé Opaque rectangle in the foreground of   Γöé
  2884.         Γöé                  Γöé your window.                Γöé
  2885.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2886.         Γöé HALFTONE FRAME          Γöé Transparent rectangle in the foreground  Γöé
  2887.         Γöé                  Γöé with a half-tone border.          Γöé
  2888.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2889.         Γöé HALFTONE RECTANGLE        Γöé Opaque rectangle in the foreground with a Γöé
  2890.         Γöé                  Γöé half-tone border and filling.       Γöé
  2891.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2892.         Γöé BACKGROUND FRAME         Γöé Transparent rectangle in the background  Γöé
  2893.         Γöé                  Γöé of your window.              Γöé
  2894.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2895.         Γöé BACKGROUND RECTANGLE       Γöé Opaque rectangle in the background of   Γöé
  2896.         Γöé                  Γöé your window.                Γöé
  2897.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2898.         Table 6. Rectangle Types
  2899.  
  2900.  3. Type the ID and a #define value for the rectangle, if required. 
  2901.  
  2902.  4. Select OK. 
  2903.  
  2904.  
  2905. ΓòÉΓòÉΓòÉ 11.15. Adding a Line ΓòÉΓòÉΓòÉ
  2906.  
  2907. You can add a line to your window to improve the design. As you add the line, 
  2908. you can select both the orientation and thickness of it. 
  2909.  
  2910.  1. Select the Line icon from the Objects toolbox. Drag and drop the icon into 
  2911.     the window. The Line Controls pop-up window appears. 
  2912.  
  2913.  
  2914.         Line Control Pop-Up Window
  2915.  
  2916.  2. Use the Line Orientation group box to select whether you want to add a 
  2917.     horizontal, vertical, ascending, or descending line. The default is 
  2918.     horizontal. 
  2919.  
  2920.  3. Use the Thickness list box to select the width of the line, by clicking on 
  2921.     any number displayed in the box. The default is 1. 
  2922.  
  2923.  4. Select OK. 
  2924.  
  2925.  5. Once you add the line to the window, expand or shorten the line as 
  2926.     required. Use your mouse pointer to create the exact length needed for the 
  2927.     window by dragging the borders to the desired length. 
  2928.  
  2929.  
  2930. ΓòÉΓòÉΓòÉ 11.16. Adding or Replacing Your Own Icons ΓòÉΓòÉΓòÉ
  2931.  
  2932. You can add your own icons to the set of icons provided in Visual PL/I and use 
  2933. them in your applications. You can also replace an existing icon. 
  2934.  
  2935. To add or replace an icon: 
  2936.  
  2937.  1. Select Icons from the Objects toolbox. Drag and drop the icon into the 
  2938.     window. The Icons pop-up window appears. 
  2939.  
  2940.  
  2941.         Icons Pop-Up Window
  2942.     All the icons currently loaded into Visual PL/I are named in the Currently 
  2943.     available list box. 
  2944.  
  2945.  2. To add an icon named in the list box to a window, select the name and then 
  2946.     select OK. 
  2947.  
  2948.     To add a new icon to the list box, select the Load push button. See Loading 
  2949.     Your Own Icons for Use in a Window below. 
  2950.  
  2951.  
  2952. ΓòÉΓòÉΓòÉ 11.16.1. Loading Your Own Icons for Use in a Window ΓòÉΓòÉΓòÉ
  2953.  
  2954.  1. Select Icons from the Objects toolbox. 
  2955.  
  2956.  2. Drag and drop the icon into the window you want the icon to appear. The 
  2957.     Icons pop-up window appears. 
  2958.  
  2959.  3. Select the Load push button. The Select an Icon to load pop-up window 
  2960.     appears, as shown in Select an Icon to Load Window. 
  2961.  
  2962.  
  2963.         Select an Icon to Load Window
  2964.  
  2965.  4. The Open filename entry field initially displays *┬╖ico. This default entry 
  2966.     displays, in the File list box, a list of all files in the selected 
  2967.     directory with the file type ico. You can type a different set of filename 
  2968.     details in the Open filename entry field and display the names of other 
  2969.     files in this directory. For example, if you change *┬╖ico to *.*, the names 
  2970.     of all the files in the directory are displayed. 
  2971.  
  2972.  5. The Directory list box initially highlights the name of the directory 
  2973.     Visual PL/I is currently using. If you want to load the icon from another 
  2974.     directory, select the name of the correct directory from the list box. 
  2975.  
  2976.  6. The File list box lists the names of the files present in the chosen 
  2977.     directory. 
  2978.  
  2979.  7. To select the icon file you want to load, either type the name of the file 
  2980.     directly into the Open filename entry field or select it from the File list 
  2981.     box. 
  2982.  
  2983.  8. To load the file, select OK. 
  2984.  
  2985.     Visual PL/I then loads the icon file, closes the Select an Icon to load 
  2986.     pop-up window, and returns you to the Icon pop-up window. The name of the 
  2987.     new icon is then added to the Currently available list. 
  2988.  
  2989.  
  2990. ΓòÉΓòÉΓòÉ 11.16.2. Replacing an Icon in the Currently Available List Box ΓòÉΓòÉΓòÉ
  2991.  
  2992. To replace an icon, do the following: 
  2993.  
  2994.  1. Select an icon name from the Currently available list box. 
  2995.  
  2996.  2. Select the Change push button. The Select an Icon to load window appears. 
  2997.  
  2998.  3. Proceed as described in Loading Your Own Icons for Use in a Window to load 
  2999.     the new icon. The name of this new icon replaces the name of the icon that 
  3000.     you selected in the Currently available list box. The new icon itself 
  3001.     replaces the original icon wherever it occurs in your Visual PL/I 
  3002.     applications. 
  3003.  
  3004.  
  3005. ΓòÉΓòÉΓòÉ 11.16.3. Replacing an Icon in Your Application ΓòÉΓòÉΓòÉ
  3006.  
  3007. To replace an icon in your application, do the following: 
  3008.  
  3009.  1. Follow the procedure as described in Changing a Control. The Select an Icon 
  3010.     to load window appears. 
  3011.  
  3012.  2. Select a new icon from the Currently available list box, or follow the 
  3013.     procedure in Loading Your Own Icons for Use in a Window or Replacing an 
  3014.     Icon in the Currently Available List Box. 
  3015.  
  3016.  
  3017. ΓòÉΓòÉΓòÉ 11.17. Adding Bitmaps ΓòÉΓòÉΓòÉ
  3018.  
  3019. You can use bitmaps created by other graphics packages in your Visual PL/I 
  3020. applications. You can also replace an existing bitmap by following the 
  3021. procedure for changing a control (see Changing a Control) and then adding a new 
  3022. bitmap. 
  3023.  
  3024.  1. Select the Bitmap icon from the Objects toolbox. Drag and drop the icon 
  3025.     into the window. The Bitmaps pop-up window appears. 
  3026.  
  3027.  
  3028.         Bitmaps Pop-Up Window
  3029.  
  3030.  2. The names of all bitmaps currently loaded into Visual PL/I appear in the 
  3031.     Currently available list box. To add one of these bitmaps to a window, 
  3032.     select the one you want from the Currently available list box and then 
  3033.     select OK. 
  3034.  
  3035.  3. To add a new bitmap to the list of available bitmaps, select the Load push 
  3036.     button. The Select a Bitmap to load window appears. 
  3037.  
  3038.  
  3039.         Select a Bitmap to load Window
  3040.  
  3041.  4. The Open filename entry field initially displays *.bmp. All file names with 
  3042.     the file type bmp that are present in the highlighted directory are 
  3043.     displayed in the File list box. 
  3044.  
  3045.  5. The Directory output field initially highlights the name of the directory 
  3046.     Visual PL/I is currently using. If the bitmap to be loaded is in a 
  3047.     different directory, select the appropriate directory name from the list 
  3048.     box. 
  3049.  
  3050.  6. The File field lists the names of all bitmap files present in the chosen 
  3051.     directory. 
  3052.  
  3053.  7. To select the bitmap file you want to load, type the fully-qualified name 
  3054.     in the Open filename entry field. 
  3055.  
  3056.  8. To load the file, select OK. 
  3057.  
  3058.     Visual PL/I then loads the bitmap, closes this window, and returns you to 
  3059.     the Bitmaps pop-up window, as shown in Bitmaps Pop-Up Window. The name of 
  3060.     the new bitmap file is added to the Currently available list box. Select 
  3061.     the bitmap file and select OK to insert it. 
  3062.  
  3063.  
  3064. ΓòÉΓòÉΓòÉ 11.17.1. Replacing a Bitmap in the Currently Available List Box ΓòÉΓòÉΓòÉ
  3065.  
  3066. To replace a bitmap, do the following: 
  3067.  
  3068.  1. Select a bitmap name from the Currently available list box. 
  3069.  
  3070.  2. Select the Change push button. The Select a Bitmap to load window appears. 
  3071.  
  3072.  3. Proceed as described in Adding Bitmaps to load the new bitmap. The name of 
  3073.     this new bitmap replaces the name of the bitmap that you selected in the 
  3074.     Currently available list box. The new bitmap itself replaces the original 
  3075.     icon wherever it occurs in your Visual PL/I applications. 
  3076.  
  3077.  
  3078. ΓòÉΓòÉΓòÉ 11.17.2. Replacing a Bitmap in Your Application ΓòÉΓòÉΓòÉ
  3079.  
  3080. To replace a bitmap in your application, do the following: 
  3081.  
  3082.  1. Follow the procedure as described in Adding Bitmaps. The Bitmaps pop-up 
  3083.     window appears. 
  3084.  
  3085.  2. Select a new bitmap from the Currently available list box, or follow the 
  3086.     procedure in Loading Your Own Icons for Use in a Window or Replacing a 
  3087.     Bitmap in the Currently Available List Box. 
  3088.  
  3089.  
  3090. ΓòÉΓòÉΓòÉ 11.18. Adding System Icons ΓòÉΓòÉΓòÉ
  3091.  
  3092. A system icon is an icon that belongs to the OS/2 operating system, such as the 
  3093. `DOS box' icon. You can use system icons in your Visual PL/I applications. You 
  3094. can also replace an existing system icon by following the change procedure and 
  3095. then adding a new system icon. 
  3096.  
  3097. To add a system icon to a window: 
  3098.  
  3099.  1. Select Sys Icons from the Objects toolbox. Drag and drop the icon into the 
  3100.     window. The System Icons pop-up window appears. 
  3101.  
  3102.  
  3103.         System Icons Pop-Up Window
  3104.  
  3105.     All the available system icons are displayed in the Currently available 
  3106.     list box. 
  3107.  
  3108.  2. To add any of the icons in the list box to a window, select the item you 
  3109.     want from the list box and select OK. 
  3110.  
  3111.  
  3112. ΓòÉΓòÉΓòÉ 11.19. Adding System Bitmaps ΓòÉΓòÉΓòÉ
  3113.  
  3114. A system bitmap is a bitmap that is supplied with the OS/2 operating system, 
  3115. such as the `folder' bitmap. You can use system bitmaps in your Visual PL/I 
  3116. applications. You can also replace an existing system bitmap by following the 
  3117. change control procedure and then adding a new system bitmap. 
  3118.  
  3119. To add a system bitmap to a window: 
  3120.  
  3121.  1. Select the Sys Bitmap icon from the Objects toolbox. Drag and drop the icon 
  3122.     into the window. The System Bitmaps pop-up window appears. 
  3123.  
  3124.  
  3125.         System Bitmaps Pop-Up Window
  3126.  
  3127.     The names of the currently available system bitmaps are displayed in the 
  3128.     Currently available list box. 
  3129.  
  3130.  2. To add one of the bitmaps to a window, select the item you want within the 
  3131.     list box and select OK. 
  3132.  
  3133.  
  3134. ΓòÉΓòÉΓòÉ 11.19.1. Replacing a System Bitmap in the Currently Available List Box ΓòÉΓòÉΓòÉ
  3135.  
  3136. To replace a system bitmap, do the following: 
  3137.  
  3138.  1. Select a bitmap name from the Currently available list box. 
  3139.  
  3140.  2. Select the Change push button. The Select a Bitmap to load window appears. 
  3141.  
  3142.  3. Proceed as described in Adding Bitmaps to load the new bitmap. The name of 
  3143.     this new bitmap replaces the name of the bitmap that you selected in the 
  3144.     Currently available list box. The new bitmap itself replaces the original 
  3145.     icon wherever it occurs in your Visual PL/I applications. 
  3146.  
  3147.  
  3148. ΓòÉΓòÉΓòÉ 11.19.2. Replacing a System Bitmap in Your Application ΓòÉΓòÉΓòÉ
  3149.  
  3150. To replace a system bitmap in your application, do the following: 
  3151.  
  3152.  1. Follow the procedure as described in Adding Bitmaps. The Bitmaps pop-up 
  3153.     window appears. 
  3154.  
  3155.  2. Select a new bitmap from the Currently available list box, or follow the 
  3156.     procedure in Loading Your Own Icons for Use in a Window or Replacing a 
  3157.     Bitmap in the Currently Available List Box. 
  3158.  
  3159.  
  3160. ΓòÉΓòÉΓòÉ 11.20. Working with Controls ΓòÉΓòÉΓòÉ
  3161.  
  3162. After you have created the controls for a window, you can: 
  3163.  
  3164. o Make changes to the control 
  3165. o Delete the control 
  3166. o Copy the control, either within the same window or to another window 
  3167. o Change the position and size of a control 
  3168. o Set the style of controls 
  3169. o Change the default presentation parameters of a control 
  3170.  
  3171.  
  3172. ΓòÉΓòÉΓòÉ 11.20.1. Changing a Control ΓòÉΓòÉΓòÉ
  3173.  
  3174. To change the attributes you have assigned to an existing control: 
  3175.  
  3176.  1. Position the mouse pointer directly on the control in the active window. 
  3177.  
  3178.  2. Click mouse button 2 to display the context menu. The context menu provides 
  3179.     a fast way of working with a control. 
  3180.  
  3181.  3. Select Change from the menu to display the pop-up window for that control. 
  3182.  
  3183.  4. Make the required changes to the control. 
  3184.  
  3185.  5. Select OK. 
  3186.  
  3187.  
  3188. ΓòÉΓòÉΓòÉ 11.20.2. Deleting a Control within a Window ΓòÉΓòÉΓòÉ
  3189.  
  3190. To delete a control that has been added to the active window: 
  3191.  
  3192.  1. Position the mouse pointer directly on the control in the active window. 
  3193.  
  3194.  2. Click mouse button 2 to display the context menu. 
  3195.  
  3196.  3. Select Delete. 
  3197.  
  3198.  
  3199. ΓòÉΓòÉΓòÉ 11.20.3. Copying a Control within a Window ΓòÉΓòÉΓòÉ
  3200.  
  3201. To make a copy of a control within the active window: 
  3202.  
  3203.  1. Select the control that you want to copy. 
  3204.  
  3205.  2. Click the right mouse button to display the controls menu. 
  3206.  
  3207.  3. Select Copy from the menu. 
  3208.  
  3209.     This action creates a copy of the control icon superimposed on the original 
  3210.     control icon. 
  3211.  
  3212.  4. Select the control again. 
  3213.  
  3214.  5. Hold down mouse button 1 and drag and drop the copy onto the required 
  3215.     position. 
  3216.  
  3217. The copy of the control is moved to the new position, while the control that 
  3218. was copied remains in its original position. You can move the copy to another 
  3219. window. 
  3220.  
  3221. Another method of copying a control is to: 
  3222.  
  3223.  1. Select the control to be copied. 
  3224.  
  3225.  2. Hold down the Ctrl key and mouse button 1 simultaneously and drag and drop 
  3226.     the copy of the control onto the required new position. 
  3227.  
  3228.  
  3229. ΓòÉΓòÉΓòÉ 11.20.4. Changing the Position or Size of a Control ΓòÉΓòÉΓòÉ
  3230.  
  3231. To change the position or size of a control: 
  3232.  
  3233.  1. Select the control within the active window. 
  3234.  
  3235.  2. Click mouse button 2 to display the context menu. 
  3236.  
  3237.  3. Select Position/Size from the menu. The pop-up window, shown in 
  3238.     Position/Size Pop-Up Window, appears to allow you to change both the size 
  3239.     and position of the control. 
  3240.  
  3241.  
  3242.         Position/Size Pop-Up Window
  3243.  
  3244.    X Pos   Pixel position of the control as it appears on the X axis. 
  3245.  
  3246.    Y Pos   Pixel position of the control as it appears on the Y axis. 
  3247.  
  3248.    X Size  Length in pixels of the control as it appears on the X axis. 
  3249.  
  3250.    Y Size  Length in pixels of the control as it appears on the Y axis. 
  3251.  
  3252.  
  3253. ΓòÉΓòÉΓòÉ 11.20.5. Setting Control Styles ΓòÉΓòÉΓòÉ
  3254.  
  3255. You can specify certain characteristics for a control you have created within 
  3256. Visual PL/I by using the Window Styles pop-up window: 
  3257.  
  3258.  1. Select the control within the active window. 
  3259.  
  3260.  2. Click mouse button 2 on the control to display a pop-up menu. 
  3261.  
  3262.  3. Select Styles from the menu to display the Window Styles pop-up window. For 
  3263.     more information about window style definitions, see Presentation Manager 
  3264.     Programming Reference. 
  3265.  
  3266.  
  3267.         Window Styles Pop-Up
  3268.  
  3269. You can select an entry from the WS_Styles list to define some of the 
  3270. characteristics of a control. For example, WS_DISABLED disables the control so 
  3271. that it cannot receive user input. You can select from the Item Styles list to 
  3272. define other characteristics of a control. For example, BS_NOBORDER displays a 
  3273. button without any border. For more information on styles, see Presentation 
  3274. Manager Programming Reference. 
  3275.  
  3276.  
  3277. ΓòÉΓòÉΓòÉ 11.20.6. Changing the Default Parameters of a Control ΓòÉΓòÉΓòÉ
  3278.  
  3279. You can change the default parameters of any control or object in the Objects 
  3280. toolbox. 
  3281.  
  3282. Double-click mouse button 1 on the control you want to change in the Objects 
  3283. toolbox to display the Default Parameters pop-up window. 
  3284.  
  3285.  
  3286. Default Parameters Window for Check Boxes
  3287.  
  3288. You can set the following defaults: 
  3289.  
  3290. Title           Text that appears with the icon in the Control Manager window. 
  3291.  
  3292. Initial width   Width of the control in pixels as it appears when added to the 
  3293.                 active window. 
  3294.  
  3295. Initial height  Height of the control in pixels as it appears when added to the 
  3296.                 active window. 
  3297.  
  3298. Initial style   Style of the control or object as it appears when added to the 
  3299.                 active window. 
  3300.  
  3301.  
  3302. ΓòÉΓòÉΓòÉ 11.20.7. Working with a Group of Controls ΓòÉΓòÉΓòÉ
  3303.  
  3304. After you define controls for a window, you can define the appearance, position 
  3305. and order of these controls. You can mark them as a group and: 
  3306.  
  3307. o Copy the group to another window 
  3308. o Delete the group from a window 
  3309. o Move the group within the window 
  3310. o Define the sequence in which the cursor moves through the group 
  3311. o Size and align the group horizontally or vertically 
  3312. o Separate the group by equal distances 
  3313. o Center the group horizontally or vertically within a window 
  3314.  
  3315. If you do not like the end result, you can undo the operation. See Undoing 
  3316. Changes Made to Control Size and Alignment. 
  3317.  
  3318.  
  3319. ΓòÉΓòÉΓòÉ 11.20.7.1. Identifying Controls as a Group ΓòÉΓòÉΓòÉ
  3320.  
  3321. To take an action on controls as a group, you must first identify the controls 
  3322. that comprise the group. Any action taken then operates on all the members of 
  3323. the group. For example, you can use a single layout action to set the same 
  3324. horizontal size for each control in a group of marked controls. To define a 
  3325. control group: 
  3326.  
  3327.  1. Move the mouse pointer to the first control and click mouse button 2 on it. 
  3328.     A pop-up menu appears. 
  3329.  
  3330.  2. Select Styles from the menu. A pop-up window appears. 
  3331.  
  3332.  3. From the WS_Styles list box, select WS_GROUP. You do not have to mark the 
  3333.     end of the section. It automatically ends when you begin a new section. 
  3334.  
  3335.  
  3336. ΓòÉΓòÉΓòÉ 11.20.7.2. Marking Controls for Further Action ΓòÉΓòÉΓòÉ
  3337.  
  3338. To mark a control: 
  3339.  
  3340.  1. Position the mouse pointer on the control you want to work with. 
  3341.  
  3342.  2. Press the Shift key on your keyboard and click mouse button 1 to mark the 
  3343.     control. 
  3344.  
  3345.     Note:  To mark more than one control, move the mouse pointer to each 
  3346.     control and click mouse button 1 while continuing to hold down the Shift 
  3347.     key. When you are finished, release the Shift key. All controls you 
  3348.     selected are marked for further action. 
  3349. An alternative method of marking a control follows: 
  3350.  
  3351.  1. Move the mouse pointer directly on top of the control in the window and 
  3352.     click mouse button 2. 
  3353.  
  3354.  2. Select Layout. 
  3355.  
  3356.  3. Select Mark from the pull-down menu. 
  3357.  
  3358.  4. Mark the control. 
  3359.  
  3360. The border around a control changes color to show that the control has been 
  3361. marked. If you mark more than one control, the colors show the order in which 
  3362. they were marked, as follows: 
  3363.  
  3364. o Brown indicates the first control marked. 
  3365.  
  3366. o Purple indicates the second and subsequent controls marked. 
  3367.  
  3368. o Red indicates the last control marked. 
  3369.  
  3370. All actions that are performed with a marked group use the last marked control 
  3371. as the basis for the action. 
  3372.  
  3373.  
  3374. ΓòÉΓòÉΓòÉ 11.20.7.3. Ordering a Group of Controls ΓòÉΓòÉΓòÉ
  3375.  
  3376.  1. Click mouse button 2 on any control in the window. 
  3377.  
  3378.  2. Select Layout. 
  3379.  
  3380.  3. Select Order Group. The controls are placed in the order you have chosen. 
  3381.  
  3382.  
  3383. ΓòÉΓòÉΓòÉ 11.20.7.4. Setting the Order in Which the Arrow or Tab Key Moves ΓòÉΓòÉΓòÉ
  3384.  
  3385. Arrow and tab keys let you move the cursor within a window or dialog box if you 
  3386. are not using a mouse. Set the Arrow keys to move the cursor within a group of 
  3387. controls. Set the tab keys to move from group to group. 
  3388.  
  3389. To identify the control to which the tab key carries the cursor, select 
  3390. WS_TABSTOP from the WS_Styles list box, and then mark the control. For example, 
  3391. you may want the tab to stop at the first control in each group. 
  3392.  
  3393. As you mark the controls for a dialog box, mark them in the same order that you 
  3394. want the tab key to follow. As you mark the controls for a window, mark them in 
  3395. reverse order. 
  3396.  
  3397.  
  3398. ΓòÉΓòÉΓòÉ 11.20.7.4.1. Additional Step for Windows ΓòÉΓòÉΓòÉ
  3399.  
  3400. You must also add the WM_CHAR message to the window: 
  3401.  
  3402.  1. Display the Links window. 
  3403.  
  3404.  2. Select WM_CHAR from the Event list box. 
  3405.  
  3406.  3. Select Tabbing Functions from the Library list box. 
  3407.  
  3408.  4. Select the Do group tabbing code block from the Code blocks available list 
  3409.     box. 
  3410.  
  3411.  
  3412. ΓòÉΓòÉΓòÉ 11.20.7.5. Copying a Group of Controls ΓòÉΓòÉΓòÉ
  3413.  
  3414.  1. Mark the controls to be copied. 
  3415.  
  3416.  2. Display the context menu and select Layout from the menu. 
  3417.  
  3418.  3. Select Copy Group from the cascaded menu. 
  3419.  
  3420.  4. Select the window to which the controls will be copied. A pop-up window 
  3421.     appears. 
  3422.  
  3423.  5. Select Window from the list of options. 
  3424.  
  3425.  6. The selected controls are copied. The copied control is in the same 
  3426.     position (on top of) the selected control in its new window. 
  3427.  
  3428.  
  3429. ΓòÉΓòÉΓòÉ 11.20.7.6. Deleting a Group of Controls ΓòÉΓòÉΓòÉ
  3430.  
  3431.  1. In the active project window, mark the controls to be deleted, as described 
  3432.     in Marking Controls for Further Action. 
  3433.  
  3434.  2. Display the context menu and select Layout from the menu. 
  3435.  
  3436.  3. Select Delete Group from Layout cascaded menu. 
  3437.  
  3438. If  youhaveanylinksattachedtothecontrol 
  3439. ,youmustdeletethelinksbeforeyoucandeletethecontrol .SeeDeletingaLink .
  3440.  
  3441.  
  3442. ΓòÉΓòÉΓòÉ 11.20.7.7. Moving a Group of Controls ΓòÉΓòÉΓòÉ
  3443.  
  3444. Moving a group moves all the controls in a group. However, the controls retain 
  3445. their original position in relation to each other. 
  3446.  
  3447. To move controls within a window: 
  3448.  
  3449.  1. Mark the controls to be moved, as described in Marking Controls for Further 
  3450.     Action. 
  3451.  
  3452.  2. Display the context menu for the related control. 
  3453.  
  3454.  3. Select Layout from the menu. 
  3455.  
  3456.  4. Select Move Group from the cascaded menu. 
  3457.  
  3458.  5. Use the mouse to move the control or group to the area required within the 
  3459.     client area of the project window. 
  3460.  
  3461.  
  3462. ΓòÉΓòÉΓòÉ 11.20.7.8. Ordering a Group of Controls ΓòÉΓòÉΓòÉ
  3463.  
  3464. You can choose the path the cursor takes (from one control to another) when the 
  3465. user presses the Tab and Arrow keys: 
  3466.  
  3467.  1. Mark the controls you want to work with, as described in Marking Controls 
  3468.     for Further Action. 
  3469.  
  3470.  2. Position the mouse button on any of the controls you just marked. Click 
  3471.     mouse button 2 to display the relevant context menu. 
  3472.  
  3473.  3. Select Layout from the menu. A cascaded menu appears. 
  3474.  
  3475.  4. Select Order Group from the cascaded menu. 
  3476.  
  3477.  5. Select the controls in the order that they are to be processed when the 
  3478.     program is being run. The order of selection is set according to the order 
  3479.     you specify. 
  3480.  
  3481.  
  3482. ΓòÉΓòÉΓòÉ 11.20.7.9. Unmarking Controls ΓòÉΓòÉΓòÉ
  3483.  
  3484. You can unmark a marked control by clicking mouse button 1 on the control while 
  3485. holding down the Shift key. 
  3486.  
  3487. To unmark all controls: 
  3488.  
  3489.  1. Display the context menu by clicking mouse button 2 on one of the marked 
  3490.     controls. 
  3491.  
  3492.  2. Select Layout from the menu. A cascaded menu appears. 
  3493.  
  3494.  3. Select Unmark All from the cascaded menu. 
  3495.  
  3496.  
  3497. ΓòÉΓòÉΓòÉ 11.20.7.10. Sizing a Group of Controls ΓòÉΓòÉΓòÉ
  3498.  
  3499. You can change the size of the controls in a group by enlarging them or 
  3500. reducing them horizontally or vertically. The last marked control in the group 
  3501. determines the size of the marked controls. 
  3502.  
  3503. To size the controls: 
  3504.  
  3505.  1. Mark the controls, saving the reference control until last. 
  3506.  
  3507.  2. Display the context menu for the control. 
  3508.  
  3509.  3. Select Layout from the context menu. A cascaded menu appears. 
  3510.  
  3511.  4. Select Size X from the cascaded menu to size the group horizontally 
  3512.  
  3513.     or 
  3514.  
  3515.     Select the Size Y option to size the group vertically. 
  3516.  
  3517. For entry fields with margins, the size is the internal size of the entry field 
  3518. without the margin. 
  3519.  
  3520.  
  3521. ΓòÉΓòÉΓòÉ 11.20.7.11. Aligning a Group of Controls ΓòÉΓòÉΓòÉ
  3522.  
  3523. The alignment of a group of controls relates to the position of the controls. 
  3524. It ensures that the controls in the group are horizontally or vertically 
  3525. aligned. The last marked control is used as a reference point for the position 
  3526. of all marked controls. 
  3527.  
  3528. To align the controls: 
  3529.  
  3530.  1. Leaving the reference control (the control that determines the position of 
  3531.     the others) until last, mark the controls to be aligned. 
  3532.  
  3533.  2. Select Layout from the context menu. A cascaded menu appears. 
  3534.  
  3535.  3. Select Align X option from the cascaded menu to align the group 
  3536.     horizontally. 
  3537.  
  3538.  4. Select Right to align the group to the right edge of the last control 
  3539.  
  3540.     or 
  3541.  
  3542.     Select Left to align the group to the left edge of the last control. 
  3543.  
  3544.     Select the Align Y option to align the group vertically on the Y axis. 
  3545.     Select Top to align the group to the top edge of the last control or Bottom 
  3546.     to align the group to the bottom edge of the last control. 
  3547.  
  3548.  
  3549. ΓòÉΓòÉΓòÉ 11.20.7.12. Positioning a Group of Controls ΓòÉΓòÉΓòÉ
  3550.  
  3551. Use this option to position the controls in a group at equal distances 
  3552. horizontally or vertically. The first and last controls remain fixed, the other 
  3553. controls in the group are moved to achieve equal separations. 
  3554.  
  3555. To separate the controls with equal spaces between consecutive controls: 
  3556.  
  3557.  1. Ensure that the first and last controls are in the correct position and 
  3558.     mark the controls to be separated, as described in Marking Controls for 
  3559.     Further Action. 
  3560.  
  3561.  2. Display the context menu. 
  3562.  
  3563.  3. Select Layout. A cascaded menu appears. 
  3564.  
  3565.  4. Select Separate X from the cascaded menu to separate the group horizontally 
  3566.  
  3567.     or 
  3568.  
  3569.     Select Separate Y to separate the group vertically. 
  3570.  
  3571.  
  3572. ΓòÉΓòÉΓòÉ 11.20.7.13. Centering Controls ΓòÉΓòÉΓòÉ
  3573.  
  3574. Use this option to center a control or group of controls horizontally or 
  3575. vertically in the window. 
  3576.  
  3577.  1. Mark the control or controls to be centered, as described in Marking 
  3578.     Controls for Further Action. 
  3579.  
  3580.  2. Display the context menu for the control. 
  3581.  
  3582.  3. Select Layout from the menu. A cascaded menu appears. 
  3583.  
  3584.  4. Select Center X option from the menu to center the group horizontally, or 
  3585.     select Center Y to center the group vertically. 
  3586.  
  3587.  
  3588. ΓòÉΓòÉΓòÉ 11.20.7.14. Undoing Changes Made to Control Size and Alignment ΓòÉΓòÉΓòÉ
  3589.  
  3590. If you realigned or sized a control and the result is not satisfactory, you can 
  3591. undo the action as follows: 
  3592.  
  3593.  1. Select the appropriate control. 
  3594.  
  3595.  2. Display the context menu. 
  3596.  
  3597.  3. Select Layout from the context menu. 
  3598.  
  3599.  4. Select Undo from the cascaded menu to reverse the operation. 
  3600.  
  3601.     TheUndooptionworksonlyonchangesmadetothesizeoralignmentofacontrolorgroup 
  3602.     .Ifyoudeleteagroup ,theUndooptioncannotreversethisaction .
  3603.  
  3604.  
  3605. ΓòÉΓòÉΓòÉ 12. Assigning Accelerators (Shortcut Keys) ΓòÉΓòÉΓòÉ
  3606.  
  3607. An accelerator is a function key or a combination of keys that invokes an 
  3608. application-defined action. An accelerator is also referred to as a shortcut 
  3609. key. 
  3610.  
  3611. These keys provide users with a fast way to perform some activity that would 
  3612. normally be selected from a pull-down. Frequently used actions, such as exiting 
  3613. an application from a File pull-down, are excellent candidates for 
  3614. accelerators. 
  3615.  
  3616. Note:  Accelerator keys cannot be defined for pop-up windows or context menus. 
  3617.  
  3618. After you assign the key or key combination to an action, the accelerator is 
  3619. normally displayed opposite the action in the menu or pull-down. An example of 
  3620. an assigned accelerator key combination is shown on the Exit menu option in An 
  3621. Example of a Context Menu, where F3 is synonymous with Exit. 
  3622.  
  3623. When you select an accelerator for an action, Visual PL/I puts the information 
  3624. in an accelerator table, where each accelerator key combination is represented 
  3625. by a tabulated line that describes the keys and the process it affects. The 
  3626. accelerator table is stored in a resource file. 
  3627.  
  3628.  
  3629. ΓòÉΓòÉΓòÉ 12.1. Assigning an Accelerator ΓòÉΓòÉΓòÉ
  3630.  
  3631. To assign an accelerator to a window, add an entry to the accelerator table for 
  3632. that window. 
  3633.  
  3634.  1. Select the Accelerator Table icon from the Objects toolbox. 
  3635.  
  3636.  2. Drag the icon into the related window. 
  3637.  
  3638.  3. Release mouse button 2 to display the Accelerator Table Manager pop-up 
  3639.     window. 
  3640.  
  3641.  
  3642.         Accelerator Table Manager Pop-Up Window
  3643.  
  3644. The Identifiers list contains the #define parameter name for each window, 
  3645. action bar item, control, and any other item contained within the window. 
  3646.  
  3647. The Current selections list contains a list of currently available accelerators 
  3648. in the form of identifiers, listed with their corresponding key combinations. 
  3649.  
  3650. To add an accelerator table entry to a window, complete the following steps: 
  3651.  
  3652.  1. Select an item from the Identifiers list box. 
  3653.  
  3654.  2. Press the key combinations that you wish to associate with the selected 
  3655.     item. 
  3656.  
  3657.  3. Select Add. The key combination and the associated identifier are added to 
  3658.     the Current selections list box. 
  3659.  
  3660.  4. Select OK to add the identifier and key combination to the accelerator 
  3661.     table for the window. 
  3662.  
  3663.  
  3664. ΓòÉΓòÉΓòÉ 12.2. Deleting an Accelerator ΓòÉΓòÉΓòÉ
  3665.  
  3666. To delete an accelerator: 
  3667.  
  3668.  1. Select the accelerator table icon from the Objects toolbox. 
  3669.  
  3670.  2. Drag the icon over to the related window. The Accelerator table manager 
  3671.     pop-up window appears. 
  3672.  
  3673.  3. Select the entry from the Current selections list box. 
  3674.  
  3675.  4. Select Delete to remove the entry from the Current selections list. 
  3676.  
  3677.  5. Select OK to delete the entry from the accelerator table and close the 
  3678.     Accelerator Table Manager window. 
  3679.  
  3680.  
  3681. ΓòÉΓòÉΓòÉ 12.3. Tips on Using Accelerator Keys ΓòÉΓòÉΓòÉ
  3682.  
  3683. Following are some tips on using accelerator keys. 
  3684.  
  3685.  
  3686. ΓòÉΓòÉΓòÉ 12.3.1. Multiple keystrokes ΓòÉΓòÉΓòÉ
  3687.  
  3688. Before attempting to type a key combination in the Accelerator Table Manager 
  3689. window, ensure that the Add push button has the focus. If Add does not have the 
  3690. focus, key combinations requiring more than one keystroke, such as Alt+F, do 
  3691. not appear in the key combination box as Alt+F.  Alt appears and F overwrites 
  3692. the Alt. 
  3693.  
  3694.  
  3695. ΓòÉΓòÉΓòÉ 12.3.2. Alt+C ΓòÉΓòÉΓòÉ
  3696.  
  3697. Using the keystroke combination Alt+C is not recommended. Accelerator keys are 
  3698. active for the system menu of the Accelerator Table Manager window. Selecting 
  3699. Alt+C as an accelerator keystroke combination causes the Accelerator Table 
  3700. Manager to close. 
  3701.  
  3702.  
  3703. ΓòÉΓòÉΓòÉ 12.3.3. Case sensitivity ΓòÉΓòÉΓòÉ
  3704.  
  3705. The accelerator keys are case sensitive.  Alt+F is not the same as Alt+f. 
  3706.  
  3707.  
  3708. ΓòÉΓòÉΓòÉ 12.3.4. Displaying the accelerator key ΓòÉΓòÉΓòÉ
  3709.  
  3710. You can edit the menu to display the accelerator key combination, opposite of 
  3711. the menu text. 
  3712.  
  3713.  
  3714. ΓòÉΓòÉΓòÉ 12.3.5. Ensuring the correct ID ΓòÉΓòÉΓòÉ
  3715.  
  3716. If you have forgotten the ID, open the menu icon. Select the item from the list 
  3717. box. The ID appears in the #define field in the #define values group box. 
  3718.  
  3719.  
  3720. ΓòÉΓòÉΓòÉ 13. Creating Online Help ΓòÉΓòÉΓòÉ
  3721.  
  3722. Presentation Manager applications can display online help using the Information 
  3723. Presentation Facility (IPF). IPF follows CUA guidelines so that the help 
  3724. interface has a consistent format. 
  3725.  
  3726. Tocreatehelp ,youmustwritethetextusingtheIPFmarkuplanguage 
  3727. .SeeIPFGuideandReference .
  3728.  
  3729. With Visual PL/I, you can write the help text for a particular window, menu or 
  3730. control. Visual PL/I automatically provides the appropriate online help when 
  3731. the application code is generated, compiled, and run. Visual PL/I assigns a 
  3732. resource identification number to each help panel and writes the code to 
  3733. present it when and where it is required. The user would press PF1 to display 
  3734. the help panels you created. 
  3735.  
  3736. This chapter explains how to add, edit, and delete online help for windows, 
  3737. menus, pull-downs, and controls. 
  3738.  
  3739. To generate code for the help facility, you must link the help panels to your 
  3740. application. See Adding Links for Help. 
  3741.  
  3742.  
  3743. ΓòÉΓòÉΓòÉ 13.1. Adding Online Help ΓòÉΓòÉΓòÉ
  3744.  
  3745. To add online help to a window, menu, pull-down or control within Visual PL/I: 
  3746.  
  3747.  1. Position the mouse pointer on the Help icon in the Objects toolbox. 
  3748.  
  3749.  2. Activate the window where you want to add the help panel. 
  3750.  
  3751.  3. Hold down mouse button 2 and drag the icon into the window where the help 
  3752.     panel is to be added. 
  3753.  
  3754.  4. Release mouse button 2 to display the Help Information pop-up window. 
  3755.  
  3756.  
  3757.         Help Information Pop-Up Window
  3758.  
  3759.  5. Use the Identifiers list box to select the window, menu item, or control 
  3760.     associated with the help. 
  3761.  
  3762.  6. Type the title for the help window in the Help title entry field. 
  3763.  
  3764.  7. Type the help text in the Help text MLE (multi-line entry) field. 
  3765.  
  3766.     ThefinalappearanceandlayoutofthetextiscontrolledbyIPFinOS / 2 
  3767.     .Foranycomplextextstructure ,typeyourtextusingIPFtags .Otherwise 
  3768.     ,thetextappearsasoneparagraph 
  3769.     .SeeInformationPresentationFacilityGuideandReference .
  3770.  
  3771.  8. Select OK. 
  3772.  
  3773.     The help text is activated when you press PF1. 
  3774.  
  3775.  
  3776. ΓòÉΓòÉΓòÉ 13.2. Editing Online Help for a Window or Control ΓòÉΓòÉΓòÉ
  3777.  
  3778. To edit existing online help for a window or control created using Visual PL/I: 
  3779.  
  3780.  1. Activate the window where you want to edit the help panel. 
  3781.  
  3782.  2. Select the Help icon from the Objects toolbox. 
  3783.  
  3784.  3. Hold down mouse button 2 and drag the icon into the activated window. 
  3785.  
  3786.  4. Release mouse button 2 to display the Help Information window. 
  3787.  
  3788.  5. Use the Identifiers list box to select the window, menu item, or control 
  3789.     associated with the help. 
  3790.  
  3791.  6. Change the help title text or the help text as required. 
  3792.  
  3793.  7. Select OK. 
  3794.  
  3795.  
  3796. ΓòÉΓòÉΓòÉ 13.3. Deleting Online Help from a Window or Control ΓòÉΓòÉΓòÉ
  3797.  
  3798. To delete online help that has been added to a window or control: 
  3799.  
  3800.  1. Activate the window where you want to delete the help panel. 
  3801.  
  3802.  2. Select the Help icon from the Objects toolbox. 
  3803.  
  3804.  3. Hold down mouse button 2 and drag the icon into the activated window. 
  3805.  
  3806.  4. Release mouse button 2 to display the Help Information window. 
  3807.  
  3808.  5. Use the Identifiers list box to select the window, menu item, or control 
  3809.     associated with the help. 
  3810.  
  3811.  6. To delete the help entry displayed, select Delete. 
  3812.  
  3813.  
  3814. ΓòÉΓòÉΓòÉ 13.4. Activating Help from a Push Button ΓòÉΓòÉΓòÉ
  3815.  
  3816. To activate Help from a push button instead of F1: 
  3817.  
  3818.  1. Click mouse button 2 on top of the push button. 
  3819.  
  3820.  2. Select Styles... from the context menu. 
  3821.  
  3822.  3. Select BS_HELP from the ITEM STYLES list box. 
  3823.  
  3824.  4. Select OK. 
  3825.  
  3826.  
  3827. ΓòÉΓòÉΓòÉ 13.5. Adding Links for Help ΓòÉΓòÉΓòÉ
  3828.  
  3829. To generate the actual code required to present help for the working 
  3830. application, write the help panels, link them to your application, and then 
  3831. compile and write them. 
  3832.  
  3833.  
  3834. ΓòÉΓòÉΓòÉ 13.5.1. Compiling Help for Your Application ΓòÉΓòÉΓòÉ
  3835.  
  3836. Beforeattemptingtocompileanapplicationcontaininghelppanels 
  3837. ,ensurethatyourenvironmentsettingincludestheIPFCdirectoryoftheOS / 2Developer ' 
  3838. sToolkit .
  3839.  
  3840. For example: 
  3841.  
  3842. SET IPFC = C:\TOOLKT21\IPFC; 
  3843.  
  3844. To check your help panels before compiling the entire application: 
  3845.  
  3846.  1. Move the mouse pointer into any open area of the project window, and click 
  3847.     mouse button 2 to display the project context menu. 
  3848.  
  3849.  2. Select the Open arrow. 
  3850.  
  3851.  3. Select Settings from the context menu. The Settings notebook appears. 
  3852.  
  3853.  4. Select the Output Options tab in the notebook. 
  3854.  
  3855.  5. On the notebook page, select only the IPF file (.IPF) as the only output 
  3856.     file. 
  3857.  
  3858.  6. Move the mouse pointer to the system icon in the upper left of the 
  3859.     notebook, display the system menu, and select Close to close the notebook. 
  3860.  
  3861.  7. Return to the project window, and display the context menu for the project 
  3862.     again. 
  3863.  
  3864.  8. Select Build from the menu. Your IPF help panels are written and compiled. 
  3865.  
  3866.  9. IPF compile errors are stored in the error file (.err). To view these 
  3867.     errors, display the project context menu and select Source. 
  3868.  
  3869. 10. Select View .err from the cascaded menu. 
  3870.  
  3871.  
  3872. ΓòÉΓòÉΓòÉ 13.5.2. Creating Hypertext Links Within Help Panels ΓòÉΓòÉΓòÉ
  3873.  
  3874. To provide hypertext links, leave the Identifiers field blank when you write 
  3875. the help panel. Next, write the code. Then view the IPF file to get the 
  3876. resource numbers (identifiers) that have been assigned. Insert them in the help 
  3877. panels and write the code again. 
  3878.  
  3879.  
  3880. ΓòÉΓòÉΓòÉ 14. Creating a Working Prototype ΓòÉΓòÉΓòÉ
  3881.  
  3882. After you have created all of the windows, menus, and controls for your 
  3883. application prototype, you must link them with the action that is to be taken. 
  3884. The process of linking windows, menus, and controls enables Visual PL/I to 
  3885. provide the code blocks that actually create a working prototype. For example, 
  3886. if a user selects a control, an event occurs and a message is sent to Visual 
  3887. PL/I. The receipt of this message results in a specific action being taken. You 
  3888. must provide the links between the event and the resulting action. 
  3889.  
  3890. This chapter takes you through each of the steps required to create and change 
  3891. these links. 
  3892.  
  3893.  
  3894. ΓòÉΓòÉΓòÉ 14.1. Adding a Link ΓòÉΓòÉΓòÉ
  3895.  
  3896. To add a link to a menu, window or control: 
  3897.  
  3898.  1. Select the Link icon from the Objects toolbox. 
  3899.  
  3900.  2. Drag and drop the icon onto the related window, menu or control. The Links 
  3901.     for... pop-up window appears. 
  3902.  
  3903.  
  3904.         Links for... Pop-Up Window
  3905.  
  3906.  3. The Event list box contains a list of messages that can be received by the 
  3907.     control or window. Select the message in the list that represents the event 
  3908.     to which the action is to be linked. 
  3909.  
  3910.     Double-click mouse button 1 on any item in the Event list box to see an 
  3911.     explanation of the selected message. 
  3912.  
  3913.  4. Select the module in which the code block resides from the Library list 
  3914.     box. 
  3915.  
  3916.     If you are creating a prototype, you usually select Basic PM Functions from 
  3917.     the Library list box. 
  3918.  
  3919.  5. Select the code block function from the Code blocks available box. 
  3920.  
  3921.     Double-click mouse button 1 on any item in the Code blocks available list 
  3922.     box for an explanation of the code block, or see Visual PL/I Code Blocks. 
  3923.  
  3924.  6. Select Add in the Code blocks group box. 
  3925.  
  3926.     You may be asked for more information depending on the Visual PL/I 
  3927.     variables contained in the code block. 
  3928.  
  3929.     You can continue to select and add code blocks. The order in which you 
  3930.     select the code blocks determines the order in which the resulting actions 
  3931.     are performed. 
  3932.  
  3933.  7. When you have finished adding all the links, select OK. 
  3934.  
  3935.  
  3936. ΓòÉΓòÉΓòÉ 14.2. Changing an Existing Link ΓòÉΓòÉΓòÉ
  3937.  
  3938. If, after testing your application, you find that a link is not set up 
  3939. correctly, you can change it. The same window you use to add a link is used to 
  3940. change the link. Over type the previous instructions and change them as 
  3941. required. 
  3942.  
  3943. To change a link to an action bar, window, or control: 
  3944.  
  3945.  1. Select the Link icon from the Objects toolbox. 
  3946.  
  3947.  2. Drag and drop the icon onto the window or the control in the window that 
  3948.     requires the change. 
  3949.  
  3950.  3. The Links for...  pop-up window appears. 
  3951.  
  3952.  4. Select the code block from the Event links list box. 
  3953.  
  3954.  5. Select Change in the Code blocks group box. 
  3955.  
  3956. If  youwanttochangethecodeblocktype ,butnotthedetails 
  3957. ,selectthecodeblockandthenselectDelete .Additsreplacement .
  3958.  
  3959. For more information, see Working with Links and Code Blocks. 
  3960.  
  3961.  
  3962. ΓòÉΓòÉΓòÉ 15. Creating a Working Application ΓòÉΓòÉΓòÉ
  3963.  
  3964. This part provides guidelines for programmers using Visual PL/I to produce 
  3965. working applications. It explains in detail how to create links and use Visual 
  3966. PL/I code blocks in your applications. 
  3967.  
  3968. To design the various items that determine the appearance of an interface, see 
  3969. Designing Your User Interface. 
  3970.  
  3971.  
  3972. ΓòÉΓòÉΓòÉ 16. Working with Links and Code Blocks ΓòÉΓòÉΓòÉ
  3973.  
  3974. This chapter explains how to create links between the windows, menus, and 
  3975. controls that comprise your application and create the code blocks necessary to 
  3976. have a working application. 
  3977.  
  3978. See Creating a Working Prototype on how to add links in order to create a 
  3979. working prototype. That chapter is intended for those who want to link windows, 
  3980. menus, and controls of their application design. 
  3981.  
  3982.  
  3983. ΓòÉΓòÉΓòÉ 16.1. Code Blocks-An Overview ΓòÉΓòÉΓòÉ
  3984.  
  3985. Code blocks are pre-written lines of code that, when implemented with Visual 
  3986. PL/I, perform certain tasks. A code block can consist of either a simple 
  3987. function call or a set of lines of PL/I source code. When you use Visual PL/I 
  3988. to generate code, the appropriate code blocks are added to your program. See 
  3989. Generating Code for details. 
  3990.  
  3991. Visual PL/I allows you to select the tasks to be performed by your application 
  3992. and associate the appropriate code with the interface components. Visual PL/I 
  3993. provides the code for a wide range of tasks. You can also use your own code and 
  3994. import it into any application you create with Visual PL/I. 
  3995.  
  3996. Code blocks are stored in external files and are loaded either when Visual PL/I 
  3997. is initialized or while you are running Visual PL/I. 
  3998.  
  3999.  
  4000. ΓòÉΓòÉΓòÉ 16.2. Using Code Blocks ΓòÉΓòÉΓòÉ
  4001.  
  4002. Visual PL/I provides code blocks that are stored in external files called 
  4003. program library (.PL) files. The Visual PL/I program library files are loaded 
  4004. when Visual PL/I is initialized. You can load .PL files while you are running 
  4005. Visual PL/I to use code blocks you have created. Each code block is either a 
  4006. complete function or some lines of PL/I code placed in other functions. 
  4007.  
  4008. To achieve flexibility, you can insert a set of Visual PL/I variables into the 
  4009. code blocks (for example, WINDOW TITLE). You can resolve these variables 
  4010. implicitly through Visual PL/I, or you can type the values when you add the 
  4011. code block. 
  4012.  
  4013. You can insert links in the following locations: 
  4014.  
  4015. o WM_ messages for any window or dialog procedure. 
  4016. o WM_CONTROL (LN_, BN_, EN_, SPIN_-, and so on) for controls 
  4017. o WM_COMMAND for menu items and push buttons. 
  4018. o Code produced for main link and associated initialization code. 
  4019.  
  4020.  
  4021. ΓòÉΓòÉΓòÉ 16.3. Adding Links Between Windows, Menus, and Controls ΓòÉΓòÉΓòÉ
  4022.  
  4023. To add a link to a menu, window, or control: 
  4024.  
  4025.  1. Select the Links icon from the Objects toolbox. 
  4026.  
  4027.     Or, you can click on mouse button 2 on the control you want to link. A 
  4028.     context menu appears.  Select Links. 
  4029.  
  4030.  2. Drag and drop the icon onto the window or the control to which you want to 
  4031.     add the link. 
  4032.  
  4033.  3. Click mouse button 2 to display the relevant context menu. 
  4034.  
  4035.  4. Select the Links option. The Links for...  pop-up window appears. 
  4036.  
  4037.  
  4038.         Links for... Pop-Up Window
  4039.  
  4040.  5. Select the message from the Event list box that represents the event to 
  4041.     which the action is to be linked. 
  4042.  
  4043.  6. Select the module in which the code block resides from the Library box. See 
  4044.     Visual PL/I Code Blocks for a complete list of code blocks. 
  4045.  
  4046.  7. Select the code block function from the Code blocks available box. 
  4047.  
  4048.  8. Select Add to add the link. Visual PL/I may prompt you for more 
  4049.     information, depending on the variables that are contained in the code 
  4050.     block. 
  4051.  
  4052.  9. When you have finished adding all the links, select OK. 
  4053.  
  4054.  
  4055. ΓòÉΓòÉΓòÉ 16.4. Deleting a Link ΓòÉΓòÉΓòÉ
  4056.  
  4057. To delete a link that has been added to a window or control: 
  4058.  
  4059.  1. Move the mouse pointer to the Links icon in the Objects tool box. 
  4060.  
  4061.  2. Hold down mouse button 2 and drag the icon into the window or control in 
  4062.     the window from which you want to delete the Link. Release mouse button 2. 
  4063.     The Links pop-up window appears. 
  4064.  
  4065.  3. Select the message from the Event list. The Event links list box displays 
  4066.     any Links attached within the list in the lower left of the Links pop-up 
  4067.     window. 
  4068.  
  4069.  4. Select an entry from the list. 
  4070.  
  4071.  5. Select Delete in the Code blocks group box. This action removes the 
  4072.     selected link from the list. 
  4073.  
  4074.  6. Select OK. 
  4075.  
  4076.  
  4077. ΓòÉΓòÉΓòÉ 16.5. Adding Links for Help ΓòÉΓòÉΓòÉ
  4078.  
  4079. To generate code for the help facility, you must link the help panels to your 
  4080. application. To link the help: 
  4081.  
  4082.  1. Move the mouse pointer to the Links icon in the Objects tool box. 
  4083.  
  4084.  2. Holding down mouse button 2, drag and drop the icon into the client area of 
  4085.     the project window. Release the mouse button. The Links pop-up window 
  4086.     appears. 
  4087.  
  4088.  3. Select SET_WINDOW_POS from the Event list box. 
  4089.  
  4090.  4. Select Help Manager Function from the Library list box. 
  4091.  
  4092.  5. Select Initialize IPF/2 from the Code blocks available list box. 
  4093.  
  4094.  6. Select Add. 
  4095.  
  4096.  7. When Visual PL/I displays a list of the windows in this project, select the 
  4097.     primary window. 
  4098.  
  4099.  8. Select OK. 
  4100.  
  4101. See Compiling Help for Your Application on how to compile help for your 
  4102. application. See Creating Hypertext Links Within Help Panels on how to add 
  4103. hypertext links to your help panels. 
  4104.  
  4105.  
  4106. ΓòÉΓòÉΓòÉ 16.6. Adding Main Links ΓòÉΓòÉΓòÉ
  4107.  
  4108. Main links are links inserted into the code in locations that are not part of a 
  4109. window or dialog procedure. Each location has a name by which you can 
  4110. reference. The code that is inserted by default in each place is shown in Main 
  4111. Links Code. 
  4112.  
  4113.  
  4114. Main Links Code
  4115.  
  4116.  HASH_INCLUDES
  4117.    %INCLUDE OS2;
  4118.    %INCLUDE tutorial;
  4119.  
  4120.  PROTOTYPES
  4121.   dcl WINDLG entry(HWND,fixed bin(15), ptr, ptr) EXPENTRY returns(MRESULT);
  4122.  
  4123.  GLOBAL_HANDLES
  4124.   dcl hab0 HAB;
  4125.  
  4126.  GLOBAL_VARIABLES
  4127.   dcl WINDOW HANDLE HWND;
  4128.   dcl WINDOW CLHANDLE HWND;
  4129.  
  4130.  MAIN
  4131.   main: procedure options(main);
  4132.  
  4133.  LOCAL_VARIABLES
  4134.    dcl var1 char(30) varz;
  4135.    dcl var2 fixed bin(15) init('45'xn);
  4136.    dcl qmsg0 QMSG;
  4137.    dcl hmq0 HMQ;
  4138.  
  4139.  INITIALIZE
  4140.    hmq = WinInitialize(null() );
  4141.  
  4142.  CREATE_MSG_QUEUE
  4143.    hmq = WinCreateMsgQueue(hab,0);
  4144.  
  4145.  CREATE_STD_WINDOW
  4146.    WINDOW HANDLE = WinCreateStdWindow(WINDOW PARENT,
  4147.                                      WS_VISIBLE,
  4148.                                      addr(WINDOW FCFVAR),
  4149.                                      WINDOW CLASS,
  4150.                                      WINDOW TITLE,
  4151.                                      ptrvalue(0),
  4152.                                      null(),
  4153.                                      WINDOW ID,
  4154.                                      addr(WINDOW CLHANDLE) );
  4155.   MESSAGE_LOOP
  4156.     do while ( WinGetMsg(hab0,
  4157.                       addr(qmsg),
  4158.                       null(),
  4159.                       0,
  4160.                       0) ╨ÿ=0);
  4161.        call WinDispatchMsg( hab,
  4162.                      addr(qmsg) );
  4163.     end;
  4164.  
  4165.   DESTROY_WINDOWS
  4166.     call WinDestroyWindow(WINDOW HANDLE);
  4167.  
  4168.   DESTROY_MSG_QUEUE
  4169.     call WinDestroyMsgQueue( hmq );
  4170.  
  4171.   TERMINATE1
  4172.     call WinTerminate( hab );
  4173.  
  4174.   TERMINATE2
  4175.    END; /* end main procedure */
  4176.  
  4177. If you want to change the code produced for any of the above, create code 
  4178. blocks that do what you require and insert them in the appropriate places. 
  4179.  
  4180. To add the main links to code that has been created by Visual PL/I: 
  4181.  
  4182.  1. Select the Links icon from the Objects toolbox. 
  4183.  
  4184.  2. Drag and drop the icon in the related project window. The Links for 
  4185.     Project... pop-up window appears. 
  4186.  
  4187.  3. Select the location from the Event list box. 
  4188.  
  4189.  4. Select PL/I Code Library from the Library list box. 
  4190.  
  4191.  5. Select Any code from the Code Block List and select Add code block. The Any 
  4192.     Code dialog box appears. 
  4193.  
  4194.  6. Type the code to be associated with the selected event. 
  4195.  
  4196.  7. Select OK. 
  4197.  
  4198.  
  4199. ΓòÉΓòÉΓòÉ 16.7. Viewing Help for Events ΓòÉΓòÉΓòÉ
  4200.  
  4201. To obtain a brief explanation of an event or an option that is available from 
  4202. within the Event list box: 
  4203.  
  4204.  1. Select the Links icon from the Objects toolbox. 
  4205.  
  4206.  2. Drag the icon to the window or the control within the window to which you 
  4207.     want to add the link. 
  4208.  
  4209.  3. Release the mouse button 2 to display the Links for... pop-up window. 
  4210.  
  4211.  4. Double-click on an entry within the Event list box. An explanation of the 
  4212.     selected event appears. 
  4213.  
  4214. This  optionisnotavailableintheLinksforaMenuBarwindow .
  4215.  
  4216.  
  4217. ΓòÉΓòÉΓòÉ 16.8. Creating Code Blocks ΓòÉΓòÉΓòÉ
  4218.  
  4219. To create code blocks for your application, do any of the following: 
  4220.  
  4221. o Use an option called Any Code to add a few lines of code or to add code that 
  4222.   is used only once. You cannot reuse it. 
  4223.  
  4224. o Use an option called My Code to add your own code to the code blocks created 
  4225.   by Visual PL/I. You can reuse or change at any time when you add code blocks 
  4226.   with this method. 
  4227.  
  4228. o Read code blocks stored in a separate file, the Read .pl file. The next time 
  4229.   you open the Links window, these code blocks are available for use. See 
  4230.   Creating Your Own Code Blocks on how to access these code blocks and read 
  4231.   them directly into Visual PL/I. 
  4232.  
  4233. The following sections describe how to create a code block using either of the 
  4234. first two methods. 
  4235.  
  4236.  
  4237. ΓòÉΓòÉΓòÉ 16.8.1. Adding a Few Lines of Code ΓòÉΓòÉΓòÉ
  4238.  
  4239. To add several lines of code for one use only: 
  4240.  
  4241.  1. Select the Links icon from the Objects toolbox. 
  4242.  
  4243.  2. Drag and drop the icon onto the window or control in the window to which 
  4244.     you want to add the link. The Links for... pop-up window appears. 
  4245.  
  4246.  3. Select All Functions or PL/I Code from the Library list box. 
  4247.  
  4248.  4. Select Any Code from the Code blocks available list box. 
  4249.  
  4250.  5. Select the Add push button. A pop-up window appears. 
  4251.  
  4252.  
  4253.         Enter the code...Window
  4254.  
  4255.  6. Type the PL/I code for the code block in the entry field. 
  4256.  
  4257.  7. Select OK to add the code block to the code block list. 
  4258.  
  4259.     YoucannotreusethecodeblockidentifiedasAnycode 
  4260.     .Manycodeblocksmayappearinthewindow ,identifiedbythesameterm-Anycode 
  4261.     .Youcannotreusethem .
  4262.  
  4263.  
  4264. ΓòÉΓòÉΓòÉ 16.8.2. Adding Your Own Code Block ΓòÉΓòÉΓòÉ
  4265.  
  4266. To add your own code block to an application: 
  4267.  
  4268.  1. Select the Links icon from the Objects toolbox. 
  4269.  
  4270.  2. Drag and drop the icon onto the window or control in the window to which 
  4271.     you want to add the link. The Links for... pop-up window appears. 
  4272.  
  4273.  3. Select My Code Block from the Library list box. 
  4274.  
  4275.  4. Select Create to display the Create Code Block window. 
  4276.  
  4277.  
  4278.         Create a New Code Block Window
  4279.  
  4280.  5. Type a unique reference name in the Name field. 
  4281.  
  4282.  6. Type the PL/I code for the code block in the Contents field. 
  4283.  
  4284.  7. Select OK to add the code block to the code block list. The next time you 
  4285.     display the Links window, your code block is available for use. 
  4286.  
  4287.  
  4288. ΓòÉΓòÉΓòÉ 16.9. Viewing Code Blocks ΓòÉΓòÉΓòÉ
  4289.  
  4290. You can browse through a code block either before or after it is added to your 
  4291. project. 
  4292.  
  4293. To view a code block before it is added to a project: 
  4294.  
  4295.  1. Select the Links icon from the Objects toolbox. 
  4296.  
  4297.  2. Drag and drop the icon onto the window or control in the window to which 
  4298.     you want to add the link. The Links for... pop-up window appears. 
  4299.  
  4300.  3. Double-click on an entry within the Code block list list box. The selected 
  4301.     code block appears. 
  4302.  
  4303. To view a code block after it has been added to a project: 
  4304.  
  4305.  1. Select the link icon from the Objects toolbox. 
  4306.  
  4307.  2. Drag and drop the icon onto the window or control to which the code block 
  4308.     is linked. The Links for... pop-up window appears. 
  4309.  
  4310.  3. Double-click on an entry within the Event list box. The associated code 
  4311.     block appears. 
  4312.  
  4313.  
  4314. ΓòÉΓòÉΓòÉ 16.10. Using Visual PL/I Code Blocks to Integrate DLL and EXE Projects ΓòÉΓòÉΓòÉ
  4315.  
  4316. To call a window or a dialog stored in a DLL project, the developer of the 
  4317. related EXE project must access the .PMG file of the DLL project. 
  4318.  
  4319. Visual PL/I code blocks provided in the DLL functions module (displayed in the 
  4320. Library list box) enable the EXE project developer to access the data and 
  4321. windows/dialogs in the DLL project. You can use these code blocks the same way 
  4322. as the other code blocks in Visual PL/I. 
  4323.  
  4324. As well as providing code blocks for loading dialogs and creating windows, the 
  4325. DLL functions module contains code blocks that enable you to export and import 
  4326. data from a DLL. A variable is declared for export in the DLL project. To 
  4327. declare it, use the DLL export variable code block that is displayed in the 
  4328. Code blocks available list box. For the EXE project to have access to this 
  4329. variable, the EXE project must call the Import Variable from DLL code block. 
  4330.  
  4331.  
  4332. Accessing the DLL Functions Module
  4333.  
  4334.  
  4335. ΓòÉΓòÉΓòÉ 17. Generating Code ΓòÉΓòÉΓòÉ
  4336.  
  4337. Visual PL/I can generate several types of output files in addition to the .PMG 
  4338. file created when you save an application. You can compile and run a program 
  4339. using these files. 
  4340.  
  4341. This chapter explains how to: 
  4342.  
  4343. o Select the files to be created 
  4344. o Import files for use with your application 
  4345. o Test your application before compiling it 
  4346. o Write and compile the related code 
  4347. o View the code 
  4348. o Execute the compiled source code 
  4349.  
  4350.  
  4351. ΓòÉΓòÉΓòÉ 17.1. Selecting Output Files ΓòÉΓòÉΓòÉ
  4352.  
  4353. Visual PL/I can automatically generate the following output files: 
  4354.  
  4355. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4356. Γöé OUTPUT FILE   Γöé DESCRIPTION                         Γöé
  4357. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4358. Γöé .CPY       Γöé Header file that contains definitions of identifiers used  Γöé
  4359. Γöé         Γöé in the program.                       Γöé
  4360. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4361. Γöé .DEF       Γöé Linker definition file that contains details for the type  Γöé
  4362. Γöé         Γöé of project.                         Γöé
  4363. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4364. Γöé .DLG       Γöé Dialog file that contains dialog box specifications.    Γöé
  4365. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4366. Γöé .H        Γöé Header file that contains definitions of identifiers used  Γöé
  4367. Γöé         Γöé by the resource compiler.                  Γöé
  4368. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4369. Γöé .IPF       Γöé IPF file that contains online help text for the program.  Γöé
  4370. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4371. Γöé .MAK       Γöé Make file that contains instructions for compiling the   Γöé
  4372. Γöé         Γöé program.                          Γöé
  4373. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4374. Γöé .PLI       Γöé PL/I code file that contains source code for an applica-  Γöé
  4375. Γöé         Γöé tion.                            Γöé
  4376. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4377. Γöé .RC       Γöé Resource file that contains specifications for other    Γöé
  4378. Γöé         Γöé resources (for example, windows, menus and icons).     Γöé
  4379. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4380. Table 7. Generated Output Files
  4381.  
  4382. To identify which of these files you want Visual PL/I to create: 
  4383.  
  4384.  1. Double-click mouse button 1 on the project icon. 
  4385.  
  4386.  2. Click mouse button 2 in the client area of the project window to display 
  4387.     the context menu. 
  4388.  
  4389.  3. Select the Open arrow to display its related cascaded menu. 
  4390.  
  4391.  4. Select Settings from the menu to display the project Settings notebook. 
  4392.  
  4393.  5. Select the Output options tab to display the Output Options page of the 
  4394.     notebook. 
  4395.  
  4396.  
  4397.         Output Options Notebook Page
  4398.  
  4399.  6. Select files you want to generate for the project. 
  4400.  
  4401.     You can also select where you want to write window definitions. Window 
  4402.     definitions are written out to the .DLG file instead of the .PLI file. 
  4403.  
  4404.     Ifyourapplicationistobetranslated ,selectWrite. DLG 
  4405.     .ThiseasestheprovisionofNLSinyourprojectbecausetranslatorsworkonresourcefilesonly .
  4406.  
  4407.  
  4408. ΓòÉΓòÉΓòÉ 17.2. Importing a ..res or an ..h File ΓòÉΓòÉΓòÉ
  4409.  
  4410. To import a .res file or an .h file that already exists: 
  4411.  
  4412.  1. Open the related project. 
  4413.  
  4414.  2. Display the context menu for the project. 
  4415.  
  4416.  3. Select Import from the menu. A cascaded menu appears. 
  4417.  
  4418.  
  4419.         Viewing Source Files
  4420.  
  4421.  4. Select the type of file you want to import. 
  4422.  
  4423.     You can search for the file within different drives or directories and 
  4424.     specify the location of the file. 
  4425.  
  4426.  5. Select OK. 
  4427.  
  4428.  
  4429. ΓòÉΓòÉΓòÉ 17.3. Testing a Project ΓòÉΓòÉΓòÉ
  4430.  
  4431. To test a project without leaving Visual PL/I: 
  4432.  
  4433.  1. Select the project window. 
  4434.  
  4435.  2. Display the context menu for the project. 
  4436.  
  4437.  3. Select Test mode from the cascaded menu. 
  4438.  
  4439.     Visual PL/I is now in test mode. The project appears as it will when it has 
  4440.     been compiled. The selection boundaries are not displayed and the controls 
  4441.     react to the mouse. 
  4442.  
  4443.  4. Select Test mode again when you are finished to revert to normal 
  4444.     operations. 
  4445.  
  4446.  
  4447. ΓòÉΓòÉΓòÉ 17.4. Writing and Compiling Code for a Project ΓòÉΓòÉΓòÉ
  4448.  
  4449. If your project uses the Help Manager facility in Visual PL/I and you have IPF 
  4450. help files to compile, ensure that you have created the necessary links. 
  4451. Otherwise, the code cannot successfully compile. 
  4452.  
  4453. To write and compile the source code for a project: 
  4454.  
  4455.  1. Select the project. 
  4456.  
  4457.  2. Display the context menu for the project by clicking mouse button 2. 
  4458.  
  4459.  3. Select Build from the context menu. 
  4460.  
  4461.     Visual PL/I now generates and compiles the output files for each of the 
  4462.     types you selected. 
  4463.  
  4464.     YoucanalsoselecteitherWriteorCompileseparatelyfromtheBuildcascadedmenu .
  4465.  
  4466.  
  4467. ΓòÉΓòÉΓòÉ 17.5. Viewing Code ΓòÉΓòÉΓòÉ
  4468.  
  4469. After generating your code, you can browse through it and examine any of the 
  4470. output files. 
  4471.  
  4472. To view code: 
  4473.  
  4474.  1. Select the project window. 
  4475.  
  4476.  2. Display the project context menu. 
  4477.  
  4478.  3. Select Source from the menu. Visual PL/I lists all files available. 
  4479.  
  4480.  
  4481.         Viewing Source Files
  4482.  
  4483.  4. Select the relevant file from the list. Visual PL/I displays the code. For 
  4484.     example, if you select View PL/I, the source code file for your project 
  4485.     appears. 
  4486.  
  4487.  5. To cancel the display, press the Escape key. 
  4488.  
  4489.  
  4490. ΓòÉΓòÉΓòÉ 17.6. Executing the Compiled Source Code ΓòÉΓòÉΓòÉ
  4491.  
  4492. It is possible to execute the source code in Visual PL/I. 
  4493.  
  4494. Toexecutethecodeforaproject 
  4495. ,theprojectmustalreadyhavebeencompiledandlinkedsuccessfully .
  4496.  
  4497. To run your project: 
  4498.  
  4499.  1. Select the project. 
  4500.  
  4501.  2. Display the context menu for the project. 
  4502.  
  4503.  3. Select Run code. 
  4504.  
  4505. Visual PL/I loads your project and displays it as an active primary window. You 
  4506. can now run your program from this window. 
  4507.  
  4508.  
  4509. ΓòÉΓòÉΓòÉ 18. Setting Up Your Application for Multitasking ΓòÉΓòÉΓòÉ
  4510.  
  4511. The term multitasking refers to a user's ability to perform several tasks at 
  4512. the same time. This chapter explains how to set up your application for 
  4513. multitasking, through the use of threads. The thread is the means by which OS/2 
  4514. controls multitasking. This chapter also explains how to create a thread. 
  4515.  
  4516. See Tutorial on Linking a Thread to an Action or Function on how to link a 
  4517. thread to an action or function. 
  4518.  
  4519.  
  4520. ΓòÉΓòÉΓòÉ 18.1. Overview of Multitasking ΓòÉΓòÉΓòÉ
  4521.  
  4522. Multitasking allows the system to complete a task independently of other 
  4523. activities, without locking up the entire system. To the user, the activity 
  4524. being performed in the background is not obvious. The user can continue to work 
  4525. on other tasks. 
  4526.  
  4527. When do you need multitasking? One of the most obvious uses is when your 
  4528. application contains elements that may tie up processing time and temporarily 
  4529. halt the application. For example, you may want to transfer files from the host 
  4530. or use an application that accesses a database. 
  4531.  
  4532. To create an application that allows a user to perform several actions 
  4533. simultaneously, you need to associate each action with a specific thread. 
  4534.  
  4535. A thread can have its own local variables and can share global variables with 
  4536. other threads. Each thread has the following characteristics: 
  4537.  
  4538. o It is associated with its own message queue, which it uses to communicate 
  4539.   with other threads 
  4540.  
  4541. o It is assigned its own stack, an area of storage allocated for the thread, 
  4542.   when it is called. The thread then uses this area to store the temporary 
  4543.   information it uses to perform its function. 
  4544.  
  4545.  
  4546. ΓòÉΓòÉΓòÉ 18.2. Creating a Thread ΓòÉΓòÉΓòÉ
  4547.  
  4548. In order to create a new thread, you must first define it. After you define the 
  4549. thread, you must then associate it, by means of links, to the object or objects 
  4550. used in performing an action. 
  4551.  
  4552. To define a thread: 
  4553.  
  4554.  1. Open the project to which the thread is to belong. 
  4555.  
  4556.  2. Move the mouse pointer into the project window and click mouse button 2 to 
  4557.     display the context menu. 
  4558.  
  4559.  3. Select New from the menu. 
  4560.  
  4561.  4. Select Thread from the cascaded menu to display the Thread Details pop-up 
  4562.     window. 
  4563.  
  4564.  
  4565.         Thread Details Pop-Up Window
  4566.  
  4567.  5. Type a unique name in the Thread Name field. 
  4568.  
  4569.  6. Type a queue name in the Queue Name field. The queue name is a valid PL/I 
  4570.     variable name and is defined in the PL/I program for use by a thread. The 
  4571.     program communicates with the thread through this queue. Messages sent to 
  4572.     the queue are processed by the thread in the order in which they arrive. 
  4573.  
  4574.  7. Each message posted to a thread must be prefixed by a message ID. This 
  4575.     message identifier is specifically defined in a set of message identifiers. 
  4576.     Type the prefix of the message identifier for this thread in the Message 
  4577.     identifier field. For example, WM_ is used as a message identifier for a 
  4578.     number of predefined messages that can be used in the application. The 
  4579.     first two characters of a message identifier must be in uppercase. Visual 
  4580.     PL/I allows any message prefixed with WM_ (for example, WM_COMMAND) to be 
  4581.     sent to the thread. 
  4582.  
  4583.  8. Select OK. The Thread icon appears in the project window. 
  4584.  
  4585. For more information about using threads, see Tutorial on Linking a Thread to 
  4586. an Action or Function. 
  4587.  
  4588.  
  4589. ΓòÉΓòÉΓòÉ 19. Using SQL Support ΓòÉΓòÉΓòÉ
  4590.  
  4591. Visual PL/I helps you include SQL statements in your program. All the necessary 
  4592. precompiling and binding is handled by the PL/I compiler. To help you produce 
  4593. an SQL statement, the tables and columns available for query are displayed by 
  4594. the Enter SQL Statement code block. 
  4595.  
  4596. This chapter takes you through the following steps: 
  4597.  
  4598. o Selecting the database on which the query is to be performed 
  4599.  
  4600. o Using the SQL code blocks provided by Visual PL/I 
  4601.  
  4602. o Compiling and linking Visual PL/I SQL projects 
  4603.  
  4604.  
  4605. ΓòÉΓòÉΓòÉ 19.1. Selecting a Database ΓòÉΓòÉΓòÉ
  4606.  
  4607. The first step is to select the database on which the SQL query is to be 
  4608. performed. 
  4609.  
  4610. To select the database: 
  4611.  
  4612.  1. Click mouse button 2 in the client area of the Visual PL/I folder. 
  4613.  
  4614.  2. Select Open... from the menu. 
  4615.  
  4616.  3. Select Settings from the cascaded menu. The Settings notebook appears. 
  4617.  
  4618.  4. Select the Database tab in the notebook. A list of available databases 
  4619.     appears. 
  4620.  
  4621.  5. Select the database from the list. 
  4622.  
  4623.  
  4624.         Database Page of Settings Notebook
  4625.  
  4626.     Ifthedatabaseyouwanttoworkwithdoesnotappear 
  4627.     ,youmustcreateitoutsidetheboundariesofVisualPL / I .
  4628.  
  4629.  6. Move the mouse pointer to the upper left corner of the notebook and click 
  4630.     mouse button 1 to display the system menu. 
  4631.  
  4632.  7. Select Close to process your database selection and to close the notebook. 
  4633.  
  4634.  
  4635. ΓòÉΓòÉΓòÉ 19.2. Using the SQL Code Blocks Provided by Visual PL/I ΓòÉΓòÉΓòÉ
  4636.  
  4637. The following are some of the SQL code blocks that imbed SQL statements in the 
  4638. Visual PL/I-generated PL/I code: 
  4639.  
  4640. Start Database 
  4641.   It is recommended that you issue this code block in a separate thread. First, 
  4642.   create a thread, as described in Setting Up Your Application for 
  4643.   Multitasking. Use this code block in the thread. Attach the thread when the 
  4644.   program is started. 
  4645.  
  4646. Stop Database 
  4647.   Use this code block in the TERMINATE_A point of the main function. You can 
  4648.   add code blocks here by dropping the Links icon in the project window and 
  4649.   following the steps described in Working with Links and Code Blocks. 
  4650.  
  4651. Enter SQL Statement 
  4652.   Two list boxes enable you to enter an SQL statement. The first list box 
  4653.   contains a list of the tables in the database you selected. Select a table. 
  4654.   The second list box then displays a list of columns in that table. When 
  4655.   writing an SQL statement in the multi-line entry field below the list boxes, 
  4656.   you must specify which table and columns you are accessing. To do so, 
  4657.   double-click on any list box entry and the table or column name is 
  4658.   automatically added into the entry field at the current cursor position. 
  4659.  
  4660.   Use this code block to create either static or dynamic SQL statements. 
  4661.  
  4662.   For static SQL statements: 
  4663.  
  4664.    o Begin the statement with EXEC SQL. 
  4665.    o Build the statement with a combination of typing in SQL keywords (SELECT, 
  4666.      FROM, WHERE...) and selecting table and column names from the two list 
  4667.      boxes. 
  4668.    o End the statement with a semi-colon (;). 
  4669.  
  4670.   For dynamic SQL statements: 
  4671.  
  4672.    o Each SQL statement is built as a character string that is assigned to a 
  4673.      host variable. For example: 
  4674.  
  4675.           STATEMENT = 'SELECT NAME, JOB,
  4676.           SALARY FROM STAFF WHERE SALARY > ?';
  4677.  
  4678.    o EXEC SQL must not appear in the SQL statement. 
  4679.    o Build the SQL statement with a combination of typing in SQL keywords 
  4680.      (SELECT, FROM, WHERE...) and selecting table and column names from the two 
  4681.      list boxes. 
  4682.    o Enclose the SQL statement in single quotes. 
  4683.    o End the statement with a semi-colon (;). 
  4684.  
  4685. Begin Host Var Statement 
  4686.   If host variables are necessary for your SQL statements, you need to declare 
  4687.   them. 
  4688.  
  4689.   To declare your host variables: 
  4690.  
  4691.     1. Click on mouse button 2 in the Visual PL/I folder. 
  4692.  
  4693.     2. Select Links. 
  4694.  
  4695.     3. Select the global variables from the Event list box. 
  4696.  
  4697.     4. Select Begin Host Var Statement from the Code blocks available list box. 
  4698.  
  4699.     5. Type your host variable declarations in the editor session, which is 
  4700.        provided. 
  4701.  
  4702.     6. Select OK to add your host variable declarations to your program. 
  4703.  
  4704.  
  4705. ΓòÉΓòÉΓòÉ 19.3. Setting PL/I Compiler Options ΓòÉΓòÉΓòÉ
  4706.  
  4707. Use the PL/I *PROCESS PP(SQL Statement code block to set the compiler options 
  4708. from within your SQL program. 
  4709.  
  4710. To set the options: 
  4711.  
  4712.  1. Open the project that will use the SQL statements. 
  4713.  
  4714.  2. Click mouse button 2 in the client area of the project window. 
  4715.  
  4716.  3. Select Links... from the menu. 
  4717.  
  4718.  4. Select HASH_DEFINES from the Event list box. 
  4719.  
  4720.  5. Select SQL Functions from the Library list box. 
  4721.  
  4722.  6. Select PL/I *PROCESS PP(SQL Statement from the Code blocks available list 
  4723.     box. 
  4724.  
  4725.  7. Select Add. 
  4726.  
  4727.  8. Type the database name when you are prompted. 
  4728.  
  4729.  9. The PL/I *PROCESS PP(SQL Statement code block must precede the #defines 
  4730.     line in the Event Links list box. If the #defines line appears ahead of the 
  4731.     PL/I *PROCESS PP(SQL Statement code block, do the following: 
  4732.  
  4733.     a. Select the #defines line in the Event Links list box. 
  4734.     b. Select Move. 
  4735.     c. The PL/I *PROCESS PP(SQL Statement appears ahead of the #defines line in 
  4736.        the Event Links list box. 
  4737.  
  4738.  
  4739.               Links for... Pop-Up Window
  4740.  
  4741. 10. Select OK to process your database selection and to close the Links for... 
  4742.     window. 
  4743.  
  4744.  
  4745. ΓòÉΓòÉΓòÉ 19.4. Other Necessary Settings ΓòÉΓòÉΓòÉ
  4746.  
  4747. Make the following update in the Settings notebook of the SQL project. Type 
  4748. this information on the Compile and Link Options page of the Settings notebook 
  4749. for the project, as described in Setting Compile and Link Options. 
  4750.  
  4751. o Add SQL_DYN to the Libraries entry field. 
  4752.  
  4753.   The SQL_DYN library contains the routines necessary to support SQL calls from 
  4754.   your program. 
  4755.  
  4756.  
  4757.     Compile and Link Page of Settings Notebook
  4758.  
  4759. Make the following change in your CONFIG.SYS file: 
  4760.  
  4761. o Include SQLLIB in the INCLUDE and LIB paths. 
  4762.  
  4763.   You must include the database manager directory, SQLLIB, in these paths so 
  4764.   that the SQL references are resolved. 
  4765.  
  4766.  
  4767. ΓòÉΓòÉΓòÉ 20. Tutorials ΓòÉΓòÉΓòÉ
  4768.  
  4769. This part offers a series of tutorials designed to familiarize you with Visual 
  4770. PL/I. Complete the first tutorial before you go on to the next. 
  4771.  
  4772.  
  4773. ΓòÉΓòÉΓòÉ 21. Tutorial on Designing an Application ΓòÉΓòÉΓòÉ
  4774.  
  4775. This tutorial shows you how to: 
  4776.  
  4777. o Create an entry field and delete its contents when a push button is selected. 
  4778.  
  4779. o Create a text entry field. 
  4780.  
  4781. o Create primary and dialog windows. 
  4782.  
  4783. o Create and use menu bars. 
  4784.  
  4785. o Create your own code blocks in an application. 
  4786.  
  4787. o Link the code blocks to events in windows and dialogs. 
  4788.  
  4789. Visual  PL / Iprovidesa. PMGfilenamedTutorial 
  4790. .Youcanreferencethiscompletedapplicationwhileyoucreateyourown .
  4791.  
  4792. This chapter will help you create a project named MYPROJ. 
  4793.  
  4794.  
  4795. ΓòÉΓòÉΓòÉ 21.1. Creating a Project ΓòÉΓòÉΓòÉ
  4796.  
  4797. The first step is to create a new Visual PL/I project for the application. A 
  4798. Visual PL/I project is used to define the Presentation Manager windows, menus, 
  4799. and controls that you use for a particular purpose. 
  4800.  
  4801. To create a new project: 
  4802.  
  4803.  1. Start Visual PL/I. 
  4804.  
  4805.  2. Position the mouse pointer in any empty area in the Visual PL/I folder and 
  4806.     click mouse button 2 to display the context menu. 
  4807.  
  4808.  
  4809.         Project Context Menu
  4810.  
  4811.  3. Select New... from the menu. The New Project pop-up window appears. 
  4812.  
  4813.  
  4814.         New Project Pop-Up Window
  4815.  
  4816.  4. Type the name of the new project in the entry field. In this tutorial, name 
  4817.     the project MYPROJ. 
  4818.  
  4819.  5. Select the New push button to create a project named MYPROJ. An icon 
  4820.     representing the project appears in the Visual PL/I folder. 
  4821.  
  4822.  
  4823. A Typical Folder Containing the MYPROJ Icon
  4824.  
  4825.  
  4826. ΓòÉΓòÉΓòÉ 21.2. Creating a New Window ΓòÉΓòÉΓòÉ
  4827.  
  4828.  1. Position the mouse pointer in the Project MYPROJ.PMG window and click mouse 
  4829.     button 2 to display the context menu. 
  4830.  
  4831.  2. Select New from the context menu. 
  4832.  
  4833.  3. Select Window from the New cascade. The New Window pop-up appears. 
  4834.  
  4835.  
  4836.         Example of New Window Pop-Up
  4837.  
  4838.  4. Type Firstwin in the Reference name entry field. 
  4839.  
  4840.  5. Type MYPROJ Program in the Title bar text entry field. 
  4841.  
  4842.  6. Select Title bar, System menu, Minimize button and Maximize button in the 
  4843.     Window styles group box. 
  4844.  
  4845.     The Primary window radio button in the Window Type group box is already 
  4846.     selected by default. 
  4847.  
  4848.  7. For the #define entry field, you can type your variable name. Otherwise, 
  4849.     Visual PL/I generates a name for you. 
  4850.  
  4851.  8. Select OK to save the window with the specified options. The window is now 
  4852.     represented by an icon in the Project MYPROJ.pmg window. 
  4853.  
  4854.  
  4855.         Example of New Window Icon
  4856.  
  4857.  
  4858. ΓòÉΓòÉΓòÉ 21.3. Creating a Menu ΓòÉΓòÉΓòÉ
  4859.  
  4860. To create a new menu in the Project MYPROJ.pmg window: 
  4861.  
  4862.  1. Move the mouse pointer into the client area of the MYPROJ project window 
  4863.     and click mouse button 2 to display the context menu. 
  4864.  
  4865.  2. Select New from the menu. 
  4866.  
  4867.  3. Select Menu from the Newcascade. This displays a window titled Menu in 
  4868.     MYPROJ.pmg. 
  4869.  
  4870.  4. Type FirstMN in the Reference field. 
  4871.  
  4872.  5. Do not select OK at this time. Instead, continue to the next step in this 
  4873.     tutorial. 
  4874.  
  4875.  
  4876. ΓòÉΓòÉΓòÉ 21.3.1. Creating a Pull-Down Menu for a Menu Item ΓòÉΓòÉΓòÉ
  4877.  
  4878.  1. Type File in the Menu Text field. 
  4879.  
  4880.  2. Type ID_FILE in the #define field. 
  4881.  
  4882.  3. Select Add. 
  4883.  
  4884.  
  4885.         New Menu Pop-Up
  4886.  
  4887.     The ID field is given a value automatically and a File menu item appears in 
  4888.     the list. 
  4889.  
  4890.  
  4891. ΓòÉΓòÉΓòÉ 21.3.2. Adding Items to the New Menu ΓòÉΓòÉΓòÉ
  4892.  
  4893. Next, you are going to create a pull-down menu for this menu item that contains 
  4894. two entries: 
  4895.  
  4896.  1. Select Level 2 on the Indentation Level slider. Place the mouse pointer in 
  4897.     the slider, hold down mouse button 1 and drag the slider to the right. 
  4898.     Release the mouse button at Level 2. 
  4899.  
  4900.  2. Type Open in the Menu Text entry field, replacing the previous contents. 
  4901.  
  4902.  3. Type ID_OPEN in the #define entry field, replacing the previous contents. 
  4903.  
  4904.  4. Select Add. 
  4905.  
  4906.     The Open pull-down item appears in the list box. 
  4907.  
  4908.  
  4909.         Open Option Added to Menu
  4910.  
  4911.  5. Type Exit in the Menu Text entry field, replacing the previous contents. 
  4912.  
  4913.  6. Type ID_EXIT in the #define entry field, replacing the previous contents. 
  4914.  
  4915.  7. Select Add. 
  4916.  
  4917.     The Exit pull-down item appears in the list. 
  4918.  
  4919.  
  4920.         Exit Option Added to Menu
  4921.  
  4922.  8. Select OK to save the menu. The menu you have defined is represented by an 
  4923.     icon in the Project MYPROJ.pmg window. 
  4924.  
  4925.  
  4926.         Menu Icon in Project Window
  4927.  
  4928.  
  4929. ΓòÉΓòÉΓòÉ 21.4. Adding a Menu to a Window ΓòÉΓòÉΓòÉ
  4930.  
  4931.  1. Double-click mouse button 1 on the Firstwin icon in the Project MYPROJ.pmg 
  4932.     window to open the window. The MYPROJ Program window and the Objects 
  4933.     toolbox are displayed. The Objects toolbox shows the controls that you can 
  4934.     add to a window. 
  4935.  
  4936.  2. Select the FirstMN menu icon in the Project MYPROJ.pmg window. 
  4937.  
  4938.  3. While holding down mouse button 2, drag the icon over to the MYPROJ Program 
  4939.     window and drop it in the client area. 
  4940.  
  4941.  
  4942. File Menu Added to MYPROJ Project Window
  4943.  
  4944. The File menu item is added to the window and appears below the title bar. 
  4945.  
  4946.  
  4947. ΓòÉΓòÉΓòÉ 21.5. Creating a Dialog Box ΓòÉΓòÉΓòÉ
  4948.  
  4949.  1. Move the mouse pointer into the client area of the project window. 
  4950.  
  4951.  2. Click mouse button 2 to display the context menu. 
  4952.  
  4953.  3. Select New from the context menu. 
  4954.  
  4955.  4. Select Window from the New cascade. 
  4956.  
  4957.     The New Window pop-up appears. 
  4958.  
  4959.  
  4960.         New Window Pop-Up
  4961.  
  4962.  5. Type Action in the Reference name entry field. 
  4963.  
  4964.  6. Type Add Files to a List in the Title bar text entry field. 
  4965.  
  4966.  7. Select the Dialog box radio button in the Window Type group box. 
  4967.  
  4968.  8. Select Title bar, System menu, Minimize button, and Maximize button from 
  4969.     the Window styles group box. 
  4970.  
  4971.  9. Select dialog border in Border styles group box. 
  4972.  
  4973. 10. Select OK to save the dialog box. It is now represented by an icon in the 
  4974.     project window. 
  4975.  
  4976.  
  4977.         Dialog Box Icon Displayed in Project Window
  4978.  
  4979.  
  4980. ΓòÉΓòÉΓòÉ 21.6. Adding a List Box ΓòÉΓòÉΓòÉ
  4981.  
  4982.  1. Double-click on the Action icon in the project window. The Add Files to a 
  4983.     List dialog box that you just created appears. 
  4984.  
  4985.  2. Select the Listbox icon in the Objects toolbox. 
  4986.  
  4987.  3. While holding down mouse button 2, drag the icon over to the Add Files to a 
  4988.     List pop-up window dialog box and drop it. 
  4989.  
  4990.  
  4991.         Completing the #Define Field for Your Listbox
  4992.  
  4993.  4. The #define field of the Listbox #define window contains LI_. Change this 
  4994.     to LI_List. 
  4995.  
  4996.  5. Select OK. The Add Files to a List window now contains a list box icon. 
  4997.  
  4998.  6. Position the mouse pointer over the list box. The shape of the pointer 
  4999.     changes to a four-headed arrow. 
  5000.  
  5001.  7. Drag the list box to the new position. 
  5002.  
  5003. Resize the list box to a reasonable size: 
  5004.  
  5005.  1. Place the mouse pointer just inside a border of the list box. The pointer 
  5006.     changes to a double-ended arrow. 
  5007.  
  5008.  2. Drag the border to a new position. 
  5009.  
  5010.  
  5011.         List Box Icon
  5012.  
  5013.  
  5014. ΓòÉΓòÉΓòÉ 21.6.1. Adding Push Buttons ΓòÉΓòÉΓòÉ
  5015.  
  5016. To add an OK push button: 
  5017.  
  5018.  1. Select the Buttons icon in the Objects toolbox. 
  5019.  
  5020.  2. Drag and drop the icon into the pop-up window. This opens the Button 
  5021.     Controls window. 
  5022.  
  5023.  
  5024.         Button Window
  5025.  
  5026.  3. Select the type of button you want to create. 
  5027.  
  5028.  4. Type OK in the Button text entry field. 
  5029.  
  5030.  5. Select the #define entry field and overtype PB_ with PB_OK. 
  5031.  
  5032.  
  5033.         Push Button Added to Window
  5034.  
  5035.  6. Select OK. The window should now look like Push Button Added to Window. 
  5036.  
  5037. To add a Fill push button: 
  5038.  
  5039.  1. Select the Buttons icon in the Objects tool box. 
  5040.  
  5041.  2. Drag the icon over to the Add Files to a List pop-up window and drop it 
  5042.     onto it. The Buttons Control window appears again. 
  5043.  
  5044.  
  5045.         Button Controls Window
  5046.  
  5047.  3. Type Fill in the Buttons text entry field. 
  5048.  
  5049.  4. Overtype PB_ with PB_Fill in the #define entry field. 
  5050.  
  5051.  5. Select OK. 
  5052.  
  5053.  
  5054.         Adding the Fill Push Button
  5055.  
  5056. You should now have a dialog box containing a list box and two push buttons as 
  5057. shown in Adding the Fill Push Button. You can move or size the push buttons. 
  5058.  
  5059.  
  5060. ΓòÉΓòÉΓòÉ 21.7. Creating Links ΓòÉΓòÉΓòÉ
  5061.  
  5062. In this next step, you specify that: 
  5063.  
  5064. o The Open item from the File pull-down in the primary window calls the Add 
  5065.   Files to a List pop-up window. 
  5066.  
  5067. o The Exit item ends the application. 
  5068.  
  5069. To do so, establish links between the objects and the functions they represent. 
  5070.  
  5071.  
  5072. ΓòÉΓòÉΓòÉ 21.7.1. Creating Links for the Menu Bar ΓòÉΓòÉΓòÉ
  5073.  
  5074. To specify the link for the Open action: 
  5075.  
  5076.  1. Select the Links icon in the Objects toolbox. 
  5077.  
  5078.  2. Drag the icon into MYPROJ Program window and drop it on the icon for 
  5079.     FirstMN. 
  5080.  
  5081.     The Links for Menu FirstMN pop-up window appears. 
  5082.  
  5083.  
  5084.         Links for ... Pop-Up Window
  5085.  
  5086.     IftheLinksforMenuwindowdoesnotappear 
  5087.     ,youdidnotpositiontheLinkiconpreciselyoverthemenubeforedroppingit 
  5088.     .SelectCancelandtryagain .
  5089.  
  5090.  3. Select Open in the Event list box. 
  5091.  
  5092.  4. Select Basic PM Functions in the Library list box. 
  5093.  
  5094.  5. Select Load a Dialog in the Code Blocks Available list box. 
  5095.  
  5096.  6. Select the Add push button in the Code block group box. 
  5097.  
  5098.     The Single select from list pop-up window now lists the dialog boxes 
  5099.     available for selection. 
  5100.  
  5101.  7. Select Action in the list box in this window. 
  5102.  
  5103.  8. Select OK. 
  5104.  
  5105. To specify the link for the Exit actions: 
  5106.  
  5107.  1. Select Exit in the Event list box. 
  5108.  
  5109.  2. Select Basic PM Functions in the Library list box. 
  5110.  
  5111.  3. Select Terminate Application in the Code Blocks Available list box. 
  5112.  
  5113.  4. Select the Add push button in Code block group box. 
  5114.  
  5115.  5. Select OK to save the links for Open and Exit. 
  5116.  
  5117.  
  5118. ΓòÉΓòÉΓòÉ 21.7.2. Creating Links for the Dialog Box ΓòÉΓòÉΓòÉ
  5119.  
  5120. Next, you must specify the links that define the action that is to be carried 
  5121. out for the OK and Fill push buttons in the dialog box. When a user of the 
  5122. application selects OK, the dialog box disappears. When the Fill push button is 
  5123. selected, the list box displays the contents of the current directory. 
  5124.  
  5125.  1. Select the Links icon in the Objects toolbox. 
  5126.  
  5127.  2. Drag the icon over to the Add Files to a List pop-up window and drop it on 
  5128.     the OK button. The Links for Control OK pop-up window appears. 
  5129.  
  5130.  3. Select WM_COMMAND in the Event list box. 
  5131.  
  5132.  4. Select Basic PM Functions in the Library list box. 
  5133.  
  5134.  5. Select Dismiss the Dialog in the Code Blocks Available list box. 
  5135.  
  5136.  6. Select the Add push button in the Code block group box. The Single select 
  5137.     from list pop-up window appears, listing the controls available. 
  5138.  
  5139.  7. Select PB_OK from this list. 
  5140.  
  5141.  8. Select the OK push button in the Single select from list pop-up window to 
  5142.     process your entries and close the window. The Links for Control window 
  5143.     appears again. 
  5144.  
  5145.  9. Select OK to close the window. 
  5146.  
  5147. Next, specify the link for the Fill push button. 
  5148.  
  5149.  1. Select the Links icon in the Objects toolbox. 
  5150.  
  5151.  2. Drag the icon to the Add Files to a List pop-up window and drop it on the 
  5152.     Fill push button. The Links for Control Fill pop-up window appears. 
  5153.  
  5154.  3. Select WM_COMMAND in the Event list box. 
  5155.  
  5156.  4. Select Listbox Functions in the Library list box. 
  5157.  
  5158.  5. Select Display Directory in the Code Blocks available list box. 
  5159.  
  5160.  6. Select the Add push button in the Code block group box. The Single select 
  5161.     from list pop-up window appears, giving a list of entry field controls 
  5162.     available. 
  5163.  
  5164.  7. Select LI_List in this list. 
  5165.  
  5166.  8. Select the OK push button to process your entries and to close this window. 
  5167.     The Links for Control Fill dialog box appears again. 
  5168.  
  5169.  9. Select OK to close the window. 
  5170.  
  5171.  
  5172. ΓòÉΓòÉΓòÉ 21.8. Adding Static Text ΓòÉΓòÉΓòÉ
  5173.  
  5174. To add static text to your project window: 
  5175.  
  5176.  1. Select the Text icon in the Objects toolbox. 
  5177.  
  5178.  2. Drag the icon over to the Add Files to a List pop-up window and drop it on 
  5179.     the top left of the window, above the list box. The Text Control pop-up 
  5180.     window appears. 
  5181.  
  5182.  
  5183.         Text Control Pop-Up Window
  5184.  
  5185.  3. Type My Title in the Type text entry field. 
  5186.  
  5187.  4. Select Center X in the Horizontal options group box. 
  5188.  
  5189.  5. Select Center Y in the Vertical options group box. 
  5190.  
  5191.  6. Type STX_MYTITLE in the #define entry field. This is optional. If you leave 
  5192.     this blank, Visual PL/I generates one for you. 
  5193.  
  5194.  7. Select OK. 
  5195.  
  5196.  8. My Title now appears in the entry field of the Add Files to a List window. 
  5197.     Resize it with mouse button 1 until you see your text. 
  5198.  
  5199.  
  5200. ΓòÉΓòÉΓòÉ 21.9. Adding an Entry Field ΓòÉΓòÉΓòÉ
  5201.  
  5202.  1. Select the Entry Field icon in the Objects toolbox. 
  5203.  
  5204.  2. Drag the icon over to the Add Files to a List pop-up window and drop it on 
  5205.     the upper right corner of the list box. 
  5206.  
  5207.     The Entry Field Options pop-up window appears. 
  5208.  
  5209.  
  5210.         Entry Field Options Window
  5211.  
  5212.  3. Type My Entry in the Default entry field. 
  5213.  
  5214.  4. Type EF_myentryfield in the #define entry field in the #define value list 
  5215.     box. 
  5216.  
  5217.  5. Type my_entryfield in the Variable name entry field. 
  5218.  
  5219.     Note:  The default for the variable type is global. The my_entryfield 
  5220.     variable name will be a PL/I global variable. 
  5221.  
  5222.  6. Select OK. 
  5223.  
  5224.  7. Resize the My Entry entry field in the Add Files to a List window. 
  5225.  
  5226.  
  5227.         Add Files to a List Window
  5228.  
  5229.  
  5230. ΓòÉΓòÉΓòÉ 21.10. Adding Another Link to the Fill Push Button ΓòÉΓòÉΓòÉ
  5231.  
  5232.  1. Select the Links icon in the Objects toolbox. 
  5233.  
  5234.  2. Drag the icon to the Add Files to a List pop-up window and drop it on the 
  5235.     Fill push button. The Links for Control Fill pop-up window appears. 
  5236.  
  5237.  3. Select WM_COMMAND in the Event list box. 
  5238.  
  5239.  4. Select Entryfield Functions in the Library list box. 
  5240.  
  5241.  5. Select Delete Entryfield Text in the Code Blocks available list box. 
  5242.  
  5243.  6. Select the Add push button in the Code block group box. The Single select 
  5244.     from list pop-up window appears, showing a list of entry field controls 
  5245.     available. 
  5246.  
  5247.  7. Select EF_MYENTRYFIELD in this list. 
  5248.  
  5249.  8. Select OK in the Single select from list pop-up window. The Links for 
  5250.     Control Fill dialog box appears. 
  5251.  
  5252.  9. Select OK to close the window. 
  5253.  
  5254.  
  5255. ΓòÉΓòÉΓòÉ 21.11. Adding a PL/I Code Block ΓòÉΓòÉΓòÉ
  5256.  
  5257.  1. Select the Links icon in the Objects toolbox. 
  5258.  
  5259.  2. Drag the icon to the Add Files to a List pop-up window and drop it on the 
  5260.     Fill push button. The Links for Control Fill pop-up window appears. 
  5261.  
  5262.  3. Select WM_COMMAND in the Event list box. 
  5263.  
  5264.  4. Select PL/I Code in the Library list box. 
  5265.  
  5266.  5. Select Any code in the Code blocks available list box. 
  5267.  
  5268.  6. Select the Add push button in the Code block group box. The Enter the 
  5269.     code... window appears. 
  5270.  
  5271.  7. Type the following in the entry field: 
  5272.  
  5273.         /* PL/I code block activated by button */
  5274.         Display ('The LISTBOX is filled and the ENTRY FIELD is empty.');
  5275.     This activates the Program Information Display window when the program is 
  5276.     invoked. 
  5277.  
  5278.  
  5279.         Enter the code... Window
  5280.  
  5281.  8. Select OK. 
  5282.  
  5283.  9. Select OK to close the window. 
  5284.  
  5285. You have now completed the interface design for a simple application. You will 
  5286. learn to save and compile this design later in this tutorial. 
  5287.  
  5288.  
  5289. ΓòÉΓòÉΓòÉ 21.12. Saving, Writing, and Viewing Project Code ΓòÉΓòÉΓòÉ
  5290.  
  5291. To save, write and compile, and view your code: 
  5292.  
  5293.  1. Select mouse button 2 in the client area of the Project MYPROJ.PMG window. 
  5294.  
  5295.  2. Save your project by selecting Save from the context menu for the Project 
  5296.     MYPROJ.pmg window. 
  5297.  
  5298.  3. Click on mouse button 2 again in the client area. 
  5299.  
  5300.  4. Select Build to write and compile your code. Select Write code from the 
  5301.     cascade menu. Select Compile code from the cascade menu. The Generating 
  5302.     Code window appears. The Compilation window appears. When the compilation 
  5303.     is done, 
  5304.     Completed: Compilation appears in the window title. 
  5305.  
  5306.  5. After the code is written, you can view the stored code on your screen. 
  5307.     Click on mouse button 2 in the client area. Select Source. Select one of 
  5308.     the View options. 
  5309.  
  5310. If  youdonothavetheenvironmentsetupcorrectly ,thecompilestepcanfail .IfVisualPL 
  5311. / IcannotfindthePL / Icompiler :
  5312.  
  5313.  1. Display the context menu for the project. 
  5314.  
  5315.  2. Select the Open arrow. 
  5316.  
  5317.  3. Select Settings from the cascaded menu. The Settings notebook appears. 
  5318.  
  5319.  4. Select the Compile and Link tab in the notebook. 
  5320.  
  5321.  5. Set up the compiler environment options. 
  5322.  
  5323.  6. Select OK. 
  5324.  
  5325.  7. Try to compile the MYPROJ Program application again. 
  5326.  
  5327.  
  5328. ΓòÉΓòÉΓòÉ 21.13. Running the Application ΓòÉΓòÉΓòÉ
  5329.  
  5330. You can run the application without leaving Visual PL/I. Select Run code from 
  5331. the context menu. 
  5332.  
  5333. The first window in your program, the MYPROJ Program window, appears. 
  5334.  
  5335.  1. Select File. Select Open. The Add Files to a List dialog box appears. 
  5336.  
  5337.  2. When you select Fill, the list box fills with all the files in the current 
  5338.     directory. The entry field is deleted. The Program Information Display 
  5339.     window appears. The previously typed PL/I DISPLAY command in step Adding a 
  5340.     PL/I Code Block is invoked. 
  5341.  
  5342.  3. Select OK in the Add Files to a List dialog box. The dialog box disappears. 
  5343.  
  5344.  4. Select Exit from the MYPROJ Program window to end the application. 
  5345.  
  5346.  
  5347. ΓòÉΓòÉΓòÉ 22. Tutorial on Linking a Thread to an Action or Function ΓòÉΓòÉΓòÉ
  5348.  
  5349. This tutorial takes you through the steps required to link a thread to an 
  5350. action or function. Before you begin this tutorial, you need to complete the 
  5351. first tutorial, Tutorials. This tutorial requires data that you will supply 
  5352. when you create the application. 
  5353.  
  5354. In this example, the primary window contains a list box that is filled whenever 
  5355. the push button is selected. The system is not locked up while the list box is 
  5356. being filled. During this time, the application can perform other actions. 
  5357.  
  5358.  1. Follow the procedure described in Creating a Thread to create a thread with 
  5359.     the thread name Thread1, the queue name queue1, and the message identifier 
  5360.     WM_. 
  5361.  
  5362.  2. Select OK. An icon representing thread1 is displayed in the project window. 
  5363.  
  5364.  3. Create a primary main window with a push button and a list box on it. If 
  5365.     you completed the tutorial in Tutorials, you already have this window. 
  5366.     Display the Objects tool box in order to carry out the rest of this 
  5367.     process. 
  5368.  
  5369.     Youcannotproceedanyfurtherwiththisprocessuntilyouhavedefinedathread .
  5370.  
  5371.  4. Drag the Links icon from the Objects tool box and drop it onto the project 
  5372.     window for the application (not its primary window). The Links for project 
  5373.     window appears. See Links for Project Window. 
  5374.  
  5375.  
  5376.         Links for Project Window
  5377.  
  5378.  5. Select REGISTER CLASS in the Event panel. Scroll down the list to find this 
  5379.     entry. 
  5380.  
  5381.  6. Select Thread Functions in the Library panel. 
  5382.  
  5383.  7. Select Create a Thread in the Code Blocks Available panel. 
  5384.  
  5385.  8. Select the Add push button in the Code block group box. This displays the 
  5386.     Single select from list window. See Single select from list Window. 
  5387.  
  5388.  
  5389.         Single select from list Window
  5390.  
  5391.  9. Select the Thread1 entry in the list box. 
  5392.  
  5393. 10. Select OK to display the Enter the thread stack size window. See Enter 
  5394.     thread stack size Window. 
  5395.  
  5396.  
  5397.         Enter thread stack size Window
  5398.  
  5399. 11. Type an integer value for the stack size. For example, type a value of 
  5400.     10000. 
  5401.  
  5402. 12. Select OK to return to the Links for Project window. 
  5403.  
  5404. 13. Select OK to close the Links for Project window. 
  5405.  
  5406. 14. Select and open the thread icon in the Project window. A small window with 
  5407.     the title Thread1 appears. 
  5408.  
  5409.  
  5410.         Thread1 Window
  5411.  
  5412. 15. Drag and drop the Links icon from the Objects toolbox onto the Thread1 icon 
  5413.     in the project window. You may need to reposition one of these windows to 
  5414.     do this. This opens a Links for Thread window similar to Links for Thread 
  5415.     Window. 
  5416.  
  5417.  
  5418.         Links for Thread Window
  5419.  
  5420. 16. Select WM_COMMAND from the Event list. 
  5421.  
  5422. 17. Select Listbox Functions from the Library list. 
  5423.  
  5424. 18. Select Display Current Directory (thread) from the Code Blocks Available 
  5425.     list. 
  5426.  
  5427. 19. Select Add Code Block. 
  5428.  
  5429. 20. Select OK. 
  5430.  
  5431. 21. Select the application window that contains the list box and push buttons 
  5432.     (Add Files to a list pop-up window in the MYPROJ program.) 
  5433.  
  5434. 22. Drag and drop the Links icon from the Objects window onto the Fill push 
  5435.     button icon in the application window. The Links for Control... window 
  5436.     appears. 
  5437.  
  5438.  
  5439.         Links for Control... Window
  5440.  
  5441. 23. Select WM_COMMAND in the Event list box. 
  5442.  
  5443. 24. If you are using the MYPROJ program: 
  5444.  
  5445.     a. Select Display Directory in the Event links list box. 
  5446.  
  5447.     b. Select Delete in the Code block group box. 
  5448.  
  5449. 25. Select Thread Functions in the Library list box. 
  5450.  
  5451. 26. Select Init Directory (thread) in the Code Blocks Available panel. 
  5452.  
  5453. 27. Select Add in the Code blocks group box to display the Single select list 
  5454.     from window. 
  5455.  
  5456. 28. Select Thread1 from the list. 
  5457.  
  5458. 29. Select OK to open the Message to be posted window. 
  5459.  
  5460. 30. Type WM_COMMAND in this field. 
  5461.  
  5462. 31. Select OK to open the Single select from list window. 
  5463.  
  5464. 32. Select the identifier LI_LIST that appears in the list box. 
  5465.  
  5466. 33. Select OK to return to the Links for Control ... window. 
  5467.  
  5468. 34. Select OK to close this window. 
  5469.  
  5470. 35. You can now generate the code for this application and compile it, as 
  5471.     described in Generating Code. 
  5472.  
  5473.  
  5474. ΓòÉΓòÉΓòÉ 23. C2PLI Conversion Aid ΓòÉΓòÉΓòÉ
  5475.  
  5476. This part of the book describes the C2PLI conversion aid. 
  5477.  
  5478.  
  5479. ΓòÉΓòÉΓòÉ 24. Converting C Header Files to PL/I ΓòÉΓòÉΓòÉ
  5480.  
  5481. The C2PLI conversion aid converts C header files to the corresponding PL/I 
  5482. include files, with the intent of minimizing manual effort by the user. By 
  5483. using C2PLI to map C header files to the equivalent PL/I include files, you can 
  5484. easily incorporate C programs into the PL/I programming environment. 
  5485.  
  5486. C2PLIdoesnotsupportC + + .
  5487.  
  5488. C2PLI flags and places detected unsupported features into a block comment in 
  5489. the output file. To avoid using an erroneous file, C2PLI includes a %note in 
  5490. the file. You need to manually complete the conversion and validate the 
  5491. results. 
  5492.  
  5493. Note:  It is recommended that you read the CREAD.ME file before you use C2PLI. 
  5494.  
  5495.  
  5496. ΓòÉΓòÉΓòÉ 24.1. Before You Start Using C2PLI ΓòÉΓòÉΓòÉ
  5497.  
  5498. Consider the following: 
  5499.  
  5500. o C2PLI is not a parser and has only the scope of a single statement. 
  5501.  
  5502. o C2PLI handles a large subset of declares and defines that are found in header 
  5503.   files, but not executable code. Executable code is generally not found in 
  5504.   header files. 
  5505.  
  5506. o C2PLI assumes that the C source is valid and compiles cleanly. 
  5507.  
  5508. o C++ class definitions, C++ function prototypes, and C statements that are not 
  5509.   valid will produce unpredictable results. Before you use C2PLI, get a clean C 
  5510.   compile. 
  5511.  
  5512.  
  5513. ΓòÉΓòÉΓòÉ 24.2. Unsupported Features ΓòÉΓòÉΓòÉ
  5514.  
  5515. C features that are not supported: 
  5516.  
  5517. o #define macros 
  5518.  
  5519. o Pragma directives 
  5520.  
  5521. o Functions returning pointer to a function 
  5522.  
  5523. o Typedefs functions 
  5524.  
  5525. o Executable statements 
  5526.  
  5527. o Initialization expressions 
  5528.  
  5529. o Types float and double 
  5530.  
  5531. o Bit fields in struct and unions. Due to differences in storage mapping of 
  5532.   bits between C bit fields and the PL/I bit type, this mapping requires manual 
  5533.   intervention. 
  5534.  
  5535. o #elif 
  5536.  
  5537. o Enum list within an aggregate 
  5538.  
  5539. Undetected unsupported features may be mapped incorrectly. In severe 
  5540. situations, C2PLI stops processing. 
  5541.  
  5542.  
  5543. ΓòÉΓòÉΓòÉ 24.3. Syntax ΓòÉΓòÉΓòÉ
  5544.  
  5545.      Syntax C2PLI [drive][path]name.h[[drive][path]outfile.ext] 
  5546.  
  5547.  name 
  5548.            is the name of a C header file. 
  5549.  For example, 
  5550.  
  5551.   C2PLI  os2def.h
  5552.  
  5553.  By default, the output file that C2PLI creates has the same name, but the 
  5554.  extension is cpy. C2PLI creates it in the same subdirectory as the input file. 
  5555.  For example, C2PLI os2def.h produces os2def.cpy. If a .cpy file already 
  5556.  exists, it is copied to name.bak before the conversion process starts. Any 
  5557.  existing .bak file is overlaid. 
  5558.  
  5559.  If outfile.ext is specified, the PL/I output is written to that file. If 
  5560.  outfile.ext already exists, it is renamed to outfile.bak. 
  5561.  
  5562.  If the input file does not have an .h as the extension, C2PLI issues an error 
  5563.  message and ends the process. 
  5564.  
  5565.  
  5566. ΓòÉΓòÉΓòÉ 24.4. How C2PLI Handles C and PL/I Language Features ΓòÉΓòÉΓòÉ
  5567.  
  5568. This section discusses the following C and PL/I features and how they are 
  5569. handled by C2PLI: 
  5570.  
  5571.  o Data types 
  5572.  o Names 
  5573.  o Continuation and comments 
  5574.  o Case sensitivity and restrictions 
  5575.  
  5576.  
  5577. ΓòÉΓòÉΓòÉ 24.4.1. Data Types ΓòÉΓòÉΓòÉ
  5578.  
  5579. The C data types supported and the corresponding PL/I equivalents are shown in 
  5580. Data Types. Note that float and double are not included because they are 
  5581. generally not in header files. 
  5582.  
  5583. Integer constants with suffixes L, UL, S, US, and U are supported. 
  5584.  
  5585. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5586. Γöé C DATA TYPE      Γöé PL/I EQUIVALENT                    Γöé
  5587. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5588. Γöé "char"         Γöé "char"                        Γöé
  5589. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5590. Γöé "signed char"     Γöé "signed fixed bin(7)"                 Γöé
  5591. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5592. Γöé "unsigned char"    Γöé "char"                        Γöé
  5593. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5594. Γöé "char[ ]"       Γöé "char() varyingz"                   Γöé
  5595. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5596. Γöé "int"         Γöé "fixed bin(31)"                    Γöé
  5597. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5598. Γöé "short"        Γöé "fixed bin(15)"                    Γöé
  5599. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5600. Γöé "long"         Γöé "fixed bin(31)"                    Γöé
  5601. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5602. Γöé "unsigned int"     Γöé "unsigned fixed bin(31)"               Γöé
  5603. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5604. Γöé "unsigned short"    Γöé "unsigned fixed bin(16)"               Γöé
  5605. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5606. Γöé "unsigned long"    Γöé "unsigned fixed bin(31)"               Γöé
  5607. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5608. Table 8. Data Types
  5609.  
  5610.  
  5611. ΓòÉΓòÉΓòÉ 24.4.1.1. Using Value Range to Determine Data Type ΓòÉΓòÉΓòÉ
  5612.  
  5613. Determining Data Type from Value Range shows how C2PLI determines type by 
  5614. looking at the value range. 
  5615.  
  5616. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5617. Γöé DATA TYPE       Γöé RANGE OF VALUES                    Γöé
  5618. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5619. Γöé UNSIGNED                                   Γöé
  5620. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5621. Γöé "char"         Γöé 0 through 255                     Γöé
  5622. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5623. Γöé "short"        Γöé 0 through 65535                    Γöé
  5624. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5625. Γöé "int, long"      Γöé 0 through 4294967295                 Γöé
  5626. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5627. Γöé SIGNED                                    Γöé
  5628. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5629. Γöé "char"         Γöé -128 through 127                   Γöé
  5630. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5631. Γöé "short"        Γöé -32768 through +32767                 Γöé
  5632. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5633. Γöé "int, long"      Γöé -2147483648 through +2147483647            Γöé
  5634. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5635. Table 9. Determining Data Type from Value Range
  5636.  
  5637. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5638. Γöé C HEX CONSTANTS             Γöé PL/I DECLARES            Γöé
  5639. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5640. Γöé Unsuffixed with 4 or fewer digits    Γöé "fixed bin(15)"           Γöé
  5641. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5642. Γöé Unsuffixed with 5 to 8 digits      Γöé "fixed bin(31)"           Γöé
  5643. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5644. Γöé With suffix UL             Γöé "unsigned fixed bin(31)"       Γöé
  5645. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5646. Γöé With suffix L              Γöé "fixed bin(31)"           Γöé
  5647. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5648. Γöé With suffix US             Γöé "unsigned fixed bin(16)"       Γöé
  5649. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5650. Γöé With suffix U              Γöé "unsigned fixed bin(31)"       Γöé
  5651. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5652. Γöé With suffix S              Γöé "fixed bin(15)"           Γöé
  5653. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5654. Table 10. Mapping of C Hex Constants to PL/I Declares
  5655.  
  5656.  
  5657. ΓòÉΓòÉΓòÉ 24.4.2. Names ΓòÉΓòÉΓòÉ
  5658.  
  5659. Because identifiers in PL/I cannot have an underscore as the first character, 
  5660. the first leading underscore is replaced with the character #. 
  5661.  
  5662.  
  5663. ΓòÉΓòÉΓòÉ 24.4.3. Continuation and Comments ΓòÉΓòÉΓòÉ
  5664.  
  5665. Using the \ character as a line continuation is supported. 
  5666.  
  5667. C comments (of the form /*...*/) are carried into the output PL/I include file 
  5668. unchanged. C++ comments (of the form //...) are converted to PL/I comments. 
  5669.  
  5670. Block comments inside a function prototype are not supported. 
  5671.  
  5672.  
  5673. ΓòÉΓòÉΓòÉ 24.4.4. Case Sensitivity and Restrictions ΓòÉΓòÉΓòÉ
  5674.  
  5675. C is case sensitive and PL/I is not case sensitive. If the C input to C2PLI is 
  5676. dependent on name or value differentiation based on case, the resulting PL/I 
  5677. does not accurately reflect the semantics and intent of the C code. C2PLI 
  5678. issues an error only when the problem is evident within a single statement. For 
  5679. example, 
  5680.  
  5681.   #define VAR var
  5682.  
  5683. results in a warning message being issued. 
  5684.  
  5685.  
  5686. ΓòÉΓòÉΓòÉ 24.4.4.1. Macros and Typedef Functions ΓòÉΓòÉΓòÉ
  5687.  
  5688. Macros on #defines and typedef functions are not supported. 
  5689.  
  5690. C pre-defined macros, such as _LINE_ and _DATE_ are not recognized. They are 
  5691. processed as user names resulting in #LINE_ and #DATE_. As with other 
  5692. C-specific names, you need to make the appropriate changes. 
  5693.  
  5694.  
  5695. ΓòÉΓòÉΓòÉ 24.4.4.2. C Syntax Variations ΓòÉΓòÉΓòÉ
  5696.  
  5697. C2PLI supports only the syntax specified in the following sections for the 
  5698. different constructs. Except in the case of struct, union, or enum, only a 
  5699. single item is permitted in a declaration statement. While struct and union 
  5700. syntax require each member definition to be fully contained on a line, 
  5701. enumeration list of enum may extend to any number of lines. 
  5702.  
  5703.  
  5704. ΓòÉΓòÉΓòÉ 24.4.4.3. Aggregates ΓòÉΓòÉΓòÉ
  5705.  
  5706. Definitions of struct and union within struct and union are supported, but an 
  5707. enum list within an aggregate is not supported. 
  5708.  
  5709. Struct, union, and enum without tags are given the dummy#n tag names, where n 
  5710. is the number of occurrences of the aggregate type without the tag. 
  5711.  
  5712. Nested structs and unions without tags are given the outer struct or union tag 
  5713. name, concatenated with a #. The number of #s increase with the number of 
  5714. nested constructs. 
  5715.  
  5716.  
  5717. ΓòÉΓòÉΓòÉ 24.5. C and PL/I Syntax ΓòÉΓòÉΓòÉ
  5718.  
  5719. The following sections describe the C constructs supported by C2PLI and the 
  5720. corresponding PL/I statements that are generated: 
  5721.  
  5722.  o #include 
  5723.  o #ifdef #else #endif 
  5724.  o #ifndef #else #endif 
  5725.  o #define directive 
  5726.  o #undef directive 
  5727.  o Variable declarations 
  5728.  o typedef 
  5729.  o union 
  5730.  o struct 
  5731.  o enum 
  5732.  o Function declarations 
  5733.  
  5734.  
  5735. ΓòÉΓòÉΓòÉ 24.5.1. C Directives ΓòÉΓòÉΓòÉ
  5736.  
  5737. The following sections describe preprocessor directives that conditionally 
  5738. determine which portions of the source are to be compiled. 
  5739.  
  5740. PL/I has no facility by which preprocessor variables can be set outside of the 
  5741. program, such as the DEFINE option in C. C2PLI does not compensate for this 
  5742. difference. Therefore, you need to provide additional setup (using include 
  5743. files, for example) to obtain comparable behavior. 
  5744.  
  5745.  
  5746. ΓòÉΓòÉΓòÉ 24.5.2. #include ΓòÉΓòÉΓòÉ
  5747.  
  5748.      C syntax 
  5749.  
  5750.            #include "fname"   or
  5751.            #include <fname>
  5752.  
  5753.  fname 
  5754.            The name of a C header (.h) file. (fname set by a #define is not 
  5755.            supported.) 
  5756.  
  5757.      PL/I syntax 
  5758.  
  5759.            %include fname;
  5760.  
  5761.  fname 
  5762.            The name of the resulting PL/I include file. 
  5763.  
  5764.  
  5765.   Mapping for #includes
  5766.  
  5767.     C example                                    PL/I example
  5768.  
  5769.     #include "os2def.h"                          %include os2def;
  5770.     #include <os2def.h>
  5771.  
  5772.  This C directive includes an external file in the header file. Notice that 
  5773.  this mapping is a many-to-one correspondence: differentiating between system 
  5774.  and user include files has no counterpart in PL/I. All #include statements are 
  5775.  mapped to %include statements, and associated search-criteria differences are 
  5776.  lost. 
  5777.  
  5778.  
  5779. ΓòÉΓòÉΓòÉ 24.5.3. #ifdef #else #endif ΓòÉΓòÉΓòÉ
  5780.  
  5781.      C syntax 
  5782.  
  5783.            #ifdef identifier
  5784.              statements_1
  5785.            [#else
  5786.              statements_2]
  5787.            #endif
  5788.  
  5789.  identifier 
  5790.            A preprocessor identifier. 
  5791.  
  5792.  statements_1 
  5793.            A group of statements to be compiled when identifier is defined. 
  5794.  
  5795.  statements_2 
  5796.            A group of statements to be compiled when identifier is not defined. 
  5797.  
  5798.      PL/I syntax 
  5799.  
  5800.            %dcl identifier char ext;
  5801.            %if identifier ^='' %then
  5802.             %do;
  5803.              statements_1
  5804.             %end;
  5805.             [%else
  5806.             %do;
  5807.              statements_2
  5808.             %end;]
  5809.  
  5810.  identifier 
  5811.            A preprocessor identifier. 
  5812.  
  5813.  statements_1 
  5814.            A group of statements to be compiled when identifier is declared. 
  5815.  
  5816.  statements_2 
  5817.            A group of statements to be compiled when identifier is not 
  5818.            declared. 
  5819.  
  5820.  
  5821.   Mapping for #ifdef #else #endif
  5822.  
  5823.     C example                                     PL/I example
  5824.  
  5825.                                                   %dcl IBMC char ext;
  5826.     #ifdef  IBMC                                  %if IBMC ^= '' %then
  5827.        #define Max_Out 100                        %do;
  5828.     #else                                           Dcl Max_Out Fixed Bin(31) Value(100);
  5829.        #define Max_Out 50                         %end;
  5830.     #endif                                        %else
  5831.                                                   %do;
  5832.                                                     Dcl Max_Out Fixed Bin(31) Value( 50);
  5833.                                                   %end;
  5834.  
  5835.  
  5836. ΓòÉΓòÉΓòÉ 24.5.4. #ifndef #else #endif ΓòÉΓòÉΓòÉ
  5837.  
  5838.      C syntax 
  5839.  
  5840.            #ifndef identifier
  5841.              statements_1
  5842.            [#else
  5843.              statements_2]
  5844.            #endif
  5845.  
  5846.  identifier 
  5847.            A preprocessor identifier. 
  5848.  
  5849.  statements_1 
  5850.            A group of statements to be compiled when identifier is not defined. 
  5851.  
  5852.  statements_2 
  5853.            A group of statements to be compiled when identifier is defined. 
  5854.  
  5855.      PL/I syntax 
  5856.  
  5857.            %dcl identifier char ext;
  5858.            %if identifier = '' %then
  5859.             %do;
  5860.              statements_1
  5861.             %end;
  5862.             [%else
  5863.             %do;
  5864.              statements_2
  5865.             %end;]
  5866.  
  5867.  identifier 
  5868.            A preprocessor identifier. 
  5869.  
  5870.  statements_1 
  5871.            A group of statements to be compiled when identifier is not 
  5872.            declared. 
  5873.  
  5874.  statements_2 
  5875.            A group of statements to be compiled when identifier is declared. 
  5876.  
  5877.  
  5878.   Mapping for #ifndef #else #endif
  5879.  
  5880.     C example                                    PL/I example
  5881.  
  5882.                                                  %dcl IBMC char ext;
  5883.     #ifndef  IBMC                                %if IBMC = '' %then
  5884.        #define Max_Out 100                       %do;
  5885.     #else                                          Dcl Max_Out Fixed Bin(31) Value(100);
  5886.        #define Max_Out 50                        %end;
  5887.     #endif                                       %else
  5888.                                                  %do;
  5889.                                                    Dcl Max_Out Fixed Bin(31) Value ( 50);
  5890.                                                  %end;
  5891.  
  5892.  
  5893. ΓòÉΓòÉΓòÉ 24.5.5. #if #else #endif ΓòÉΓòÉΓòÉ
  5894.  
  5895.      C syntax 
  5896.  
  5897.            #if expression
  5898.              statements_1
  5899.            [#else
  5900.              statements_2]
  5901.            #endif
  5902.  
  5903.  expression 
  5904.            A preprocessor relational expression: 
  5905.  
  5906.     o Operators && and || are permitted 
  5907.     o Functions defined and !defined are permitted. 
  5908.     o Operands with type casting are not permitted. 
  5909.  
  5910.  statements_1 
  5911.            A group of statements to be compiled when expression evaluates to 
  5912.            true. 
  5913.  
  5914.  statements_2 
  5915.            A group of statements to be compiled when expression evaluates to 
  5916.            false. 
  5917.  
  5918.      PL/I syntax 
  5919.  
  5920.            %dcl operand char ext; (for all operands)
  5921.            %if expression %then
  5922.             %do;
  5923.              statements_1
  5924.             %end;
  5925.             [%else
  5926.             %do;
  5927.              statements_2
  5928.             %end;]
  5929.  
  5930.  expression 
  5931.            A preprocessor relational expression. 
  5932.  
  5933.     o C operators && and || are mapped to & and |. 
  5934.     o C function defined is mapped to 
  5935.       ^= ''. 
  5936.     o C function !defined(operand) is mapped to ^ (operand ^=" ). Operand names 
  5937.            are mapped directly. 
  5938.  
  5939.  statements_1 
  5940.            A group of statements to be compiled when expression evaluates to 
  5941.            true. 
  5942.  
  5943.  statements_2 
  5944.            A group of statements to be compiled when expression evaluates to 
  5945.            false. 
  5946.  
  5947.  
  5948.   Mapping for #if #else #endif
  5949.  
  5950.     C example                                    PL/I example
  5951.  
  5952.                                                  %dcl DEV_VERSION char ext;
  5953.                                                  %dcl PV_VERSION char ext;
  5954.     #if defined(DEV_VERSION) ||                  %if (DEV_VERSION ^= '') |
  5955.         defined(PV_VERSION)                          (PV_VERSION ^= '') %then
  5956.                                                  %do;
  5957.           <statements>                               <statements>
  5958.                                                  %end;
  5959.     #else                                        %else
  5960.                                                  %do;
  5961.           <statements>                               <statements>
  5962.     #endif                                       %end;
  5963.  
  5964.  
  5965. ΓòÉΓòÉΓòÉ 24.5.6. #define Directive ΓòÉΓòÉΓòÉ
  5966.  
  5967.      C syntax 
  5968.  
  5969.            #define identifier [ ( ] def [ ) ]
  5970.  
  5971.  identifier 
  5972.            The name of the identifier being defined. 
  5973.  
  5974.  def 
  5975.            The definition for identifier. Array notation is not supported. 
  5976.  
  5977.            def is: 
  5978.  
  5979.     o Any supported C intrinsic type (see Data Types) with the exception of 
  5980.       char [ ], with 0 or more * 
  5981.     o A constant (integer, string, or hex), which may have the form 
  5982.       (type_cast) constant 
  5983.       where type_cast is one of the supported types or a user-defined type, 
  5984.       assuming that the definition is provided. The only pointer supported for 
  5985.       typecast is pointer to type void. 
  5986.     o An expression using operators <<, >>, +, and - 
  5987.     o A user-defined type 
  5988.     o System linkage option: 
  5989.  
  5990.         1. _System 
  5991.         2. _Optlink 
  5992.         3. _Far16 _Pascal 
  5993.         4. _Far16 _Cdecl 
  5994.         5. _Far16 _Fastcall 
  5995.         6. _Far16 
  5996.         7. _Pascal 
  5997.  
  5998.      PL/I syntax 
  5999.  
  6000.      When def is a C type, the mapping is to 
  6001.  
  6002.            define alias identifier PL/I_type;
  6003.  
  6004.            define alias @identifier pointer;
  6005.  
  6006.      When def is a constant, the mapping is to 
  6007.  
  6008.            declare identifier ptype value(def);
  6009.  
  6010.      When type_cast is PSZ, the mapping is to 
  6011.  
  6012.            declare identifier  pointer ptrvalue(def);
  6013.  
  6014.      Otherwise the mapping is to 
  6015.  
  6016.            %dcl identifier char ext;
  6017.  
  6018.      %identifier= 'map_val'; 
  6019.      [ %dcl @identifier char; 
  6020.      %@identifier= '@map_val';] 
  6021.  
  6022.  identifier 
  6023.            The name of the identifier being defined. 
  6024.  
  6025.  PL/I_type 
  6026.            The PL/I type that corresponds to C type def. 
  6027.  
  6028.  ptype 
  6029.            The PL/I type that is proper for the value def. Note that when def 
  6030.            includes a type cast to a user-defined type, utype, ptype will be 
  6031.            type utype. 
  6032.  
  6033.  map_val 
  6034.            The value appropriate for the case: 
  6035.  
  6036.     o def absent:  Y  The value 'Y' is used to support tests for %if 
  6037.       constructs. There is no direct mapping of C's defined function to PL/I. 
  6038.     o expression: the C expression with mappings of: 
  6039.  
  6040.        <<        raise2 
  6041.        >>        lower2 
  6042.        +         + 
  6043.        -         - 
  6044.  
  6045.     o System-linkage options as follows, corresponding to the list shown in the 
  6046.       C syntax: 
  6047.  
  6048.         1. options(linkage (system) byvalue nodescriptor) external 
  6049.         2. options(linkage (optlink) byvalue nodescriptor) external 
  6050.         3. options(linkage (pascal16) byvalue nodescriptor) external 
  6051.         4. options(linkage (cdecl16) byvalue nodescriptor) external 
  6052.         5. options(linkage (fastcall) byvalue nodescriptor) external 
  6053.         6. options(linkage (cdecl16) byvalue nodescriptor) external 
  6054.         7. options(linkage (pascal) byvalue nodescriptor) external 
  6055.  
  6056.     o Otherwise, user-defined type: the name of the type (for which the 
  6057.       optional statements are generated). 
  6058.  
  6059.  The #define directive provides string substitution and is mapped to a PL/I 
  6060.  named constant, alias, or %dcl. Because this is a one-to-many correspondence, 
  6061.  C2PLI uses the form of the #define statement to deduce the intent of the 
  6062.  statement for a meaningful mapping to PL/I. C2PLI must also anticipate the 
  6063.  outcome of preprocessing of C and PL/I files. (The "extra" statements for 
  6064.  user-defined types in PL/I are the results of this anticipation.) This mapping 
  6065.  may not achieve the original intent for various #define/#undef usages that are 
  6066.  legal in C, but are not usually found in header files. 
  6067.  
  6068.  
  6069. ΓòÉΓòÉΓòÉ 24.5.6.1. Examples ΓòÉΓòÉΓòÉ
  6070.  
  6071. The following examples of mapping of #define statements show a C statement or 
  6072. statements followed by the resulting PL/I statement or statements. 
  6073.  
  6074.  
  6075. Mappingfor# defineDirectives
  6076.  
  6077. C example                            PL/I example
  6078.  
  6079. #define USHORT unsigned short;       define alias USHORT unsigned fixed bin(16);
  6080.                                      define alias @USHORT pointer;
  6081. #define U15 (USHORT) 22              declare U15 type USHORT value(22);
  6082. #define IBMC                         %dcl IBMC char ext;     %IBMC = 'Y';
  6083. #define TRUE  1                      declare TRUE fixed bin(31) value(1);
  6084. #define TWO   2                      declare TWO fixed bin(31) value(2);
  6085. #define char1 'C'                    declare char1 char value('C');
  6086. #define str   "abcd"                 declare str char value("abcd");
  6087. #define WINERR_BASE 0X100A           dcl WINERR_BASE fixed bin(15) value('100A'xn);
  6088. #define NULLHANDLE  0X00000000UL     dcl NULLHANDLE  unsigned fixed bin(31)
  6089.                                          value('00000000'xn);
  6090. #define APIENTRY _System             %dcl APIENTRY char scan;
  6091.                                      %APIENTRY = 'options(linkage (system) byvalue
  6092.                                       nodescriptor) external';
  6093. #define CM_ENTRY _Far16 _Pascal      %dcl CM_ENTRY char scan;
  6094.                                      %CM_ENTRY = 'options(linkage (pascal16) byvalue
  6095.                                       nodescriptor) external';
  6096. #define ptr1 (void far *) 0          declare ptr1 pointer value(ptrvalue(0));
  6097. #define U32 (unsigned long) 10       declare U32 unsigned fixed bin(31) value(10);
  6098. #define U34 ((unsigned long) 10)     declare U34 unsigned fixed bin(31) value(10);
  6099. #define exp ((signed long) +a-b)     %dcl exp char ext;
  6100.                                      %exp = '+a-b ';
  6101. #define exp1 (signed long) +a-b-c    %dcl exp1 char ext;
  6102.                                      %exp1 = '+a-b-c ';
  6103. #define FAR                          %dcl FAR char ext;      %FAR = 'Y';
  6104. #define NEAR                         %dcl NEAR char ext;     %NEAR = 'Y';
  6105. #define RECTL PRECTL                 %dcl RECTL char ext;    %RECTL='PRECTL';
  6106.                                      %dcl @RECTL char ext;    %@RECTL='@PRECTL';
  6107. #define WC_FRAME ((PSZ)0Xffff0001)   dcl WC_FRAME pointer value(ptrvalue
  6108.                                          ('ffff0001'xn));
  6109.                                      /* Assume the common definition of PSZ as */
  6110.                                      /* typedef char *PSZ; */
  6111.                                      /* (pointer to a null-terminated string) */
  6112. #define MYVAR (MYTYPE) 333333        dcl MYVAR type MYTYPE value(333333);
  6113.  
  6114.  
  6115. ΓòÉΓòÉΓòÉ 24.5.7. #undef Directive ΓòÉΓòÉΓòÉ
  6116.  
  6117.      C syntax 
  6118.  
  6119.            #undef identifier
  6120.  
  6121.  identifier 
  6122.            The name of the preprocessor identifier whose definition has ended. 
  6123.  
  6124.      PL/I syntax 
  6125.  
  6126.            %deact identifier
  6127.  
  6128.  identifier 
  6129.            The name of the preprocessor identifier being deactivated. 
  6130.  
  6131.  
  6132.   Mapping for #undef Directive
  6133.  
  6134.     C example                                     PL/I example
  6135.  
  6136.     #undef myname                                 %deact myname;
  6137.  
  6138.  
  6139. ΓòÉΓòÉΓòÉ 24.5.8. Variable Declarations ΓòÉΓòÉΓòÉ
  6140.  
  6141.      C syntax 
  6142.  
  6143.            [ const ] type name;
  6144.  
  6145.  type 
  6146.            The name of one of the following: 
  6147.  
  6148.     o Supported intrinsic type (see Data Types) 
  6149.     o User-defined type 
  6150.     o struct, union, enum or one of their definitions You can include 0 or more 
  6151.            for pointers. Pointers can have attribute far or near, and be of 
  6152.            type void. 
  6153.  
  6154.  name 
  6155.            The name of the object to be typed: 
  6156.  
  6157.     o Scalar 
  6158.     o Array 
  6159.  
  6160.      PL/I syntax 
  6161.  
  6162.            dcl name datatype;
  6163.  
  6164.  name 
  6165.            The name of the object to be typed. 
  6166.  
  6167.  datatype 
  6168.            The PL/I type to which the C type is mapped, as given in the 
  6169.            following sections. 
  6170.  
  6171.            A one-dimensional array of characters is translated into a varyingz 
  6172.            character string. A multidimensional character array is treated as 
  6173.            an array of characters rather than an array of strings. const is 
  6174.            mapped to blank. 
  6175.  
  6176.  
  6177.   Mapping for Variable Declarations
  6178.  
  6179.     C example                                      PL/I example
  6180.  
  6181.     unsigned long int int1;                        dcl int1 unsigned fixed bin(31);
  6182.     char array1[2][4];                             dcl array1(0:2-1,0:4-1) char;
  6183.     char ch1[2];                                   dcl ch1 character (2-1) varyingz;
  6184.     signed long aaa1[ ][4][8][9];                  dcl aaa1(0:*,0:4-1,0:8-1,
  6185.                                                      signed fixed bin(31);
  6186.     color v1;                                      dcl v1 type color;
  6187.     short s1;                                      dcl s1 fixed bin(15);
  6188.     int *p1[6];                                    dcl p1 (0:6-1) pointer;
  6189.     char *ch1;                                     dcl ch1 pointer;
  6190.     struct color Vcol;                             dcl Vcol type color;
  6191.     union hold value;                              dcl value type hold;
  6192.     enum scale todays;                             dcl todays ordinal scale;
  6193.     mytype var1;                                   dcl var1 type mytype;
  6194.  
  6195.  
  6196. ΓòÉΓòÉΓòÉ 24.5.9. typedef ΓòÉΓòÉΓòÉ
  6197.  
  6198.      C syntax 
  6199.  
  6200.            typedef Ctype name;
  6201.  
  6202.  Ctype 
  6203.            One of the following: 
  6204.  
  6205.     o Supported intrinsic type (see Data Types) 
  6206.     o User-defined type 
  6207.     o struct, union, enum or one of their definitions You can include 0 or more 
  6208.            * for pointers. Pointers can have attribute far or near, and be of 
  6209.            type void. 
  6210.  
  6211.  name 
  6212.            The name of the type being defined. Array notation is not supported. 
  6213.  
  6214.      PL/I syntax 
  6215.  
  6216.      define alias name type; 
  6217.      define alias @name AddrType; 
  6218.  
  6219.  name 
  6220.            The name of the type being defined. 
  6221.  
  6222.  type 
  6223.            The name of the PL/I type that is mapped from the C type or, if type 
  6224.            is not an intrinsic C type, is the same name that appears in the 
  6225.            typedef statement (assumed to be user-defined). 
  6226.  
  6227.  AddrType 
  6228.            One of the following: 
  6229.  
  6230.     o pointer when Ctype is an intrinsic type or pointer 
  6231.     o handle name when Ctype is struct, union, enum, struct name, union name, 
  6232.       or enum name 
  6233.     o type @user_type when Ctype is a user-defined type 
  6234.  
  6235.  It is important to note that a C pointer to an object of intrinsic type maps 
  6236.  to a PL/I pointer. However, a pointer to a structure must map to a handle. To 
  6237.  properly map C pointers, even when types are chained arbitrarily, the address 
  6238.  of the variable is used to refer to the appropriate type. Therefore, each 
  6239.  single C typedef statement maps to two PL/I define alias statements in order 
  6240.  to map correctly pointers to pointers and handles. The first alias defines the 
  6241.  type itself; the second alias defines the type used to address the first and 
  6242.  is used to map pointers. 
  6243.  
  6244.  Mapping for typedefs shows examples of the mapping for C typedefs and PL/I 
  6245.  statements. 
  6246.  
  6247.  
  6248.   Mapping for typedefs
  6249.  
  6250.   C example                                    PL/I example
  6251.  
  6252.   typedef int num;                             define alias num fixed bin(31);
  6253.                                                define alias @num pointer;
  6254.  
  6255.   typedef num another;                         define alias another type num;
  6256.                                                define alias @another type @num;
  6257.  
  6258.   typedef num *numptr;                         define alias numptr type @num;
  6259.                                                define alias @numptr pointer;
  6260.  
  6261.   typedef unsigned long apiret;               define alias apiret unsigned fixed
  6262.                                                 bin (31);
  6263.                                               define alias @apiret pointer;
  6264.  
  6265.   typedef long int int1;                      define alias int1 fixed bin(31);
  6266.                                               define alias @int pointer;
  6267.  
  6268.   typedef signed short s2;                    define alias s2 signed fixed bin(15);
  6269.                                               define alias @s2 pointer;
  6270.  
  6271.   typedef char ch;                            define alias ch char;
  6272.                                               define alias @ch pointer;
  6273.  
  6274.   typedef unsigned char uchar;                define alias uchar char;
  6275.                                               define alias @uchar pointer;
  6276.  
  6277.   typedef uchar puchar16;                     define alias puchar16 type uchar;
  6278.                                               define alias @puchar16 type @uchar;
  6279.  
  6280.   typedef unsigned char *TYPE;                define alias TYPE pointer;
  6281.                                               define alias @TYPE pointer;
  6282.  
  6283.   typedef int **PPOINT;                       define alias PPOINT pointer;
  6284.                                               define alias @PPOINT pointer;
  6285.  
  6286.   C example                                    PL/I example
  6287.  
  6288.   typedef struct _color                       define structure
  6289.   {                                             1 #color,
  6290.     int i;                                        2 i fixed bin(31),
  6291.   } color, v1, *v2;
  6292.                                               define alias @#color handle #color;
  6293.                                               define alias color type #color;
  6294.                                               define alias @color type @#color;
  6295.                                               define alias v1 type #color;
  6296.                                               define alias @v1 type @#color;
  6297.                                               define alias v2 handle #color;
  6298.  
  6299.  
  6300.   typedef COLOR *PCOLOR;                      define alias PCOLOR type @COLOR;
  6301.                                               define alias @PCOLOR pointer;
  6302.  
  6303.   typedef COLOR VARCOL;                       define alias VARCOL type COLOR;
  6304.                                               define alias vcol handle COL;
  6305.  
  6306.   typedef struct COL vcol;                    define alias vcol type COL;
  6307.                                               define alias @vcol type @COL;
  6308.  
  6309.   typedef struct COL *Ptr;                    define alias Ptr handle COL;
  6310.                                               define alias @Ptr handle COL;
  6311.  
  6312.  
  6313. ΓòÉΓòÉΓòÉ 24.5.10. union ΓòÉΓòÉΓòÉ
  6314.  
  6315.      C syntax 
  6316.  
  6317.            union tag
  6318.             {
  6319.             type mname;
  6320.             [type mname; . . . ]
  6321.             } [vlist];
  6322.  
  6323.             union tag vlist;
  6324.  
  6325.  tag 
  6326.            The name for the union. 
  6327.  
  6328.  type 
  6329.            The type of the member.  It is one of the following: 
  6330.  
  6331.     o Supported intrinsic type 
  6332.     o User-defined type 
  6333.     o pointer 
  6334.     o struct 
  6335.     o union 
  6336.     o enum 
  6337.     o Definition of struct or union You can include 0 or more * for pointers. 
  6338.            Pointers can have attribute far or near, and be of type void. 
  6339.  
  6340.  mname 
  6341.            The name of the member: 
  6342.  
  6343.     o Scalar 
  6344.     o Array 
  6345.  
  6346.  vlist 
  6347.            The list of union variables: 
  6348.  
  6349.     o Scalar 
  6350.     o Array 
  6351.  
  6352.      PL/I syntax 
  6353.  
  6354.            define structure
  6355.             1 tag union
  6356.               2 name type [,
  6357.               2 name type .,. . .];
  6358.            declare var type tag;
  6359.  
  6360.            (Is one declare for each name in vlist)
  6361.  
  6362.  tag 
  6363.            The name of the structure type. 
  6364.  
  6365.  name 
  6366.            The name of a minor structure. 
  6367.  
  6368.  type 
  6369.            The mapped type. 
  6370.  
  6371.  var 
  6372.            A name in vlist. 
  6373.  
  6374.  
  6375.   Mapping for unions
  6376.  
  6377.     C example                                    PL/I example
  6378.  
  6379.     union hold                                   define structure
  6380.     {                                               1 hold union,
  6381.       int digits;                                      2 digits fixed bin(31),
  6382.       short *int1;                                     2 int1 pointer,
  6383.       long ar[3][4];                                   2 letter char;
  6384.                                                        2 ar dim(0:3-1,0:4-1)
  6385.                                                          fixed bin(31);
  6386.     } var1, var2[6], *var3;                      dcl var1 type hold;
  6387.                                                  dcl var2(0:6-1) type hold;
  6388.                                                  dcl var3 handle hold;
  6389.  
  6390.     union hold var1, var2[6], *var3;             dcl var1 type hold;
  6391.                                                  dcl var2(0:6-1) type hold;
  6392.                                                  dcl var3 handle hold;
  6393.  
  6394.  
  6395. ΓòÉΓòÉΓòÉ 24.5.11. struct ΓòÉΓòÉΓòÉ
  6396.  
  6397.      C syntax 
  6398.  
  6399.            struct stag
  6400.             {
  6401.              type mname;
  6402.              [type mname; . . . ]
  6403.             } [ svars ];
  6404.  
  6405.            struct stag var_list;
  6406.  
  6407.  stag 
  6408.            The name of the structure type (optional for unnested structs). 
  6409.  
  6410.  type 
  6411.            The type of the member.  It is one of the following: 
  6412.  
  6413.     o Supported intrinsic type 
  6414.     o User-defined type 
  6415.     o pointer 
  6416.     o struct 
  6417.     o union 
  6418.     o enum 
  6419.     o Definition of struct or union You can include 0 or more * for pointers. 
  6420.            Pointers can have attribute far or near, and be of type void. 
  6421.  
  6422.  mname 
  6423.            The name of the member: scalar or array. 
  6424.  
  6425.  svars 
  6426.            A list of variables: scalar or array. 
  6427.  
  6428.  var_list 
  6429.            A list of variables of type stag: scalar or array. 
  6430.  
  6431.      PL/I syntax 
  6432.  
  6433.             define structure
  6434.              1 stag,
  6435.               2 name mtype [,
  6436.               2 name mtype, . . . ];
  6437.  
  6438.            declare var type stag;
  6439.  
  6440.            (Is one declare for each name in var_list)
  6441.  
  6442.  stag 
  6443.            The structure type name. 
  6444.  
  6445.  mtype 
  6446.            The mapped PL/I type. 
  6447.  
  6448.  name 
  6449.            The minor structure name. 
  6450.  
  6451.  var 
  6452.            A name in var_list. 
  6453.  
  6454.  
  6455.   Mapping for structs
  6456.  
  6457.     C example                                 PL/I example
  6458.  
  6459.     struct  COLOR                             define structure
  6460.     {                                            1 COLOR;
  6461.                     int x;                          2 x fixed bin(31),
  6462.                     char *letter;                   2 letter pointer,
  6463.                     PSZ win1;                       2 win1 type PSZ,
  6464.                     int **p1;                       2 p1 pointer,
  6465.                     struct addr address;            2 address type addr,
  6466.                     union hold money;               2 money type hold,
  6467.                     type1 type2;                    2 type2 type type1;
  6468.                   } var1[5], var2, *var3;
  6469.                                               dcl var1(0:5-1) type COLOR;
  6470.                                               dcl var2 type COLOR;
  6471.                                               dcl var3 handle COLOR;
  6472.  
  6473.    struct COLOR *pcolor, varcol;              dcl pcolor handle COLOR;
  6474.                                               dcl varcol type COLOR;
  6475.  
  6476.  
  6477. ΓòÉΓòÉΓòÉ 24.5.12. enum ΓòÉΓòÉΓòÉ
  6478.  
  6479.      C syntax 
  6480.  
  6481.            enum enum_tag { e_list } [v_list];
  6482.  
  6483.            enum enum_tag v_list;
  6484.  
  6485.  enum_tag 
  6486.            The type name. 
  6487.  
  6488.  e_list 
  6489.            The list of enumerations of the form 
  6490.            identifier[=constant_int_expression ] 
  6491.            that can occur on separate lines. 
  6492.  
  6493.  v_list 
  6494.            A list of variables of type enum_tag. 
  6495.  
  6496.      PL/I syntax 
  6497.  
  6498.            define ordinal
  6499.                ordn_type
  6500.                (o_list);
  6501.  
  6502.            declare var ordinal ordn_type;
  6503.  
  6504.            (Is one declare for each name in v_list)
  6505.  
  6506.  ordn_type 
  6507.            The name of the ordinal type. 
  6508.  
  6509.  o_list 
  6510.            The ordinal value list of the form 
  6511.            member [ value ]. 
  6512.  
  6513.  var 
  6514.            A name in v_list. 
  6515.  
  6516.  
  6517.   Mapping for enums
  6518.  
  6519.     C example                                    PL/I example
  6520.  
  6521.     enum scale {                                 define ordinal
  6522.                                                         scale
  6523.          off, low, medium=3, high                  ( off, low, medium value(3), high );
  6524.          }  todays;                              dcl todays ordinal scale;
  6525.     enum money dollars[6];                       dcl dollar(0:6-1) ordinal money;
  6526.  
  6527.  
  6528. ΓòÉΓòÉΓòÉ 24.5.13. Function Declarations ΓòÉΓòÉΓòÉ
  6529.  
  6530.      C syntax 
  6531.  
  6532.            [extern] RetType [LinkOpts] FuncName
  6533.                     (ParmType [parm,
  6534.                      ParmType parm, ...]);
  6535.  
  6536.  RetType 
  6537.            The function return type: 
  6538.  
  6539.     o A supported intrinsic type, except char[ ], with 0 or 1 *. See Data 
  6540.       Types. 
  6541.     o A user-defined type with 0 or 1  . 
  6542.     o Void 
  6543.  
  6544.  LinkOpts 
  6545.            The name of the linkage option. See list on page #define Directive 
  6546.            for recognized system options. 
  6547.  
  6548.  FuncName 
  6549.            The name of the function. 
  6550.  
  6551.  ParmType 
  6552.            The type of parameter: 
  6553.  
  6554.     o A supported intrinsic type, except char[ ], with 0 or more *. See Data 
  6555.       Types. 
  6556.     o A user-defined type with 0 or more  . 
  6557.     o struct, union, or enum. 
  6558.  
  6559.  parm 
  6560.            The name of the parameter: 
  6561.  
  6562.     o Scalar 
  6563.     o Array 
  6564.  
  6565.      PL/I syntax 
  6566.  
  6567.            dcl FuncName entry ( ParmType [,
  6568.                     ParmType, ...])
  6569.                     returns (byvalue RetType)
  6570.                     [LinkOpts] external;
  6571.  
  6572.  FuncName 
  6573.            The name of the function. 
  6574.  
  6575.  ParmType 
  6576.            The type of the parameter. Note that PSZ maps to char * varyingz 
  6577.            byaddr since a definition of typedef char *PSZ is assumed. 
  6578.            user_type* maps to @user_type. 
  6579.  
  6580.  RetType 
  6581.            The function return type.  It is one of the following: 
  6582.  
  6583.     o Intrinsic types map to PL/I types. 
  6584.     o User-defined types map to 
  6585.       optional type user_type. 
  6586.     o Pointers map to ptr byvalue. 
  6587.  
  6588.  LinkOpts 
  6589.            The appropriate linkage name. See the list on page #define Directive 
  6590.            for a mapping of recognized system options. 
  6591.  
  6592.  
  6593.   Mapping for Function Declarations
  6594.  
  6595.   C example                           PL/I example
  6596.  
  6597.   HWND APIENTRY WinCreateStdWindow    dcl WinCreateStdWindow entry
  6598.       (HWND hwndParent,                   (type HWND ,
  6599.        ULONG *flstyle,                     type @ULONG ,
  6600.        PULONG pflCreateFlags[4],           type PULONG dim(0:4-1),
  6601.        MYTYPE *Class[6],                   dim(0:6-1) type @MYTYPE,
  6602.        PSZ psztitle,                       char (*) varyingz byaddr,
  6603.        long styleclient[4][7]              fixed bin(31) dim(0:4-1,0:7-1),
  6604.        HMODULE hmod,                       type HMODULE,
  6605.        int *id[6][3],                      dim(0:6-1,0:3-1) pointer,
  6606.        PHWND phwndClient,                  type PHWND,
  6607.        HWND *hwndParent);                  type @HWND)
  6608.                                            returns( byvalue optional type HWND)
  6609.                                            APIENTRY;
  6610.  
  6611.   HPS APIENTRY WinBeginPaint          dcl WinBeginPaint entry
  6612.      (HWND hwnd,                          (type HWND,
  6613.       HPS hps1,                            type HPS,
  6614.       PRECTL prclPaint);                   type PRECTL)
  6615.                                            returns( byvalue optional type HPS)
  6616.                                            APIENTRY;
  6617.  
  6618.    int _System fun1(int);             dcl fun1 entry (fixed bin(31))
  6619.                                           returns(fixed bin(31) byvalue)
  6620.                                           options(linkage(system) byvalue nodescriptor)
  6621.                                           external;
  6622.  
  6623.    void * ckmalloc                    dcl ckmalloc entry (fixed bin(31),
  6624.        (int size,                         pointer,fixed bin(31))
  6625.         char *caller,                     returns (ptr byvalue)
  6626.         int line_number);                 options (byvalue nodescriptor external;
  6627.  
  6628.  
  6629.    extern int gethostbyname_r         dcl gethostbyname_r entry
  6630.        (char *name,                       (pointer,
  6631.         struct hostent *htent);           handle hostent)
  6632.                                           returns(fixed bin(31) byvalue)
  6633.                                           options(byvalue nodescriptor) external;
  6634.  
  6635.    int *getname_r                     dcl getname_r entry
  6636.        (char *name,                       (pointer,
  6637.         struct hostent *htent[6]);        dim(0:6-1) handle hostent)
  6638.                                           returns(ptr byvalue)
  6639.                                           options(byvalue nodescriptor) external;
  6640.  
  6641.  
  6642. ΓòÉΓòÉΓòÉ 25. Visual PL/I Code Blocks ΓòÉΓòÉΓòÉ
  6643.  
  6644. Code blocks supplied with Visual PL/I provide a range of frequently used 
  6645. functions or tasks. You can create additional code blocks for additional 
  6646. functions or tasks. You can include a user-written code block almost anywhere 
  6647. in the PL/I source code generated by Visual PL/I. 
  6648.  
  6649. Code blocks are stored in external files and are loaded either when Visual PL/I 
  6650. is initialized or while you are running Visual PL/I. The following list 
  6651. summarizes the code blocks provided with Visual PL/I. 
  6652.  
  6653.  
  6654. ΓòÉΓòÉΓòÉ 25.1. Basic PM Functions ΓòÉΓòÉΓòÉ
  6655.  
  6656. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6657. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6658. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6659. Γöé Alarm                 Γöé Allows you to select a WA_ message to Γöé
  6660. Γöé                    Γöé send to WinAlarm.           Γöé
  6661. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6662. Γöé Center Window on Screen        Γöé Positions a window at the center of  Γöé
  6663. Γöé                    Γöé the screen.              Γöé
  6664. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6665. Γöé Color the Client Area         Γöé Colors the client area with the    Γöé
  6666. Γöé                    Γöé selected color.            Γöé
  6667. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6668. Γöé Create a Child Window         Γöé Creates a child window.        Γöé
  6669. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6670. Γöé Create a Window            Γöé Creates a secondary window for your  Γöé
  6671. Γöé                    Γöé project.                Γöé
  6672. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6673. Γöé Destroy a Control           Γöé Deletes a control.           Γöé
  6674. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6675. Γöé Destroy a Window           Γöé Deletes a window and all its      Γöé
  6676. Γöé                    Γöé descendents.              Γöé
  6677. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6678. Γöé Destroy a Child Window        Γöé Deletes a child window.        Γöé
  6679. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6680. Γöé Default WM_PAINT           Γöé Contains the default code for a    Γöé
  6681. Γöé                    Γöé WM_PAINT message.           Γöé
  6682. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6683. Γöé Disable Control            Γöé Sets a control to the disabled state. Γöé
  6684. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6685. Γöé Dismiss the Dialog          Γöé Dismisses the dialog box.  A Control  Γöé
  6686. Γöé                    Γöé ID is required as a return value.   Γöé
  6687. Γöé                    Γöé Normally, this is the ID of the    Γöé
  6688. Γöé                    Γöé control that was selected to dismiss  Γöé
  6689. Γöé                    Γöé the dialog.              Γöé
  6690. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6691. Γöé Enable Control            Γöé Sets a control to the enabled state.  Γöé
  6692. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6693. Γöé Force Window to Repaint        Γöé Forces a window to repaint.      Γöé
  6694. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6695. Γöé Hide a Control            Γöé Hides a control on the current     Γöé
  6696. Γöé                    Γöé window.                Γöé
  6697. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6698. Γöé Load a Dialog             Γöé Loads the dialog box (modal).     Γöé
  6699. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6700. Γöé Load a Dialog (modeless)       Γöé Loads the dialog box (modeless).    Γöé
  6701. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6702. Γöé Load A Window from a Window Template Γöé Loads a window from a window tem-   Γöé
  6703. Γöé                    Γöé plate.  The "Output all windows to   Γöé
  6704. Γöé                    Γöé DLG file" option on the output     Γöé
  6705. Γöé                    Γöé options dialogs must be checked for  Γöé
  6706. Γöé                    Γöé this to work.             Γöé
  6707. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6708. Γöé Resize Window to Full Screen     Γöé Resizes a window to the full screen  Γöé
  6709. Γöé                    Γöé size.                 Γöé
  6710. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6711. Γöé Resize Parent Window to Full Screen  Γöé Resizes a parent window to the full  Γöé
  6712. Γöé                    Γöé screen size.              Γöé
  6713. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6714. Γöé Send WM_ Message           Γöé Sends a WM_ message selected from a  Γöé
  6715. Γöé                    Γöé list to the current window.      Γöé
  6716. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6717. Γöé Send WM_ Message to a Window     Γöé Sends a WM_ message selected from a  Γöé
  6718. Γöé                    Γöé list to any window.          Γöé
  6719. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6720. Γöé Set Focus to Control         Γöé Sets the focus to a control.      Γöé
  6721. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6722. Γöé Set Parent              Γöé Sets the parent of a child window to  Γöé
  6723. Γöé                    Γöé be the desktop window.         Γöé
  6724. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6725. Γöé Set Parent of Window to Another    Γöé Sets the parent of a child window to  Γöé
  6726. Γöé Window                Γöé be another window.           Γöé
  6727. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6728. Γöé Set Owner               Γöé Sets the owner of a child window to  Γöé
  6729. Γöé                    Γöé be the desktop window.         Γöé
  6730. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6731. Γöé Set Owner of Window to Another    Γöé Sets the owner of a child window to  Γöé
  6732. Γöé Window                Γöé be another window.           Γöé
  6733. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6734. Γöé Set Static Text            Γöé Enables you to change a static text  Γöé
  6735. Γöé                    Γöé control entry.             Γöé
  6736. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6737. Γöé Set Window Title           Γöé Sets the title text of a window.    Γöé
  6738. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6739. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6740. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6741. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6742. Γöé Terminate Application         Γöé Terminates the application.      Γöé
  6743. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6744. Γöé UnHide a Control           Γöé Shows a control on the current     Γöé
  6745. Γöé                    Γöé window.                Γöé
  6746. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6747. Γöé WinDefWindowProc           Γöé Contains the default process for a   Γöé
  6748. Γöé                    Γöé message sent to dialog procedure.   Γöé
  6749. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6750. Table 11. Basic PM Functions
  6751.  
  6752.  
  6753. ΓòÉΓòÉΓòÉ 25.2. Button Functions ΓòÉΓòÉΓòÉ
  6754.  
  6755. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6756. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6757. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6758. Γöé Check a Button            Γöé Sets a check box to the checked    Γöé
  6759. Γöé                    Γöé state.                 Γöé
  6760. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6761. Γöé Uncheck a Button           Γöé Sets a check box to the unchecked   Γöé
  6762. Γöé                    Γöé state.                 Γöé
  6763. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6764. Γöé Click a Button            Γöé Clicks a button.            Γöé
  6765. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6766. Γöé Enable a Button            Γöé Sets the button control to an enabled Γöé
  6767. Γöé                    Γöé state.                 Γöé
  6768. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6769. Γöé Disable a Button           Γöé Sets the button control to a disabled Γöé
  6770. Γöé                    Γöé state.                 Γöé
  6771. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6772. Γöé Highlight a Button          Γöé Displays a button control in the    Γöé
  6773. Γöé                    Γöé highlighted state.           Γöé
  6774. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6775. Γöé Unhighlight a Button         Γöé Displays a button control in the    Γöé
  6776. Γöé                    Γöé unhighlighted state.          Γöé
  6777. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6778. Γöé If Button Checked           Γöé Determines if the button is checked  Γöé
  6779. Γöé                    Γöé and executes one or more code blocks  Γöé
  6780. Γöé                    Γöé if it is.  If more than one code    Γöé
  6781. Γöé                    Γöé block is to be executed, ensure that  Γöé
  6782. Γöé                    Γöé they are delimited by DO and END    Γöé
  6783. Γöé                    Γöé statements.              Γöé
  6784. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6785. Γöé If Button Unchecked          Γöé Determines if the button is unchecked Γöé
  6786. Γöé                    Γöé and executes one or more code blocks  Γöé
  6787. Γöé                    Γöé if it is.  If more than one code    Γöé
  6788. Γöé                    Γöé block is to be executed, ensure that  Γöé
  6789. Γöé                    Γöé they are delimited by DO and END    Γöé
  6790. Γöé                    Γöé statements.              Γöé
  6791. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6792. Table 12. Button Functions
  6793.  
  6794.  
  6795. ΓòÉΓòÉΓòÉ 25.3. Color Functions ΓòÉΓòÉΓòÉ
  6796.  
  6797. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6798. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6799. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6800. Γöé Set Control Color (Background)    Γöé Sets the control's background color.  Γöé
  6801. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6802. Γöé Set Control Color (Foreground)    Γöé Sets the control's foreground color.  Γöé
  6803. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6804. Table 13. Color Functions
  6805.  
  6806.  
  6807. ΓòÉΓòÉΓòÉ 25.4. DLL Functions ΓòÉΓòÉΓòÉ
  6808.  
  6809. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6810. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6811. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6812. Γöé Create A Child Window from a DLL   Γöé Call and create a child window     Γöé
  6813. Γöé                    Γöé defined in a PL/I for OS/2 Toolkit   Γöé
  6814. Γöé                    Γöé DLL project.  The parent window will  Γöé
  6815. Γöé                    Γöé be the window from which the code   Γöé
  6816. Γöé                    Γöé block is called.            Γöé
  6817. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6818. Γöé Create A Window from a DLL      Γöé Call and create a window defined in a Γöé
  6819. Γöé                    Γöé PL/I for OS/2 Toolkit DLL project.   Γöé
  6820. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6821. Γöé DLL Export Variable          Γöé Define a variable for export from a  Γöé
  6822. Γöé                    Γöé DLL project.  This code block creates Γöé
  6823. Γöé                    Γöé a variable which may be referenced in Γöé
  6824. Γöé                    Γöé a .EXE by the "Import Variable from  Γöé
  6825. Γöé                    Γöé DLL" code block.  Use this function  Γöé
  6826. Γöé                    Γöé within a DLL project only.       Γöé
  6827. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6828. Γöé Dynamically Call a DLL Dialog     Γöé The DLL containing the dialog is    Γöé
  6829. Γöé                    Γöé loaded at the point in time when the  Γöé
  6830. Γöé                    Γöé dialog is loaded; otherwise, the DLL  Γöé
  6831. Γöé                    Γöé is loaded when the .EXE is loaded.   Γöé
  6832. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6833. Γöé Import Variable from DLL       Γöé This code block references a variable Γöé
  6834. Γöé                    Γöé declared in a DLL using the "DLL    Γöé
  6835. Γöé                    Γöé Export Variable" code block.      Γöé
  6836. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6837. Γöé Load A Dialog from a DLL       Γöé Loads a modal dialog from a PL/I for  Γöé
  6838. Γöé                    Γöé OS/2 Toolkit DLL project.       Γöé
  6839. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6840. Γöé Load A Modeless Dialog from a DLL   Γöé Load a modeless dialog from a PL/I   Γöé
  6841. Γöé                    Γöé for OS/2 Toolkit DLL project.     Γöé
  6842. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6843. Table 14. DLL Functions
  6844.  
  6845.  
  6846. ΓòÉΓòÉΓòÉ 25.5. DOS Functions ΓòÉΓòÉΓòÉ
  6847.  
  6848. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6849. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6850. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6851. Γöé DosExit                Γöé Exits the program using the "DosExit" Γöé
  6852. Γöé                    Γöé call.                 Γöé
  6853. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6854. Γöé Get Pathname of Work Dir       Γöé Returns the pathname of the current  Γöé
  6855. Γöé                    Γöé directory.               Γöé
  6856. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6857. Table 15. DOS Functions
  6858.  
  6859.  
  6860. ΓòÉΓòÉΓòÉ 25.6. Entry Field Functions ΓòÉΓòÉΓòÉ
  6861.  
  6862. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6863. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6864. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6865. Γöé Delete Entryfield Text        Γöé Allows you to delete the contents of  Γöé
  6866. Γöé                    Γöé an entry field.            Γöé
  6867. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6868. Γöé Read Entry Field (32)         Γöé Reads the contents of an entry field  Γöé
  6869. Γöé                    Γöé that has a maximum size of 32 charac- Γöé
  6870. Γöé                    Γöé ters into a variable.         Γöé
  6871. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6872. Γöé Read Entry Field           Γöé Reads the contents of an entry field  Γöé
  6873. Γöé                    Γöé into a variable.            Γöé
  6874. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6875. Γöé Set Entryfield Read-Only       Γöé Allows you to make an entry field   Γöé
  6876. Γöé                    Γöé read-only.               Γöé
  6877. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6878. Γöé Set Entryfield Text          Γöé Allows you to set the entry field   Γöé
  6879. Γöé                    Γöé text.                 Γöé
  6880. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6881. Table 16. Entry Field Functions
  6882.  
  6883.  
  6884. ΓòÉΓòÉΓòÉ 25.7. Font Functions ΓòÉΓòÉΓòÉ
  6885.  
  6886. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6887. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6888. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6889. Γöé Get Available Fonts into Listbox   Γöé Gets the list of available fonts and  Γöé
  6890. Γöé                    Γöé displays them in a list box.      Γöé
  6891. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6892. Γöé Set Font of Control from Variable   Γöé Sets the font of a control from a   Γöé
  6893. Γöé                    Γöé font variable.             Γöé
  6894. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6895. Γöé Set Font of Entry Field from Vari-  Γöé Sets the font of an entry field from  Γöé
  6896. Γöé able                 Γöé a font variable.  A valid font name  Γöé
  6897. Γöé                    Γöé begins with a point size, such as   Γöé
  6898. Γöé                    Γöé 14.Tms Rmn.              Γöé
  6899. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6900. Γöé Set Font of Listbox from Variable   Γöé Sets the font of a list box from a   Γöé
  6901. Γöé                    Γöé font variable.  A valid font name   Γöé
  6902. Γöé                    Γöé begins with a point size, such as   Γöé
  6903. Γöé                    Γöé 14.Tms Rmn.              Γöé
  6904. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6905. Table 17. Font Functions
  6906.  
  6907.  
  6908. ΓòÉΓòÉΓòÉ 25.8. Help Manager Functions ΓòÉΓòÉΓòÉ
  6909.  
  6910. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6911. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6912. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6913. Γöé Initialize IPF/2           Γöé Initializes IPF (this code block is  Γöé
  6914. Γöé                    Γöé required for on-line help).  Add this Γöé
  6915. Γöé                    Γöé code block after the SET_WINDOW_POS  Γöé
  6916. Γöé                    Γöé window message within the main links. Γöé
  6917. Γöé                    Γöé The main links are found when the   Γöé
  6918. Γöé                    Γöé links icon is dropped on the project  Γöé
  6919. Γöé                    Γöé window.                Γöé
  6920. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6921. Γöé Show Help for Help          Γöé Displays help for the selected item.  Γöé
  6922. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6923. Table 18. Help Manager Functions
  6924.  
  6925.  
  6926. ΓòÉΓòÉΓòÉ 25.9. List Box Functions ΓòÉΓòÉΓòÉ
  6927.  
  6928. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6929. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  6930. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6931. Γöé Add Entry Field Contents to Listbox  Γöé Adds the contents of an entry field  Γöé
  6932. Γöé                    Γöé into a list box.            Γöé
  6933. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6934. Γöé Clear Listbox             Γöé Deletes all the items from a list   Γöé
  6935. Γöé                    Γöé box.                  Γöé
  6936. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6937. Γöé Copy Selected Listbox Item to Entry  Γöé Copies the selected list box item   Γöé
  6938. Γöé Field                 Γöé into an entry field.          Γöé
  6939. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6940. Γöé Copy sitemIndex Listbox Item to    Γöé Queries the selected list box item,  Γöé
  6941. Γöé szstr                 Γöé which is stored in the variable    Γöé
  6942. Γöé                    Γöé sitemIndex and copies its text into  Γöé
  6943. Γöé                    Γöé the local variable szstr.  The vari-  Γöé
  6944. Γöé                    Γöé able is automatically declared for   Γöé
  6945. Γöé                    Γöé you as char(256) varyingz.       Γöé
  6946. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6947. Γöé Delete All Selected Listbox Items   Γöé Deletes from a list box all the    Γöé
  6948. Γöé                    Γöé selected items.            Γöé
  6949. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6950. Γöé Delete Listbox Item(sitemIndex)    Γöé Deletes a list box item, which is   Γöé
  6951. Γöé                    Γöé referenced by the variable       Γöé
  6952. Γöé                    Γöé sitemIndex.              Γöé
  6953. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6954. Γöé Deselect All Listbox Items      Γöé Deselect all items in a list box.   Γöé
  6955. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6956. Γöé DeSelect Listbox Item         Γöé Deselects an item in a list box. The  Γöé
  6957. Γöé                    Γöé first item index is 0.         Γöé
  6958. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6959. Γöé Display Directory           Γöé Displays the current directory in a  Γöé
  6960. Γöé                    Γöé list box.               Γöé
  6961. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6962. Γöé Display Specific Directory      Γöé Displays the specified directory    Γöé
  6963. Γöé                    Γöé within a list box.           Γöé
  6964. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6965. Γöé Do While (sitemIndex ╨║= LIT_NONE);  Γöé Allows you to enter any code if the  Γöé
  6966. Γöé ANYCODE                Γöé variable sitemIndex does not refer-  Γöé
  6967. Γöé                    Γöé ence an item in the list box.     Γöé
  6968. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6969. Γöé Dynamic Search of Listbox from Entry Γöé Dynamically searches a list box for  Γöé
  6970. Γöé Field                 Γöé the text entered into an entry field. Γöé
  6971. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6972. Γöé Dynamic Search of Listbox from Vari- Γöé Dynamically searches a list box for  Γöé
  6973. Γöé able                 Γöé the value in the specified variable.  Γöé
  6974. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6975. Γöé Enable/Disable Button on Listbox   Γöé Changes the selection status of a   Γöé
  6976. Γöé Selection               Γöé button control when any list box item Γöé
  6977. Γöé                    Γöé is selected.              Γöé
  6978. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6979. Γöé Enter Text into Listbox in Ascending Γöé Sorts the items in a list box in    Γöé
  6980. Γöé Order                 Γöé ascending order according to when   Γöé
  6981. Γöé                    Γöé they were entered.           Γöé
  6982. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6983. Γöé Enter Text into Listbox in      Γöé Sorts the items in a list box in    Γöé
  6984. Γöé Descending Order           Γöé descending order according to when   Γöé
  6985. Γöé                    Γöé they were entered.           Γöé
  6986. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6987. Γöé If sitemIndex = LIT_NONE then     Γöé Allows you to enter any code if the  Γöé
  6988. Γöé ANYCODE                Γöé variable sitemIndex does not refer-  Γöé
  6989. Γöé                    Γöé ence an item in the list box.     Γöé
  6990. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6991. Γöé Read Listbox into Variable when Item Γöé Read a list box item into a variable  Γöé
  6992. Γöé Selected               Γöé when the item is selected.       Γöé
  6993. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6994. Γöé Replace Selected Listbox Item with  Γöé Replaces a selected list box item   Γöé
  6995. Γöé Entry Field Contents         Γöé with the contents of an entry field.  Γöé
  6996. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6997. Γöé Select All Listbox Items       Γöé Select all the items in a list box.  Γöé
  6998. Γöé                    Γöé Note that you must select       Γöé
  6999. Γöé                    Γöé LS_MULTIPLESEL.            Γöé
  7000. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7001. Γöé Select Listbox Item          Γöé Selects an item in a list box. The   Γöé
  7002. Γöé                    Γöé first item index is 0.         Γöé
  7003. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7004. Γöé Set Listbox Text           Γöé Inserts an item into a list box    Γöé
  7005. Γöé                    Γöé control at the end of the list.    Γöé
  7006. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7007. Γöé Set Listbox Text from Variable    Γöé Add the contents of a variable to the Γöé
  7008. Γöé                    Γöé end of the list.            Γöé
  7009. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7010. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7011. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7012. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7013. Γöé Set sitemIndex to First Selected   Γöé Sets the variable sitemIndex to ref-  Γöé
  7014. Γöé Listbox Item             Γöé erence the first selected item within Γöé
  7015. Γöé                    Γöé a list box.              Γöé
  7016. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7017. Γöé Set sitemIndex to Next Selected    Γöé Sets the variable sitemIndex to ref-  Γöé
  7018. Γöé Listbox Item             Γöé erence the value of the next selected Γöé
  7019. Γöé                    Γöé item within a list box.        Γöé
  7020. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7021. Γöé Sort a Listbox in Ascending Order   Γöé Sorts the contents of a list box in  Γöé
  7022. Γöé                    Γöé ascending order.            Γöé
  7023. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7024. Γöé Sort a Listbox in Descending Order  Γöé Sorts the contents of a list box in  Γöé
  7025. Γöé                    Γöé descending order.           Γöé
  7026. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7027. Γöé Start Application from Listbox Entry Γöé Start an application from an entry   Γöé
  7028. Γöé                    Γöé selected within a list box.      Γöé
  7029. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7030. Table 19. List Box Functions
  7031.  
  7032.  
  7033. ΓòÉΓòÉΓòÉ 25.10. Menu Functions ΓòÉΓòÉΓòÉ
  7034.  
  7035. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7036. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7037. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7038. Γöé Check a Menu             Γöé Adds a check mark next to a menu item Γöé
  7039. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7040. Γöé UnCheck a Menu            Γöé Removes a check mark from a menu item Γöé
  7041. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7042. Γöé Enable a Menu             Γöé Enables a menu item, making it avail- Γöé
  7043. Γöé                    Γöé able for selection           Γöé
  7044. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7045. Γöé Disable a Menu            Γöé Disables a menu item, making it una-  Γöé
  7046. Γöé                    Γöé vailable for selection         Γöé
  7047. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7048. Γöé Highlight a Menu           Γöé Highlights a menu item         Γöé
  7049. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7050. Γöé UnHighlight a Menu          Γöé Turns off the highlight attribute for Γöé
  7051. Γöé                    Γöé a menu item              Γöé
  7052. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7053. Table 20. Menu Functions
  7054.  
  7055.  
  7056. ΓòÉΓòÉΓòÉ 25.11. Message Box Functions ΓòÉΓòÉΓòÉ
  7057.  
  7058. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7059. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7060. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7061. Γöé ADD When MBID_*:           Γöé Allows you to take action based on   Γöé
  7062. Γöé                    Γöé the result of the Message Box.  To be Γöé
  7063. Γöé                    Γöé used in conjunction with "SELECT (   Γöé
  7064. Γöé                    Γöé UsResponse )" and "END SELECT".    Γöé
  7065. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7066. Γöé END SELECT              Γöé Contains the default part of a SELECT Γöé
  7067. Γöé                    Γöé statement.               Γöé
  7068. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7069. Γöé If ( usResponse = MBID_* ) ANYCODE  Γöé Allows you to specify action to be   Γöé
  7070. Γöé                    Γöé taken based on the result of the    Γöé
  7071. Γöé                    Γöé Message Box.              Γöé
  7072. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7073. Γöé Message Box              Γöé Displays a message box and returns   Γöé
  7074. Γöé                    Γöé the result in the variable       Γöé
  7075. Γöé                    Γöé usResponse.              Γöé
  7076. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7077. Γöé Message Box (dialog)         Γöé Displays a message box and returns   Γöé
  7078. Γöé                    Γöé the result in the variable       Γöé
  7079. Γöé                    Γöé usResponse.  Use this code block    Γöé
  7080. Γöé                    Γöé within a dialog box.          Γöé
  7081. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7082. Γöé Simple Exclamation/Enter Message Box Γöé Displays a simple message box with an Γöé
  7083. Γöé                    Γöé ENTER button.             Γöé
  7084. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7085. Γöé SELECT ( usResponse )         Γöé Allows you to specify action to be   Γöé
  7086. Γöé                    Γöé taken based on the result of the    Γöé
  7087. Γöé                    Γöé Message Box.  To be used in conjunc-  Γöé
  7088. Γöé                    Γöé tion with "ADD When MBID_*:" and "END Γöé
  7089. Γöé                    Γöé SELECT".                Γöé
  7090. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7091. Table 21. Message Box Functions
  7092.  
  7093.  
  7094. ΓòÉΓòÉΓòÉ 25.12. Multi-Line Entry Field Functions ΓòÉΓòÉΓòÉ
  7095.  
  7096. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7097. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7098. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7099. Γöé Clear Current Text Selection     Γöé Deletes the selected text within a   Γöé
  7100. Γöé                    Γöé multi-line entry field.        Γöé
  7101. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7102. Γöé Clear MLE Text            Γöé Deletes all text from the MLE.     Γöé
  7103. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7104. Γöé Copy Current Selection to Clipboard  Γöé Copies the selected text from a    Γöé
  7105. Γöé                    Γöé multi-line entry field to the clip-  Γöé
  7106. Γöé                    Γöé board.                 Γöé
  7107. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7108. Γöé Copy Selection to Clipboard and    Γöé Copies the selected text from a    Γöé
  7109. Γöé Delete                Γöé multi-line entry field to the clip-  Γöé
  7110. Γöé                    Γöé board and deletes it.         Γöé
  7111. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7112. Γöé Paste Current Selection from Clip-  Γöé Overwrites the selected text with   Γöé
  7113. Γöé board                 Γöé text from the clipboard.        Γöé
  7114. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7115. Γöé Set MLE Read-Only Mode        Γöé Sets a multi-line entry field to be a Γöé
  7116. Γöé                    Γöé read-only field.            Γöé
  7117. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7118. Γöé Set MLE Read/Write Mode        Γöé Sets a multi-line entry field to be  Γöé
  7119. Γöé                    Γöé in read/write mode.          Γöé
  7120. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7121. Γöé Set MLE Text from String       Γöé Inserts text in a multi-line entry   Γöé
  7122. Γöé                    Γöé field.  If text is selected within   Γöé
  7123. Γöé                    Γöé the entry field, it is replaced by   Γöé
  7124. Γöé                    Γöé the string; otherwise, the string is  Γöé
  7125. Γöé                    Γöé inserted in the entry field.      Γöé
  7126. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7127. Γöé Set MLE Text from Variable      Γöé Inserts character data identified by  Γöé
  7128. Γöé                    Γöé the variable in a multi-line entry   Γöé
  7129. Γöé                    Γöé field.  If text is selected within   Γöé
  7130. Γöé                    Γöé the entry field, it is replaced by   Γöé
  7131. Γöé                    Γöé the string; otherwise, the string is  Γöé
  7132. Γöé                    Γöé inserted in the entry field.      Γöé
  7133. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7134. Γöé Undo Last MLE Operation        Γöé Undoes the last operation on the    Γöé
  7135. Γöé                    Γöé multi-line entry field.        Γöé
  7136. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7137. Table 22. Multi-Line Entry Field Functions
  7138.  
  7139.  
  7140. ΓòÉΓòÉΓòÉ 25.13. PL/I Code Functions ΓòÉΓòÉΓòÉ
  7141.  
  7142. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7143. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7144. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7145. Γöé Any Code               Γöé Allows you to write or copy code from Γöé
  7146. Γöé                    Γöé another file into your application.  Γöé
  7147. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7148. Γöé Break Statement            Γöé Adds a BREAK statement.        Γöé
  7149. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7150. Γöé Char Variable             Γöé Declares a character string of speci- Γöé
  7151. Γöé                    Γöé fied length.              Γöé
  7152. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7153. Γöé DO Statement             Γöé Adds a DO statement.          Γöé
  7154. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7155. Γöé END Statement             Γöé Adds an END statement.         Γöé
  7156. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7157. Γöé Else Statement            Γöé Adds an ELSE  statement.        Γöé
  7158. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7159. Γöé Global Char Variable         Γöé Declares a global char varyingz vari- Γöé
  7160. Γöé                    Γöé able.                 Γöé
  7161. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7162. Γöé Global fixed bin(16) unsigned     Γöé Declares a global fixed bin(16)    Γöé
  7163. Γöé                    Γöé unsigned variable and initializes it  Γöé
  7164. Γöé                    Γöé to zero.                Γöé
  7165. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7166. Γöé Global fixed bin(31) unsigned     Γöé Declares a global fixed bin(31)    Γöé
  7167. Γöé                    Γöé unsigned variable and initializes it  Γöé
  7168. Γöé                    Γöé to zero.                Γöé
  7169. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7170. Γöé Global Pointer Variable        Γöé Declares a global pointer variable.  Γöé
  7171. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7172. Γöé If Statement             Γöé Adds an IF statement.         Γöé
  7173. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7174. Γöé Local Char Variable          Γöé Declares a local char varyingz vari-  Γöé
  7175. Γöé                    Γöé able.                 Γöé
  7176. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7177. Γöé Local Fixed Bin(16) Unsigned     Γöé Declares a local fixed bin(16)     Γöé
  7178. Γöé                    Γöé unsigned variable and initializes it  Γöé
  7179. Γöé                    Γöé to zero.                Γöé
  7180. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7181. Γöé Local Fixed Bin(31) Unsigned     Γöé Declares a local fixed bin(31)     Γöé
  7182. Γöé                    Γöé unsigned variable and initializes it  Γöé
  7183. Γöé                    Γöé to zero.                Γöé
  7184. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7185. Γöé Local Pointer Variable        Γöé Declares a local pointer variable.   Γöé
  7186. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7187. Table 23. PL/I Code Functions
  7188.  
  7189.  
  7190. ΓòÉΓòÉΓòÉ 25.14. Pop-Up Menu Functions ΓòÉΓòÉΓòÉ
  7191.  
  7192. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7193. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7194. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7195. Γöé Display Pop-up Menu          Γöé Displays a pop-up menu.        Γöé
  7196. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7197. Table 24. Pop-Up Menu Functions
  7198.  
  7199.  
  7200. ΓòÉΓòÉΓòÉ 25.15. Slider Control Functions ΓòÉΓòÉΓòÉ
  7201.  
  7202. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7203. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7204. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7205. Γöé Set Shaft Dimensions         Γöé Sets breadth of shaft.  Query Shaft  Γöé
  7206. Γöé                    Γöé Dimensions returns two values.  Only  Γöé
  7207. Γöé                    Γöé the breadth can be adjusted.      Γöé
  7208. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7209. Γöé Set Shaft Position          Γöé Sets the x- and y-position of the   Γöé
  7210. Γöé                    Γöé lower-left corner of the slider shaft Γöé
  7211. Γöé                    Γöé in the slider window.         Γöé
  7212. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7213. Γöé Set Arm Dimensions          Γöé Sets the width and height of the    Γöé
  7214. Γöé                    Γöé slider arm.              Γöé
  7215. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7216. Γöé Set Arm Position (Pixels)       Γöé Sets the position of the slider in   Γöé
  7217. Γöé                    Γöé pixels.                Γöé
  7218. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7219. Γöé Set Arm Position (Increment)     Γöé Sets the position of the slider as an Γöé
  7220. Γöé                    Γöé increment position.          Γöé
  7221. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7222. Γöé Query Shaft Dimensions        Γöé Queries for the length and the     Γöé
  7223. Γöé                    Γöé breadth of the slider shaft.      Γöé
  7224. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7225. Γöé Query Shaft Position         Γöé Queries for the x- and y-position of  Γöé
  7226. Γöé                    Γöé the lower-left corner of the slider  Γöé
  7227. Γöé                    Γöé shaft.                 Γöé
  7228. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7229. Γöé Query Arm Dimensions         Γöé Queries for the length and breadth of Γöé
  7230. Γöé                    Γöé the slider arm.            Γöé
  7231. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7232. Γöé Query Arm Position (Pixels)      Γöé Queries for the position of the    Γöé
  7233. Γöé                    Γöé slider arm.              Γöé
  7234. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7235. Γöé Query Arm Position (Increment)    Γöé Queries for the position of the    Γöé
  7236. Γöé                    Γöé slider arm.              Γöé
  7237. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7238. Γöé Add Detent              Γöé Places a detent along the slider    Γöé
  7239. Γöé                    Γöé shaft at the specified number of    Γöé
  7240. Γöé                    Γöé pixels from home.           Γöé
  7241. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7242. Γöé Delete Detent             Γöé Removes a previously specified     Γöé
  7243. Γöé                    Γöé detent.                Γöé
  7244. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7245. Γöé Query Detent Position         Γöé Queries for the current position of a Γöé
  7246. Γöé                    Γöé detent.                Γöé
  7247. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7248. Γöé Set Scale Text            Γöé Sets text above tick mark.  The text  Γöé
  7249. Γöé                    Γöé is centered on the tick mark.     Γöé
  7250. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7251. Γöé Query Scale Text           Γöé Queries for the text associated with  Γöé
  7252. Γöé                    Γöé a tick mark and copies it into the   Γöé
  7253. Γöé                    Γöé specified variable.          Γöé
  7254. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7255. Γöé Set Tick Size             Γöé Sets the size of a tick mark.     Γöé
  7256. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7257. Γöé Set All Tick Sizes          Γöé Sets the size of all tick marks.    Γöé
  7258. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7259. Γöé Query Tick Size            Γöé Queries for the size of a tick mark.  Γöé
  7260. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7261. Γöé Query Tick Pos            Γöé Queries for the position of a tick   Γöé
  7262. Γöé                    Γöé mark.                 Γöé
  7263. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7264. Table 25. Slider Control Functions
  7265.  
  7266.  
  7267. ΓòÉΓòÉΓòÉ 25.16. Sound Functions ΓòÉΓòÉΓòÉ
  7268.  
  7269. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7270. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7271. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7272. Γöé Make Another High Beep Noise     Γöé Sounds a very high beep.        Γöé
  7273. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7274. Γöé Make a High Beep Noise        Γöé Sounds a high beep.          Γöé
  7275. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7276. Γöé Make a Low Beep Noise         Γöé Sounds a low beep.           Γöé
  7277. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7278. Table 26. Sound Functions
  7279.  
  7280.  
  7281. ΓòÉΓòÉΓòÉ 25.17. Spin Button Functions ΓòÉΓòÉΓòÉ
  7282.  
  7283. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7284. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7285. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7286. Γöé Query Spin Button Text        Γöé Queries the current value displayed  Γöé
  7287. Γöé                    Γöé on the specified spin button.     Γöé
  7288. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7289. Γöé Spin Set Array            Γöé Sets the range of numeric values    Γöé
  7290. Γöé                    Γöé associated with the spin button to be Γöé
  7291. Γöé                    Γöé those defined for this control in the Γöé
  7292. Γöé                    Γöé spin button controls dialog box.    Γöé
  7293. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7294. Γöé Spin Set Initial Item         Γöé Sets the initial value for the     Γöé
  7295. Γöé                    Γöé selected spin button. It is midway   Γöé
  7296. Γöé                    Γöé through the range of numeric values  Γöé
  7297. Γöé                    Γöé defined for this control in the spin  Γöé
  7298. Γöé                    Γöé button controls dialog box.      Γöé
  7299. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7300. Table 27. Spin Button Functions
  7301.  
  7302.  
  7303. ΓòÉΓòÉΓòÉ 25.18. SQL Functions ΓòÉΓòÉΓòÉ
  7304.  
  7305. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7306. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7307. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7308. Γöé Any SQL code             Γöé Allows you to write or copy SQL code  Γöé
  7309. Γöé                    Γöé from another file into your applica-  Γöé
  7310. Γöé                    Γöé tion.                 Γöé
  7311. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7312. Γöé Begin Host Var            Γöé Declares all SQL host variables in   Γöé
  7313. Γöé                    Γöé this section.             Γöé
  7314. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7315. Γöé Enter SQL               Γöé Helps to build an SQL statement.    Γöé
  7316. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7317. Γöé Include SQLCA Structure        Γöé Includes the SQLCA structure.     Γöé
  7318. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7319. Γöé Include SQLDA Structure        Γöé Includes the SQLDA structure.     Γöé
  7320. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7321. Γöé PL/I *PROCESS PP(SQL         Γöé Invokes the PL/I SQL preprocessor.   Γöé
  7322. Γöé                    Γöé Place it ahead of the 'HASH_DEFINES'  Γöé
  7323. Γöé                    Γöé Main Links section.          Γöé
  7324. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7325. Γöé Query SQLCA Return Code        Γöé Queries the SQL variable SQLCODE with Γöé
  7326. Γöé                    Γöé an IF statement.  Requires an END   Γöé
  7327. Γöé                    Γöé statement after the intervening code. Γöé
  7328. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7329. Γöé SQL Commit              Γöé Ends a unit of work and commits the  Γöé
  7330. Γöé                    Γöé database changes that were made by   Γöé
  7331. Γöé                    Γöé that unit of work.           Γöé
  7332. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7333. Γöé SQL Connect to Database        Γöé Connects the application process to  Γöé
  7334. Γöé                    Γöé the database.             Γöé
  7335. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7336. Γöé SQL Connect Reset           Γöé Disconnects the application process  Γöé
  7337. Γöé                    Γöé from the current database.       Γöé
  7338. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7339. Γöé SQL DECLARE CURSOR Statement     Γöé Defines a cursor for a prepared    Γöé
  7340. Γöé                    Γöé statement.               Γöé
  7341. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7342. Γöé SQL CLOSE CURSOR           Γöé Closes the named cursor.        Γöé
  7343. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7344. Γöé SQL Display Error Codes        Γöé Displays the SQL error codes to    Γöé
  7345. Γöé                    Γöé SYSPRINT (for debugging purposes).   Γöé
  7346. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7347. Γöé SQL_ERROR Block            Γöé Used in conjunction with SQL Whenever Γöé
  7348. Γöé                    Γöé statement for SQL error handling.   Γöé
  7349. Γöé                    Γöé Displays the values of the SQL error  Γöé
  7350. Γöé                    Γöé variables when an error condition is  Γöé
  7351. Γöé                    Γöé raised.                Γöé
  7352. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7353. Γöé SQL_EXIT               Γöé Used in conjunction with SQL_ERROR   Γöé
  7354. Γöé                    Γöé block for SQL error handling.  Causes Γöé
  7355. Γöé                    Γöé the next sequential instruction of   Γöé
  7356. Γöé                    Γöé the source program to be executed.   Γöé
  7357. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7358. Γöé SQL FETCH               Γöé Positions a cursor on the next row of Γöé
  7359. Γöé                    Γöé its result table and assigns the    Γöé
  7360. Γöé                    Γöé values of that row to host variables. Γöé
  7361. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7362. Γöé SQL Open Cursor            Γöé Opens a cursor so that it can be used Γöé
  7363. Γöé                    Γöé to fetch rows from the result table.  Γöé
  7364. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7365. Γöé SQL Open Cursor Using Host Variables Γöé Opens a cursor so that it can be used Γöé
  7366. Γöé                    Γöé to fetch rows from the result table.  Γöé
  7367. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7368. Γöé SQL PREPARE              Γöé Dynamically prepares an SQL statement Γöé
  7369. Γöé                    Γöé for execution.             Γöé
  7370. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7371. Γöé SQL Rollback Statement        Γöé Ends a unit of work and backs out the Γöé
  7372. Γöé                    Γöé database changes that were made by   Γöé
  7373. Γöé                    Γöé that unit of work.           Γöé
  7374. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7375. Γöé SQL Whenever             Γöé Used in conjunction with SQL_ERROR   Γöé
  7376. Γöé                    Γöé block for SQL error handling.  Speci- Γöé
  7377. Γöé                    Γöé fies the action to be taken when the  Γöé
  7378. Γöé                    Γöé SQLERROR error condition is raised.  Γöé
  7379. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7380. Γöé Start Database            Γöé Starts the database manager through  Γöé
  7381. Γöé                    Γöé the SQLGSTAR API call.         Γöé
  7382. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7383. Γöé Stop Database             Γöé Stops the database manager through   Γöé
  7384. Γöé                    Γöé the SQLGSTDM API call.         Γöé
  7385. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7386. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7387. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7388. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7389. Γöé Until SQLRC is not OK         Γöé Performs a loop until SQLCODE returns Γöé
  7390. Γöé                    Γöé a 'not found' condition.  Requires an Γöé
  7391. Γöé                    Γöé END statement after the intervening  Γöé
  7392. Γöé                    Γöé code.                 Γöé
  7393. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7394. Table 28. SQL Functions
  7395.  
  7396.  
  7397. ΓòÉΓòÉΓòÉ 25.19. String Functions ΓòÉΓòÉΓòÉ
  7398.  
  7399. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7400. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7401. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7402. Γöé Concatenate Str2 to Str1       Γöé Appends the second string to the    Γöé
  7403. Γöé                    Γöé first string.             Γöé
  7404. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7405. Γöé Copy Str2 to Str1           Γöé Copies Str2 to Str1.          Γöé
  7406. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7407. Γöé Declare String Variable        Γöé Declares a character varyingz string  Γöé
  7408. Γöé                    Γöé variable type and defines the length  Γöé
  7409. Γöé                    Γöé of the variable.            Γöé
  7410. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7411. Γöé If Str1 Equal to Str2 ANYCODE     Γöé Checks if the first string variable  Γöé
  7412. Γöé                    Γöé is equal to the second.  If they are  Γöé
  7413. Γöé                    Γöé equal, executes ANYCODE.        Γöé
  7414. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7415. Γöé If Str1 Not Equal to Str2 ANYCODE   Γöé Checks if strings are not equal.  If  Γöé
  7416. Γöé                    Γöé they are NOT equal, executes ANYCODE. Γöé
  7417. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7418. Γöé If Str1 Less than Str2 ANYCODE    Γöé Checks if the first string variable  Γöé
  7419. Γöé                    Γöé is less than the second.  If this   Γöé
  7420. Γöé                    Γöé condition is fulfilled, executes    Γöé
  7421. Γöé                    Γöé ANYCODE.                Γöé
  7422. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7423. Γöé If Str1 Greater than Str2 ANYCODE   Γöé Checks if the first string variable  Γöé
  7424. Γöé                    Γöé is greater than the second.  If this  Γöé
  7425. Γöé                    Γöé condition is fulfilled, executes    Γöé
  7426. Γöé                    Γöé ANYCODE.                Γöé
  7427. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7428. Γöé If Str1 CaseIns Equal to Str2     Γöé Checks if the first string variable  Γöé
  7429. Γöé ANYCODE                Γöé is equal to the second regardless of  Γöé
  7430. Γöé                    Γöé case.  If this condition is ful-    Γöé
  7431. Γöé                    Γöé filled, executes ANYCODE.       Γöé
  7432. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7433. Γöé If Str1 CaseIns Not Equal to Str2   Γöé Checks if the first string variable  Γöé
  7434. Γöé ANYCODE                Γöé is NOT equal to the second regardless Γöé
  7435. Γöé                    Γöé of case.  If this condition is ful-  Γöé
  7436. Γöé                    Γöé filled, executes ANYCODE.       Γöé
  7437. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7438. Γöé If Str1 CaseIns Less than Str2    Γöé Checks if the first string variable  Γöé
  7439. Γöé ANYCODE                Γöé is less than the second regardless of Γöé
  7440. Γöé                    Γöé case.  If this condition is ful-    Γöé
  7441. Γöé                    Γöé filled, executes any code.       Γöé
  7442. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7443. Γöé If Str1 CaseIns Greater than Str2   Γöé Checks if the first string variable  Γöé
  7444. Γöé ANYCODE                Γöé is greater than the second regardless Γöé
  7445. Γöé                    Γöé of case.  If this condition is ful-  Γöé
  7446. Γöé                    Γöé filled, executes ANYCODE.       Γöé
  7447. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7448. Γöé Set Str to Uppercase         Γöé Converts any lowercase letters in the Γöé
  7449. Γöé                    Γöé string to uppercase.  Other charac-  Γöé
  7450. Γöé                    Γöé ters are not affected.         Γöé
  7451. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7452. Table 29. String Functions
  7453.  
  7454.  
  7455. ΓòÉΓòÉΓòÉ 25.20. Tabbing Functions ΓòÉΓòÉΓòÉ
  7456.  
  7457. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7458. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7459. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7460. Γöé Do Group Tabbing           Γöé When added to a WM_CHAR message,    Γöé
  7461. Γöé                    Γöé allows the user to tab around the   Γöé
  7462. Γöé                    Γöé controls within a window.  This    Γöé
  7463. Γöé                    Γöé feature is automatically handled by  Γöé
  7464. Γöé                    Γöé PM for dialog boxes.          Γöé
  7465. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7466. Table 30. Tabbing Functions
  7467.  
  7468.  
  7469. ΓòÉΓòÉΓòÉ 25.21. Task Manager Functions ΓòÉΓòÉΓòÉ
  7470.  
  7471. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7472. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7473. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7474. Γöé Add Application to Tasklist      Γöé Adds an entry in the task list for   Γöé
  7475. Γöé                    Γöé this application.  If you  want your  Γöé
  7476. Γöé                    Γöé program name (for example, "app.exe") Γöé
  7477. Γöé                    Γöé to appear as the title, type NULL.   Γöé
  7478. Γöé                    Γöé Otherwise, type the application name  Γöé
  7479. Γöé                    Γöé in quotes or in a variable.      Γöé
  7480. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7481. Γöé Change Tasklist Entry Title      Γöé Changes an application's entry in the Γöé
  7482. Γöé                    Γöé task list. The application must have  Γöé
  7483. Γöé                    Γöé a task list entry before executing   Γöé
  7484. Γöé                    Γöé this code block.            Γöé
  7485. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7486. Γöé Remove Application Entry From     Γöé Removes an application's entry from  Γöé
  7487. Γöé Tasklist               Γöé the task list.  The application must  Γöé
  7488. Γöé                    Γöé have a task list entry before exe-   Γöé
  7489. Γöé                    Γöé cuting this code block.        Γöé
  7490. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7491. Table 31. Task Manager Functions
  7492.  
  7493.  
  7494. ΓòÉΓòÉΓòÉ 25.22. Thread Functions ΓòÉΓòÉΓòÉ
  7495.  
  7496. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7497. Γöé FUNCTION               Γöé DESCRIPTION              Γöé
  7498. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7499. Γöé Create A Thread            Γöé Creates a thread.           Γöé
  7500. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7501. Γöé Display Directory (thread)      Γöé Performs the Display Directory func-  Γöé
  7502. Γöé                    Γöé tion within the thread and displays  Γöé
  7503. Γöé                    Γöé the output (the resulting directo-   Γöé
  7504. Γöé                    Γöé ries) in a list box.          Γöé
  7505. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7506. Γöé Init Directory (thread)        Γöé Posts a message to the message queue  Γöé
  7507. Γöé                    Γöé of a thread.              Γöé
  7508. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7509. Γöé Kill Thread              Γöé Deletes the specified thread.     Γöé
  7510. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7511. Γöé Post Text Message to Thread      Γöé Posts the specified message to the   Γöé
  7512. Γöé                    Γöé thread's message queue.        Γöé
  7513. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7514. Table 32. Thread Functions
  7515.  
  7516.  
  7517. ΓòÉΓòÉΓòÉ 26. Creating Your Own Code Blocks ΓòÉΓòÉΓòÉ
  7518.  
  7519. When Visual PL/I generates the code for an application, the links you define 
  7520. between your windows, menus, and controls result in the calls to PM functions 
  7521. being included in the application code. Visual PL/I provides many code blocks 
  7522. for use in your PM application. However, you can also create your own code 
  7523. blocks and import them into Visual PL/I. This chapter explains how to create 
  7524. and use your own code blocks for inclusion in Visual PL/I applications. 
  7525.  
  7526.  
  7527. ΓòÉΓòÉΓòÉ 26.1. Where Code Block Information is Stored ΓòÉΓòÉΓòÉ
  7528.  
  7529. Code blocks supplied with Visual PL/I provide a range of frequently used 
  7530. functions or tasks. You can create additional code blocks for additional 
  7531. functions or tasks. You can include a user-written code block almost anywhere 
  7532. in the PL/I source code generated by Visual PL/I. 
  7533.  
  7534. Code blocks are stored in external files and are loaded either when Visual PL/I 
  7535. is initialized or while you are running Visual PL/I. 
  7536.  
  7537. Information about code blocks is held in the following files: 
  7538.  
  7539. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7540. Γöé Table 33. Code Block Files                          Γöé
  7541. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7542. Γöé FILE        Γöé DESCRIPTION                        Γöé
  7543. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7544. Γöé .PL file      Γöé Consists of a list file identifying the other files    Γöé
  7545. Γöé          Γöé (.PLO, .PLM, and .PLF), which contain code blocks and   Γöé
  7546. Γöé          Γöé information about them.                  Γöé
  7547. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7548. Γöé .PLC file     Γöé Header files that contain C definitions of identifiers.  Γöé
  7549. Γöé          Γöé They are added to the Visual PL/I list of system con-   Γöé
  7550. Γöé          Γöé stants.                          Γöé
  7551. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7552. Γöé .PLF file     Γöé Contains the source modules for the code blocks named in Γöé
  7553. Γöé          Γöé the CODE BLOCKS AVAILABLE list box in the LINKS FOR    Γöé
  7554. Γöé          Γöé PROJECT...  dialog box.  To include a code block in the  Γöé
  7555. Γöé          Γöé application, select its name from the list box.      Γöé
  7556. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7557. Γöé .PLM file     Γöé Contains the names that appear in the MODULE LIBRARY   Γöé
  7558. Γöé          Γöé list box within the LINKS dialog box and the names asso- Γöé
  7559. Γöé          Γöé ciated module and object files stored in the ┬╖PLF file  Γöé
  7560. Γöé          Γöé to be included, if selected.               Γöé
  7561. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7562. Γöé .PLO file     Γöé Contains a record consisting of the source and object   Γöé
  7563. Γöé          Γöé file names and the PL/I compiler options needed to    Γöé
  7564. Γöé          Γöé compile each code block in a project.           Γöé
  7565. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7566. Γöé .PLP file     Γöé Header files that contain PL/I definitions of identi-   Γöé
  7567. Γöé          Γöé fiers.  They are added to the Visual PL/I list of system Γöé
  7568. Γöé          Γöé constants.                        Γöé
  7569. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7570.  
  7571.  
  7572. ΓòÉΓòÉΓòÉ 26.2. Structure of Code Block Files ΓòÉΓòÉΓòÉ
  7573.  
  7574. The following sections define the structure of the files in which code block 
  7575. information is stored. 
  7576.  
  7577.  
  7578. ΓòÉΓòÉΓòÉ 26.2.1. Program Library File (.PL) ΓòÉΓòÉΓòÉ
  7579.  
  7580. The program library file contains groups of three lines. Each line has two 
  7581. components. The first is the file type (either module, objects, or functions) 
  7582. and is followed by the corresponding filename: 
  7583.  
  7584.  Module    filename.PLM 
  7585.  Objects   filename.PLO 
  7586.  Functions filename.PLF 
  7587.  Use blank lines to separate groups of file names. They are ignored by Visual 
  7588.  PL/I. 
  7589.  
  7590.  
  7591. ΓòÉΓòÉΓòÉ 26.2.2. C Constants File (.PLC) ΓòÉΓòÉΓòÉ
  7592.  
  7593. This file takes the form of a C file. For example, it contains multiple lines 
  7594. similar to the following example: 
  7595.  
  7596.  
  7597. Example of a C Constants File
  7598.  
  7599. #define WC_MYCONTROL 0x45
  7600.  
  7601.  
  7602. ΓòÉΓòÉΓòÉ 26.2.3. Function File (.PLF) ΓòÉΓòÉΓòÉ
  7603.  
  7604. The function file contains the code lines, code blocks, and comment lines, as 
  7605. described below. 
  7606.  
  7607.   1. Code lines: 
  7608.  
  7609.     o A .PLF file can contain one or multiple code lines. 
  7610.  
  7611.     o Each code line has up to four components, which you separate by one or 
  7612.       more spaces. The first three components must be present; the fourth is 
  7613.       optional. The components are in the following order: 
  7614.  
  7615.         a. The name of the object file that contains the function. 
  7616.         b. The function name. 
  7617.         c. The function's parameters. 
  7618.         d. A description of the function. This component is optional and can 
  7619.            contain spaces. 
  7620.  
  7621.       Example of a code line: 
  7622.  
  7623.               listfunc.obj DrawListbox (hwnd,msg,mp1,mp2) Draw listbox item
  7624.  
  7625.   2. Code blocks: 
  7626.  
  7627.      A code block consists of a PL/I source program: 
  7628.  
  7629.     o The first line of a code block contains: 
  7630.  
  7631.         a. The name of the object file 
  7632.         b. BEGIN 
  7633.         c. The description of the code block 
  7634.  
  7635.     o The second and following lines can be any valid PL/I source code. 
  7636.  
  7637.     o The last line in a code block must be an END statement. 
  7638.  
  7639.  
  7640.           ExampleofaCodeBlockENDStatement
  7641.  
  7642.           &&plicode.obj BEGIN END statement
  7643.           end;
  7644.           END
  7645.  
  7646.   3. Comment lines: 
  7647.  
  7648.      You can include comment lines in .PLF files that are recognized as such by 
  7649.      Visual PL/I, but which are not included in the source code output 
  7650.      generated by Visual PL/I. Such lines are identified by ┬╖* in positions 1 
  7651.      and 2 of the source line. 
  7652.  
  7653.  
  7654. ΓòÉΓòÉΓòÉ 26.2.3.1. Code Block Name Starting with && ΓòÉΓòÉΓòÉ
  7655.  
  7656. In the examples above, note that some code block names start with &&. An && 
  7657. prefix to the file name of a module description indicates that the module is 
  7658. only used internally by Visual PL/I and is not available for your use. 
  7659.  
  7660. Where && is prefixed to an object file name, no source code has been supplied 
  7661. for this code block, and the object module is supplied in only a precompiled 
  7662. and linkable form. In cases such as this, for example, &&lf.obj, there is no 
  7663. need to include the source file name or the compilation command line in order 
  7664. to compile the application. 
  7665.  
  7666.  
  7667. ΓòÉΓòÉΓòÉ 26.2.4. Module File (.PLM) ΓòÉΓòÉΓòÉ
  7668.  
  7669. The module file contains one item per line. The module description appears 
  7670. first, and is followed by the names of the object files that contain the code 
  7671. blocks. The object file names must be on lines indented by at least one space, 
  7672. as shown in the following example. 
  7673.  
  7674.  
  7675. Example of a Module Description and Corresponding Object Files
  7676.  
  7677.  Sound Functions
  7678.   beep.obj
  7679.  Drag And Drop
  7680.   dragdrop.obj
  7681.  
  7682. Use blank lines to separate groups of file names. They are ignored by Visual 
  7683. PL/I. 
  7684.  
  7685.  
  7686. ΓòÉΓòÉΓòÉ 26.2.5. Object File (.PLO) ΓòÉΓòÉΓòÉ
  7687.  
  7688. The object file has three parameters on each line. The first is the object 
  7689. name. The second is the name of the source file. The third is a text string 
  7690. representing the command for compiling the source file. 
  7691.  
  7692. Each object file named in the .PLO file must have a corresponding line in the 
  7693. .PLF file, as shown below. 
  7694.  
  7695.  
  7696. Example of an Object File
  7697.  
  7698.  dragdrop.obj dragdrop.pli PLI
  7699.  beep.obj beep.pli PLI
  7700.  listfunc.obj listfunc.pli PLI
  7701.  pmfuncs.obj pmfuncs.pli PLI
  7702.  spinclas.obj spinclas.pli PLI
  7703.  
  7704.  &&pm.obj
  7705.  &&menu.obj
  7706.  &&pmg2.obj
  7707.  &&lf.obj
  7708.  &&but.obj
  7709.  
  7710. Note:  This file must include an entry for each object file listed in its 
  7711. associated .PLF file. 
  7712.  
  7713. Use blank lines to separate lines into groups. They are ignored by Visual PL/I. 
  7714.  
  7715.  
  7716. ΓòÉΓòÉΓòÉ 26.2.6. PL/I Constants File (.PLP) ΓòÉΓòÉΓòÉ
  7717.  
  7718. This file takes the form of a PL/I file. For example, it contains multiple 
  7719. lines similar to the following example: 
  7720.  
  7721.  
  7722. Example of a PL/I Constants File
  7723.  
  7724. dcl WC_MYCONTROL fixed bin(15) value ('45' xn);
  7725.  
  7726.  
  7727. ΓòÉΓòÉΓòÉ 26.3. Creating Your Own Code Block-An Example ΓòÉΓòÉΓòÉ
  7728.  
  7729. This example shows you how to create a code block that allows you to set the 
  7730. text in the title bar of a window. The code block consists of four files: 
  7731.  
  7732.  o TITLEBAR.PL 
  7733.  o TITLEBAR.PLO 
  7734.  o TITLEBAR.PLM 
  7735.  o TITLEBAR.PLF 
  7736.  
  7737.  
  7738. ΓòÉΓòÉΓòÉ 26.3.1. TITLEBAR.PL File ΓòÉΓòÉΓòÉ
  7739.  
  7740. Example of a TITLEBAR.PL file contains the following: 
  7741.  
  7742.  
  7743. Example of a TITLEBAR.PL file
  7744.  
  7745.  Module    titlebar.plm
  7746.  Objects   titlebar.plo
  7747.  Functions titlebar.plf
  7748.  
  7749.  
  7750. ΓòÉΓòÉΓòÉ 26.3.2. TITLEBAR.PLO File ΓòÉΓòÉΓòÉ
  7751.  
  7752. Example of a TITLEBAR.PLO file contains the following: 
  7753.  
  7754.  
  7755. Example of a TITLEBAR.PLO file
  7756.  
  7757.   &&titlebar.obj
  7758.  
  7759.  
  7760. ΓòÉΓòÉΓòÉ 26.3.3. TITLEBAR.PLM File ΓòÉΓòÉΓòÉ
  7761.  
  7762. Example of a TITLEBAR.PLM File contains the name of the module that you select 
  7763. from the links dialog box in the Library list box. It represents the name of 
  7764. the code block that is called when this name is selected. 
  7765.  
  7766.  
  7767. Example of a TITLEBAR.PLM File
  7768.  
  7769.  TitleBar Functions
  7770.     &&titlebar.obj
  7771.  
  7772.  
  7773. ΓòÉΓòÉΓòÉ 26.3.4. TITLEBAR.PLF File ΓòÉΓòÉΓòÉ
  7774.  
  7775. Example of a TITLEBAR.PLF File contains the names of the associated source code 
  7776. that appears in the Code Block List list box within the Links dialog box. It is 
  7777. added to your program when you select it from this list. 
  7778.  
  7779.  
  7780. Example of a TITLEBAR.PLF File
  7781.  
  7782.  &&titlebar.obj BEGIN Set Titlebar Text
  7783.  .* Use this to set text in ....
  7784.   /* This code block sets the text in a window's titlebar */
  7785.  call WinSetWindowText(WINDOW HANDLE,
  7786.                        VARIABLE "Enter Titlebar Text in quotes.");
  7787.  END
  7788.  
  7789. In Example of a TITLEBAR.PLF File, the comment line identified by .* is visible 
  7790. whenever you view the code through Visual PL/I. However, it is excluded from 
  7791. the source code generated by Visual PL/I for the application. The code block 
  7792. name is prefixed with && in the .PLO, .PLM, and .PLF files. 
  7793.  
  7794.  
  7795. ΓòÉΓòÉΓòÉ 26.4. Inserting Variables into Code Blocks ΓòÉΓòÉΓòÉ
  7796.  
  7797. Visual PL/I allows a number of variables to be inserted into source code 
  7798. blocks. These variables control the output produced. 
  7799.  
  7800. When a code block is added to the project, it is checked for Visual PL/I's 
  7801. variables. Based on the variables present in the code block, Visual PL/I 
  7802. prompts you to select the appropriate parameter and then inserts it into the 
  7803. code block. 
  7804.  
  7805. Each variable type keyword has two components: 
  7806.  
  7807.  o Variable type 
  7808.  o Required attribute 
  7809.  
  7810.  Note:  Each variable keyword must be in uppercase in order to be parsed by 
  7811.  Visual PL/I. 
  7812.  
  7813.  
  7814. ΓòÉΓòÉΓòÉ 26.4.1. Specifying the Variable Type ΓòÉΓòÉΓòÉ
  7815.  
  7816. The variable type is one of the following, as shown in Variable Types in Code 
  7817. Blocks: 
  7818.  
  7819. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7820. Γöé VARIABLE TYPE     Γöé DESCRIPTION                      Γöé
  7821. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7822. Γöé BITMAP         Γöé Any bitmap on the currently selected window.     Γöé
  7823. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7824. Γöé CHECKBOXES       Γöé Selects more than one from a list of PM constants.  Γöé
  7825. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7826. Γöé CHILD         Γöé Any secondary window.                 Γöé
  7827. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7828. Γöé CONTROL        Γöé Any control on the currently selected window.     Γöé
  7829. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7830. Γöé DIALOG         Γöé Any dialog box.                    Γöé
  7831. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7832. Γöé DLLDIALOG       Γöé Selects a dialog from a DLL.             Γöé
  7833. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7834. Γöé DLLWINDOW       Γöé Selects a window from a DLL.             Γöé
  7835. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7836. Γöé DLLGLOBALS       Γöé Selects a global variable from a DLL.         Γöé
  7837. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7838. Γöé ICON          Γöé Any icon created on the currently selected window.  Γöé
  7839. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7840. Γöé KEYWORDSOFF      Γöé Disables the parser - no attribute.          Γöé
  7841. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7842. Γöé KEYWORDSON       Γöé Enables the parser - no attribute.          Γöé
  7843. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7844. Γöé MENU          Γöé Any menu item on the menu attached to the currently  Γöé
  7845. Γöé            Γöé selected window.                   Γöé
  7846. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7847. Γöé NUMBER         Γöé Types numbers into the code.             Γöé
  7848. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7849. Γöé PMGPROMPT       Γöé Adds prompt text to the next VISUAL PL/I dialog box  Γöé
  7850. Γöé            Γöé that appears.                     Γöé
  7851. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7852. Γöé SELECT         Γöé Any of a list of PM constants.  For example, SELECT  Γöé
  7853. Γöé            Γöé CLR_ for a list of colors.              Γöé
  7854. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7855. Γöé SELECTMULTI      Γöé Selects more than one from a list of PM constants.  Γöé
  7856. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7857. Γöé SYSTEM         Γöé Internal Visual PL/I variables.            Γöé
  7858. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7859. Γöé STRING         Γöé Types text into the code.               Γöé
  7860. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7861. Γöé TEXT          Γöé Types lines of text into the code.          Γöé
  7862. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7863. Γöé THREAD         Γöé Selects any thread.                  Γöé
  7864. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7865. Γöé VARIABLE        Γöé Types a variable into the code.            Γöé
  7866. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7867. Γöé WC_xxxxxxx       Γöé Any controls on the currently selected window that  Γöé
  7868. Γöé            Γöé are of a certain class.  For example, WC_OX.     Γöé
  7869. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7870. Γöé WINDLG         Γöé Any window or dialog box.               Γöé
  7871. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7872. Γöé WINDOW         Γöé Any primary window (initially visible).        Γöé
  7873. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7874. Table 34. Variable Types in Code Blocks
  7875.  
  7876.  
  7877. ΓòÉΓòÉΓòÉ 26.4.2. Defining Attributes ΓòÉΓòÉΓòÉ
  7878.  
  7879. There are a number of attributes which qualify the above types shown in 
  7880. Variable Types in Code Blocks. No checking is performed on whether the 
  7881. attribute is valid in relation to the types. 
  7882.  
  7883. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7884. Γöé ATTRIBUTE       Γöé DESCRIPTION                      Γöé
  7885. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7886. Γöé ASCIIDATA       Γöé Generates the spin button's default ASCII data.    Γöé
  7887. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7888. Γöé ATTRIBUTE       Γöé Generates the menu's attribute value.  For example,  Γöé
  7889. Γöé            Γöé MIA_CHECKED.                     Γöé
  7890. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7891. Γöé CLASS         Γöé Generates the class of the window.  For example,   Γöé
  7892. Γöé            Γöé WC_LISTBOX or PMGWindowClass.             Γöé
  7893. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7894. Γöé CLHANDLE        Γöé Produces hwndcnn, where nn is the number of the    Γöé
  7895. Γöé            Γöé item.                         Γöé
  7896. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7897. Γöé FILENAME        Γöé Filename of the output code, which is used by SYSTEM Γöé
  7898. Γöé            Γöé only.                         Γöé
  7899. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7900. Γöé FCFFLAGS        Γöé Produces the FCF_s needed to create the specified   Γöé
  7901. Γöé            Γöé window.  For example, FCF_TITLEBAR | FCF_MENU |    Γöé
  7902. Γöé            Γöé FCF_SIZEBORDER.                    Γöé
  7903. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7904. Γöé FCFFLAGSCOMMA     Γöé Produces the FCF_s needed to create the specified   Γöé
  7905. Γöé            Γöé window.  For example, FCF_TITLEBAR , FCF_MENU ,    Γöé
  7906. Γöé            Γöé FCF_SIZEBORDER.                    Γöé
  7907. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7908. Γöé FCFVAR         Γöé Generates flCreatenn, where nn is the number of the  Γöé
  7909. Γöé            Γöé item.                         Γöé
  7910. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7911. Γöé HANDLE         Γöé Either hwndnn for windows, or hbitnn for       Γöé
  7912. Γöé            Γöé bitmaps/icons, where nn is the number of the item.  Γöé
  7913. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7914. Γöé ID           Γöé Produces the ID of the object, such as WINDOW, ICON, Γöé
  7915. Γöé            Γöé BITMAP, MENU, or CONTROL.               Γöé
  7916. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7917. Γöé INDEX         Γöé Produces a unique number based on the         Γöé
  7918. Γöé            Γöé WINDOW/CONTROL/MENU given.              Γöé
  7919. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7920. Γöé INITIALVALUE      Γöé Generates the spin button's initial value.      Γöé
  7921. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7922. Γöé LENGTH         Γöé Length of the window text.              Γöé
  7923. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7924. Γöé LOWERVALUE       Γöé Generates the spin button's lower value.       Γöé
  7925. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7926. Γöé MODULEHANDLE      Γöé Generates a variable name of the following hModxxxx, Γöé
  7927. Γöé            Γöé where xxxx is the file name of the project.      Γöé
  7928. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7929. Γöé NEW          Γöé Asks for a new item of the same previous type.  For  Γöé
  7930. Γöé            Γöé example, WC_LISTBOX ID,WC_LISTBOX NEW,WC_LISTBOX ID  Γöé
  7931. Γöé            Γöé would produce 'LI_1,,LI_2'.              Γöé
  7932. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7933. Γöé NO           Γöé Produces the actual numeric value of the identifier. Γöé
  7934. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7935. Γöé PARENT         Γöé Either HWND_DESKTOP for primary windows or hwnd for  Γöé
  7936. Γöé            Γöé others.                        Γöé
  7937. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7938. Γöé POINTL         Γöé ICON/BITMAP uses POINTL to generate hplnn, where nn  Γöé
  7939. Γöé            Γöé is the number of the item.              Γöé
  7940. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7941. Γöé PROCEDURE       Γöé Either Winprocnn or DlgProcnn, where nn is the    Γöé
  7942. Γöé            Γöé number of the procedure.               Γöé
  7943. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7944. Γöé RECTL         Γöé Generates rectlnn, where nn is the number of the   Γöé
  7945. Γöé            Γöé item.                         Γöé
  7946. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7947. Γöé STYLE         Γöé Produces the style of the window.  For example,    Γöé
  7948. Γöé            Γöé WS_VISIBLE | BS_AUTOCHECKBOX for an autocheckbox.   Γöé
  7949. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7950. Γöé STYLECOMMA       Γöé Produces the style of the window.  For example,    Γöé
  7951. Γöé            Γöé WS_VISIBLE , BS_AUTOCHECKBOX for an autocheckbox.   Γöé
  7952. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7953. Γöé TEXTLENGTH       Γöé Produces the length of the CONTROL/WINDOW/MENU's   Γöé
  7954. Γöé            Γöé text.                         Γöé
  7955. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7956. Γöé "text string"     Γöé Adds prompt text, using STRING, NUMBER, VARIABLE,   Γöé
  7957. Γöé            Γöé and TEXT.                       Γöé
  7958. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7959. Γöé TITLE         Γöé Title of the window.                 Γöé
  7960. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7961. Γöé UPPERVALUE       Γöé Generates the spin button's upper value.       Γöé
  7962. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7963. Γöé VARLENGTH       Γöé Produces the length of the entry fields variable.   Γöé
  7964. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7965. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7966. Γöé ATTRIBUTE       Γöé DESCRIPTION                      Γöé
  7967. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7968. Γöé VARNAME        Γöé Produces the name of the entry fields variable or   Γöé
  7969. Γöé            Γöé the name of a imported global variable.        Γöé
  7970. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7971. Γöé XPOS          Γöé X coordinate.                     Γöé
  7972. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7973. Γöé YPOS          Γöé Y coordinate.                     Γöé
  7974. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7975. Γöé XPOSMAP        Γöé X coordinate in dialog unit.             Γöé
  7976. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7977. Γöé YPOSMAP        Γöé Y coordinate in dialog units.             Γöé
  7978. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7979. Γöé XSIZE         Γöé X size.                        Γöé
  7980. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7981. Γöé YSIZE         Γöé Y size.                        Γöé
  7982. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7983. Γöé XSIZEMAP        Γöé X size in dialog units.                Γöé
  7984. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7985. Γöé YSIZEMAP        Γöé Y size in dialog units.                Γöé
  7986. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7987. Table 35. Attributes
  7988.  
  7989.  
  7990. ΓòÉΓòÉΓòÉ 26.5. Setting Up Local and Global Variables ΓòÉΓòÉΓòÉ
  7991.  
  7992. You can add text into the local variable area of a window/dialog procedure and 
  7993. also add code into the main() function. This section describes how to complete 
  7994. each of these activities. 
  7995.  
  7996.  
  7997. ΓòÉΓòÉΓòÉ 26.5.1. Specifying Local Variables ΓòÉΓòÉΓòÉ
  7998.  
  7999. The Visual PL/I variable qualifier LOCALVAR enables you to add code to the 
  8000. local variable area of your window procedure. Visual PL/I scans your project 
  8001. for all LOCALVAR variables added to items within a particular window, sorts 
  8002. them, and adds one copy of all duplicate LOCALVAR lines found. This enables you 
  8003. to add a local variable to a code block, even if a duplicate definition of this 
  8004. variable is created. 
  8005.  
  8006.  
  8007. Example of Code for Adding a Local Variable to a Code Block
  8008.  
  8009. &&color.obj BEGIN Set Control Color (Background)
  8010. LOCALVAR dcl lColorIndex LONG;       /* ULONG indicating color */
  8011.  
  8012. PMGPROMPT "Select a color and press OK"
  8013.  
  8014. lColorIndex = SELECT CLR_;
  8015. /* Set the background color of CONTROL ID */
  8016. call WinSetPresParam(WinWindowFromID(hwnd0, CONTROL ID),
  8017.                 PP_BACKGROUNDCOLORINDEX,
  8018.                 stg(LONG),
  8019.                 addr(lColorIndex));
  8020. END
  8021.  
  8022. Rules for Local Variables 
  8023.  
  8024. When adding local variables, the following rules apply: 
  8025.  
  8026.  o The keyword LOCALVAR must start in column 1. 
  8027.  
  8028.  o The text following the LOCALVAR keyword must match similarly declared 
  8029.    LOCALVAR lines in other code blocks. 
  8030.  
  8031.  o Spaces and comments are ignored by Visual PL/I when it searches for 
  8032.    duplicate text strings in the source code. 
  8033.  
  8034.    You can initialize a local variable in the LOCALVAR declaration. For 
  8035.    example: 
  8036.  
  8037.        LOCALVAR DCL LcolorIndex LONG init(0);
  8038.    However, a local variable must not be initialized more than once in a 
  8039.    project, or a compilation error will occur. 
  8040.  
  8041.  
  8042. ΓòÉΓòÉΓòÉ 26.5.2. Specifying Global Variables ΓòÉΓòÉΓòÉ
  8043.  
  8044. You can use global Visual PL/I variables to add code to the main procedure in 
  8045. your project. Visual PL/I scans the project for all global variables added to 
  8046. items in it, sorts them, and adds one copy of all duplicate global lines found. 
  8047. The global variables are listed below: 
  8048.  
  8049.  o HASH_DEFINES 
  8050.  o HASH_INCLUDES 
  8051.  o PROTOTYPES 
  8052.  o GLOBAL_HANDLES 
  8053.  o GLOBAL_VARIABLES 
  8054.  o MAIN 
  8055.  o LOCAL_VARIABLES 
  8056.  o INITIALIZE 
  8057.  o WIN INITIALIZE 
  8058.  o CREATE_MSG_QUEUE 
  8059.  o REGISTER_CLASS 
  8060.  o SET_FLCREATE 
  8061.  o CREATE_STD_WINDOW 
  8062.  o SET_WINDOW_POS 
  8063.  o MESSAGE_LOOP 
  8064.  o DESTROY_WINDOWS 
  8065.  o DESTROY_MSG_QUEUE 
  8066.  o TERMINATE_A 
  8067.  o WIN TERMINATE_A 
  8068.  o TERMINATE_B 
  8069.  o INITFUNCTION 
  8070.  
  8071.  Example of a Skeleton Code Block Containing Global Variables contains a 
  8072.  skeleton code block showing some of the above global variables: 
  8073.  
  8074.  
  8075.   Example of a Skeleton Code Block Containing Global Variables
  8076.  
  8077.   ┬╖*
  8078.   ┬╖* One PROTOTYPES per line
  8079.   PROTOTYPE DCL MyFunction(HWND) APIENTRY;
  8080.   ┬╖*
  8081.   ┬╖* One GLOBAL_HANDLES per line
  8082.   /* Handle for Main Frame Window*/
  8083.   GLOBAL_HANDLES dcl hwndMyFrameWindow HWND;
  8084.   ┬╖*
  8085.   ┬╖* One GLOBAL_VARIABLES per line
  8086.   /* Handle for Main Msg Queue */
  8087.   GLOBAL_VARIABLES dcl MYMSGQHANDLE QMSG;
  8088.   ┬╖*
  8089.   ┬╖* One LOCAL_VARIABLES per line
  8090.   /* Flags for the Main Frame  */
  8091.   LOCAL_VARIABLES dcl ulFrameFlag ULONG;
  8092.   ┬╖*
  8093.   ┬╖* MAIN could go here
  8094.   ┬╖*
  8095.   ┬╖* INITIALIZE one per line
  8096.   ┬╖* Inserts the line immediately after the WinInitialize call
  8097.   INITIALIZE call MyInitialize;  /* Call my initialization   */
  8098.   ┬╖*
  8099.   ┬╖* TERMINATE_A one per line
  8100.   ┬╖* Places code immediately after the WinTerminate statement
  8101.   ┬╖*
  8102.   ┬╖* TERMINATE_B one per line
  8103.   ┬╖* Places code before END of main procedure
  8104.   ┬╖* END MAIN;
  8105.  
  8106.  In Example of Global Variable Used in Code Block, a global variable is used 
  8107.  where a code block requires that an initialization function is called in order 
  8108.  for the code block to work properly: 
  8109.  
  8110.  
  8111.   Example of Global Variable Used in Code Block
  8112.  
  8113.   &&plicode.obj BEGIN GLOBAL Char Variable
  8114.   GLOBAL_VARIABLES dcl VARIABLE "Variable name " char(NUMBER "Variable Length") varz ;
  8115.   END
  8116.  
  8117.  
  8118. ΓòÉΓòÉΓòÉ 26.6. Changing the Way Bitmaps are Handled ΓòÉΓòÉΓòÉ
  8119.  
  8120. Visual PL/I assumes that you want all bitmaps to be displayed in the size that 
  8121. you initially added them to the window. You can do this only by generating code 
  8122. that actually paints the bitmaps into their respective windows. If you want 
  8123. bitmaps to be treated the same as other controls and created as actual controls 
  8124. in the window, you must read in the program library file, PMGBIT.PL. Then, when 
  8125. the project is run, the bitmaps appear in the exact size in which they were 
  8126. created by the bitmap editor program. 
  8127.  
  8128.  
  8129. ΓòÉΓòÉΓòÉ 26.7. Adding Prompts to Code Blocks ΓòÉΓòÉΓòÉ
  8130.  
  8131. The PMGPROMPT keyword enables code block writers to display more meaningful 
  8132. prompts for the dialogs. 
  8133.  
  8134.  
  8135. Example of PMGPROMPT Keyword
  8136.  
  8137. PMGPROMPT "Please select a color"
  8138. SELECT CLR_
  8139.  
  8140. Example of PMGPROMPT Keyword displays Please select a color in the dialog with 
  8141. a list of CLR_xxx constants. The PMGPROMPT keyword acts only on the next Visual 
  8142. PL/I keyword that occurs in the code block. 
  8143.  
  8144. Do not declare variables whose uppercase counterparts are spelled the same way. 
  8145. The macro facility in the following example replaces hwnd and causes a 
  8146. compilation error: 
  8147.  
  8148.  dcl hwnd HWND;
  8149.  
  8150. Instead, do the following: 
  8151.  
  8152.  dcl hwnd0 HWND;
  8153.  
  8154.  
  8155. ΓòÉΓòÉΓòÉ 27. Error Messages ΓòÉΓòÉΓòÉ
  8156.  
  8157. This section lists Visual PL/I error messages. 
  8158.  
  8159. Cannot create window 
  8160. An unknown error occurred when creating a window. Check the styles panel for 
  8161. any illegal style combination. 
  8162.  
  8163. Cannot open file XXXX 
  8164. Visual PL/I encountered an error when reading or writing the file. Check that 
  8165. the file name is valid or that there is enough space free on the disk. 
  8166.  
  8167. Cannot change directory to XXXX 
  8168. The directory typed does not exist. Retype a valid directory path. 
  8169.  
  8170. Error in .pl file XXXX 
  8171. The .pl files contains a keyword that is not valid. 
  8172.  
  8173. Library failure XXXX 
  8174. An error occurred when reading in a .pl file. 
  8175.  
  8176. Cannot run XXXX 
  8177. An error occurred when Visual PL/I was trying to execute another program. Check 
  8178. that the path is correct and that the program exists. 
  8179.  
  8180. No object module definition for XXXX. Adding a temporary one. 
  8181. A code block was found with no object module defined. A temporary definition 
  8182. was added to Visual PL/I's list for this invocation of the program.  Check the 
  8183. .pl? files for any incorrect object definitions. 
  8184.  
  8185. Bad file name XXXX 
  8186. The file name typed is not a valid. 
  8187.  
  8188. Illegal entry for #define XXXX 
  8189. The identifier entered does not conform to the naming rules for PL/I constants. 
  8190.  
  8191. Library failure - cannot link XXXX 
  8192. An error occurred when reading a link in. Check that the code block has not 
  8193. been drastically modified since the last time the project was read. 
  8194.  
  8195. Cannot delete - item is referenced XXXX 
  8196. You cannot delete an item (control/window) until all code blocks referencing it 
  8197. have been removed. 
  8198.  
  8199. Cannot find function XXXX 
  8200. A code block was found in a project with no matching code block in the current 
  8201. libraries. Read in the library file containing that code block. 
  8202.  
  8203. Cannot have two links dialogs present 
  8204. The links icon was dropped on a window while another links dialog was still 
  8205. visible. Dismiss the first dialog and retry. 
  8206.  
  8207. Code blocks are too big (>30k) 
  8208. The total amount of code attached to a single message exceeded the limit for 
  8209. Visual PL/I 
  8210.  
  8211. Different number of parameters in file XXXX 
  8212. A code block in a library has been modified and parameters have either been 
  8213. removed or added. This causes any projects that use them to have an incorrect 
  8214. number of parameters. Recreate the links affected to ensure the number and type 
  8215. of parameters match up. 
  8216.  
  8217. Incompatible parameters in file XXXX 
  8218. A code block in a library has been modified and parameters have been changed 
  8219. from one type to another. This causes any projects which use them to have 
  8220. mismatched parameters. Recreate the links affected to make sure the parameters 
  8221. match up. 
  8222.  
  8223. Visual PL/I is running out of memory 
  8224. Visual PL/I is running out of memory. Close down some other application and 
  8225. continue. This error will occur 4 times before Visual PL/I runs out of memory 
  8226. and ends. 
  8227.  
  8228. Visual PL/I has run out of memory 
  8229. A fatal memory error occurred from which Visual PL/I cannot recover. 
  8230.  
  8231. Unknown Visual PL/I variable XXXX 
  8232. A code block contains an unknown variable. 
  8233.  
  8234. The action bar must be in the same project as the window 
  8235. You cannot add an action bar to a window without first adding it to the 
  8236. project. 
  8237.  
  8238. Please copy menu or remove it from existing window before using it. 
  8239. An action bar can only be attached to one window at a time. 
  8240.  
  8241.  
  8242. ΓòÉΓòÉΓòÉ 28. Bibliography ΓòÉΓòÉΓòÉ
  8243.  
  8244.  
  8245. ΓòÉΓòÉΓòÉ 28.1. IBM PL/I for OS/2 Publications ΓòÉΓòÉΓòÉ
  8246.  
  8247.  Fact Sheet, GC26-8005 
  8248.  License Information, GC26-8004 
  8249.  Installation, SX26-3833 
  8250.  Programming Guide, SC26-8001 
  8251.  Language Reference, SC26-8003 
  8252.  Built-In Functions, SC26-8089 
  8253.  Reference Summary, SX26-3832 
  8254.  Messages and Codes, SC26-8002 
  8255.  WorkFrame/2 Guide, SC26-8000 
  8256.  
  8257.  
  8258. ΓòÉΓòÉΓòÉ 28.2. IBM SAA AD/Cycle PL/I MVS & VM Publications ΓòÉΓòÉΓòÉ
  8259.  
  8260.  Installation and Customization under CMS, SC26-3120 
  8261.  Installation and Customization under MVS, SC26-3119 
  8262.  Language Reference, SC26-3114 
  8263.  Compile-Time Messages and Codes, SC26-3229 
  8264.  Diagnosis Guide, SC26-3149 
  8265.  Migration Guide, SC26-3118 
  8266.  Programming Guide, SC26-3113 
  8267.  Reference Summary, SX26-3821 
  8268.  
  8269.  
  8270. ΓòÉΓòÉΓòÉ 28.3. IBM OS PL/I Version 2 Publications ΓòÉΓòÉΓòÉ
  8271.  
  8272.  Programming Guide, SC26-4307 
  8273.  
  8274.  Programming:  Language Reference, SC26-4308 
  8275.  
  8276.  Programming:  Reference Summary, SX26-3759 
  8277.  
  8278.  
  8279. ΓòÉΓòÉΓòÉ 28.4. IBM OS/2 2.0 Technical Library ΓòÉΓòÉΓòÉ
  8280.  
  8281. The following books comprise the OS/2 2.0 Technical Library (10G3356). 
  8282.  
  8283.  Application Design Guide, S10G-6260 
  8284.  
  8285.  Programming Guide, Volume 1, S10G-6261 
  8286.  
  8287.  Programming Guide, Volume 2, S10G-6494 
  8288.  
  8289.  Programming Guide, Volume 3, S10G-6495 
  8290.  
  8291.  Information Presentation Facility Guide and Reference, S10G-6262 
  8292.  
  8293.  System Object Model Guide and Reference, S10G-6309 
  8294.  
  8295.  Control Program Programming Reference, S10G-6263 
  8296.  
  8297.  Presentation Manager Programming Reference Volume 1, S10G-6264 
  8298.  
  8299.  Presentation Manager Programming Reference Volume 2, S10G-6265 
  8300.  
  8301.  Presentation Manager Programming Reference Volume 3, S10G-6272 
  8302.  
  8303.  Physical Device Driver Reference, S10G-6266 
  8304.  
  8305.  Virtual Device Driver Reference, S10G-6310 
  8306.  
  8307.  Presentation Manager Driver Reference, S10G-6267 
  8308.  
  8309.  Procedures Language 2/REXX Reference, S10G-6268 
  8310.  
  8311.  Procedures Language 2/REXX User's Guide, S10G-6269 
  8312.  
  8313.  
  8314. ΓòÉΓòÉΓòÉ 29. Glossary ΓòÉΓòÉΓòÉ
  8315.  
  8316. This glossary contains terms that have specific meanings for Visual PL/I. If 
  8317. you do not find the term you are looking for, refer to IBM Dictionary of 
  8318. Computing, ZC20-1699. 
  8319.  
  8320.  
  8321. ΓòÉΓòÉΓòÉ 29.1. button ΓòÉΓòÉΓòÉ
  8322.  
  8323. button 
  8324.  
  8325. Type of control that can be added to a window.  There are three kinds of 
  8326. buttons available:  push buttons, radio buttons, and icon buttons. 
  8327.  
  8328.  
  8329. ΓòÉΓòÉΓòÉ 29.2. check box ΓòÉΓòÉΓòÉ
  8330.  
  8331. check box 
  8332.  
  8333. A two-part control consisting of a square box and choice text. A check box acts 
  8334. like a switch. 
  8335.  
  8336.  
  8337. ΓòÉΓòÉΓòÉ 29.3. code block ΓòÉΓòÉΓòÉ
  8338.  
  8339. code block 
  8340.  
  8341. Segment of code that can be added to a Visual PL/I program to perform a 
  8342. particular function. Visual PL/I supplies a set of code blocks and you may also 
  8343. add your own code blocks. 
  8344.  
  8345.  
  8346. ΓòÉΓòÉΓòÉ 29.4. combination box ΓòÉΓòÉΓòÉ
  8347.  
  8348. combination box 
  8349.  
  8350. A control that combines the capabilities of an entry field and a list box. 
  8351.  
  8352.  
  8353. ΓòÉΓòÉΓòÉ 29.5. container ΓòÉΓòÉΓòÉ
  8354.  
  8355. container 
  8356.  
  8357. A collection of records for holding data. Categories of data are presented as 
  8358. objects to the user. 
  8359.  
  8360.  
  8361. ΓòÉΓòÉΓòÉ 29.6. context menu ΓòÉΓòÉΓòÉ
  8362.  
  8363. context menu 
  8364.  
  8365. Menu of options that may be performed on a window or control created with 
  8366. Visual PL/I. The context menu provides you with a fast way of selecting the 
  8367. options. It may be displayed by selecting the window or control and pressing 
  8368. mouse button 2. 
  8369.  
  8370.  
  8371. ΓòÉΓòÉΓòÉ 29.7. controls ΓòÉΓòÉΓòÉ
  8372.  
  8373. controls 
  8374.  
  8375. Provide users with the means to make choices and enter information from a 
  8376. window. 
  8377.  
  8378.  
  8379. ΓòÉΓòÉΓòÉ 29.8. dialog box ΓòÉΓòÉΓòÉ
  8380.  
  8381. dialog box 
  8382.  
  8383. Appears when a user selects an option from a menu or presses a push button. 
  8384.  
  8385.  
  8386. ΓòÉΓòÉΓòÉ 29.9. entry field ΓòÉΓòÉΓòÉ
  8387.  
  8388. entry field 
  8389.  
  8390. Accepts information typed by the user. An entry field is either single line or 
  8391. multi-line. 
  8392.  
  8393.  
  8394. ΓòÉΓòÉΓòÉ 29.10. folder ΓòÉΓòÉΓòÉ
  8395.  
  8396. folder 
  8397.  
  8398. A container object used to store and organize objects. 
  8399.  
  8400.  
  8401. ΓòÉΓòÉΓòÉ 29.11. graphical user interface (GUI) ΓòÉΓòÉΓòÉ
  8402.  
  8403. graphical user interface (GUI) 
  8404.  
  8405. A type of computer interface of a desktop. Within that desktop are icons, 
  8406. representing actual objects, that the user can access and manipulate with a 
  8407. pointing device, such as a mouse. 
  8408.  
  8409.  
  8410. ΓòÉΓòÉΓòÉ 29.12. grid ΓòÉΓòÉΓòÉ
  8411.  
  8412. grid 
  8413.  
  8414. Network of uniformly spaced dots in horizontal and vertical lines. It may be 
  8415. displayed on a window to assist you in the positioning and sizing of controls. 
  8416. You may also specify the spacing to be used in the grid. 
  8417.  
  8418.  
  8419. ΓòÉΓòÉΓòÉ 29.13. group box ΓòÉΓòÉΓòÉ
  8420.  
  8421. group box 
  8422.  
  8423. A rectangular box drawn around a group of related controls. 
  8424.  
  8425.  
  8426. ΓòÉΓòÉΓòÉ 29.14. icon button ΓòÉΓòÉΓòÉ
  8427.  
  8428. icon button 
  8429.  
  8430. A button with a graphic inside that depicts an action. 
  8431.  
  8432.  
  8433. ΓòÉΓòÉΓòÉ 29.15. icon format ΓòÉΓòÉΓòÉ
  8434.  
  8435. icon format 
  8436.  
  8437. Default display for Visual PL/I.  Projects, windows, menus, and controls are 
  8438. represented by an icon and text. 
  8439.  
  8440.  
  8441. ΓòÉΓòÉΓòÉ 29.16. list box ΓòÉΓòÉΓòÉ
  8442.  
  8443. list box 
  8444.  
  8445. A rectangular box with scroll bars, from which the user can select one choice. 
  8446.  
  8447.  
  8448. ΓòÉΓòÉΓòÉ 29.17. mark ΓòÉΓòÉΓòÉ
  8449.  
  8450. mark 
  8451.  
  8452. Method for selecting controls to be affected by layout options. 
  8453.  
  8454.  
  8455. ΓòÉΓòÉΓòÉ 29.18. menu attribute ΓòÉΓòÉΓòÉ
  8456.  
  8457. menu attribute 
  8458.  
  8459. Characteristic that are assigned to a menu item to control its status. For 
  8460. example, if you select MIA_HILITED, the state is TRUE only when the item is 
  8461. selected. 
  8462.  
  8463.  
  8464. ΓòÉΓòÉΓòÉ 29.19. menu style ΓòÉΓòÉΓòÉ
  8465.  
  8466. menu style 
  8467.  
  8468. Characteristic that are assigned to a menu item to control its appearance or 
  8469. behavior. For example, if you select MIS_STATIC, the item exists for 
  8470. information purposes only. It cannot be selected with the mouse or keyboard. 
  8471.  
  8472.  
  8473. ΓòÉΓòÉΓòÉ 29.20. notebook ΓòÉΓòÉΓòÉ
  8474.  
  8475. notebook 
  8476.  
  8477. Simulates a real world notebook by allowing the user to select information 
  8478. quickly. It contains pages and tabs to organize information, and has a binding 
  8479. and back page for a three-dimensional effect. 
  8480.  
  8481.  
  8482. ΓòÉΓòÉΓòÉ 29.21. Presentation Manager ΓòÉΓòÉΓòÉ
  8483.  
  8484. Presentation Manager 
  8485.  
  8486. The interface of the OS/2 operating system that presents, in windows, a 
  8487. graphics-based interface to applications and files installed and running under 
  8488. the OS/2 operating system. 
  8489.  
  8490.  
  8491. ΓòÉΓòÉΓòÉ 29.22. primary window ΓòÉΓòÉΓòÉ
  8492.  
  8493. primary window 
  8494.  
  8495. Main work area for an application. It is not tied to any other window or 
  8496. object. 
  8497.  
  8498.  
  8499. ΓòÉΓòÉΓòÉ 29.23. project ΓòÉΓòÉΓòÉ
  8500.  
  8501. project 
  8502.  
  8503. Container for interface components. You must open a project for each interface 
  8504. you design and for each application you develop. You may also use a project to 
  8505. hold standard interface components. 
  8506.  
  8507.  
  8508. ΓòÉΓòÉΓòÉ 29.24. project file ΓòÉΓòÉΓòÉ
  8509.  
  8510. project file 
  8511.  
  8512. File that holds the contents of a project. Visual PL/I gives each project file 
  8513. a suffix of ┬╖prj. 
  8514.  
  8515.  
  8516. ΓòÉΓòÉΓòÉ 29.25. push button ΓòÉΓòÉΓòÉ
  8517.  
  8518. push button 
  8519.  
  8520. A rounded corner rectangle with text inside that describes an action. 
  8521.  
  8522.  
  8523. ΓòÉΓòÉΓòÉ 29.26. radio button ΓòÉΓòÉΓòÉ
  8524.  
  8525. radio button 
  8526.  
  8527. A two-part symbol consisting of a circle and choice text. 
  8528.  
  8529.  
  8530. ΓòÉΓòÉΓòÉ 29.27. rectangle ΓòÉΓòÉΓòÉ
  8531.  
  8532. rectangle 
  8533.  
  8534. A graphic component that groups or divides controls on a window. 
  8535.  
  8536.  
  8537. ΓòÉΓòÉΓòÉ 29.28. scroll bar ΓòÉΓòÉΓòÉ
  8538.  
  8539. scroll bar 
  8540.  
  8541. Allows the user to see information that is not visible on the window component. 
  8542.  
  8543.  
  8544. ΓòÉΓòÉΓòÉ 29.29. secondary window ΓòÉΓòÉΓòÉ
  8545.  
  8546. secondary window 
  8547.  
  8548. Allows an application to present information related to a particular subject. A 
  8549. secondary window is accessed from a primary window. 
  8550.  
  8551.  
  8552. ΓòÉΓòÉΓòÉ 29.30. slider ΓòÉΓòÉΓòÉ
  8553.  
  8554. slider 
  8555.  
  8556. Displays values that are represented graphically by measurements at increments. 
  8557. A slider allows the user to set or display a value by moving an "arm" along a 
  8558. shaft, while holding down the mouse button. 
  8559.  
  8560.  
  8561. ΓòÉΓòÉΓòÉ 29.31. spin button ΓòÉΓòÉΓòÉ
  8562.  
  8563. spin button 
  8564.  
  8565. Enables the user to complete an entry field by scrolling through a ring of 
  8566. related choices. 
  8567.  
  8568.  
  8569. ΓòÉΓòÉΓòÉ 29.32. static text ΓòÉΓòÉΓòÉ
  8570.  
  8571. static text 
  8572.  
  8573. Adds information or descriptions anywhere in a window. 
  8574.  
  8575.  
  8576. ΓòÉΓòÉΓòÉ 29.33. system bitmap ΓòÉΓòÉΓòÉ
  8577.  
  8578. system bitmap 
  8579.  
  8580. OS/2 system bitmap that may be imported into Visual PL/I. 
  8581.  
  8582.  
  8583. ΓòÉΓòÉΓòÉ 29.34. system icon ΓòÉΓòÉΓòÉ
  8584.  
  8585. system icon 
  8586.  
  8587. OS/2 system icon that may be imported into Visual PL/I. 
  8588.  
  8589.  
  8590. ΓòÉΓòÉΓòÉ 29.35. text format ΓòÉΓòÉΓòÉ
  8591.  
  8592. text format 
  8593.  
  8594. Method of display for Visual PL/I where projects, windows, menus, and controls 
  8595. are represented only by text.  You can customize Visual PL/I by changing from 
  8596. the default display of icon with text to a text only display. 
  8597.  
  8598.  
  8599. ΓòÉΓòÉΓòÉ 29.36. value set ΓòÉΓòÉΓòÉ
  8600.  
  8601. value set 
  8602.  
  8603. Allows the user to select an item from a set of graphical choices. 
  8604.  
  8605.  
  8606. ΓòÉΓòÉΓòÉ 29.37. window ΓòÉΓòÉΓòÉ
  8607.  
  8608. window 
  8609.  
  8610. A user interface that displays information in a rectangular area on the screen. 
  8611. In these areas, an application displays information and receives input from a 
  8612. user. 
  8613.  
  8614.  
  8615. ΓòÉΓòÉΓòÉ 29.38. window style ΓòÉΓòÉΓòÉ
  8616.  
  8617. window style 
  8618.  
  8619. Characteristic that are assigned to a window or control to control its 
  8620. appearance or behavior. For example, if you select WS_MAXIMIZED, it creates the 
  8621. window maximized. 
  8622.  
  8623.  
  8624. ΓòÉΓòÉΓòÉ 30. Readers' Comments ΓòÉΓòÉΓòÉ
  8625.  
  8626. PL/I for OS/2 Toolkit
  8627. Reference
  8628. Version 1 Release 1
  8629. Document Number: SC26-8223-00
  8630.  
  8631. Please use this form only to identify online information errors or to request 
  8632. changes in this information. Direct any requests for additional hardcopy 
  8633. publications, technical questions about IBM systems, changes in programming 
  8634. support, and so on, to your IBM representative or to your nearest IBM branch 
  8635. office. You may use this form to communicate your comments about this 
  8636. information, its organization, or subject matter with the understanding that 
  8637. IBM may use or distribute whatever information you supply in any way it 
  8638. believes appropriate without incurring any obligation to you. 
  8639.  
  8640. To use this form, print this panel by selecting Print from the Services menu in 
  8641. the Help window.  Select This section to have just this form print out. Mail 
  8642. the completed form to: 
  8643.  
  8644. IBM Corporation, Department J58
  8645. P.O. Box 49023
  8646. San Jose, CA, 95161-9023
  8647. United States of America
  8648.  
  8649. If your comment does not need a reply (for example, pointing out a typing 
  8650. error), do not include your name and address below. If your comment is 
  8651. applicable, we will include it in the next revision of the manual. 
  8652.  
  8653. If you would like a reply, be sure to print your name and address below. 
  8654.  
  8655. You can also send your comments by facsimile to (800) 426-7773 addressed to the 
  8656. attention of the RCF Coordinator. If you have access, you can send your 
  8657. comments electronically via: 
  8658.  
  8659. INTERNET, to comments@vnet.ibm.com
  8660. IBMMAIL, to USIB5TNP
  8661.  
  8662. If you choose to respond through Internet, please include either your entire 
  8663. Internet network address, or a postal address. 
  8664.  
  8665. Be sure to include the following with your comments: 
  8666.  
  8667.  o Title and publication number of this book 
  8668.  
  8669.  o Page number or topic to which your comment applies 
  8670.