home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / VWCIS / VW.HLP (.txt) < prev    next >
Borland Turbo Vision Help  |  1993-10-28  |  56KB  |  732 lines

  1.    Sorry 
  2. There is no help available for this topic. 
  3.   Project List Box 
  4. The Project List Box provides you with an overview of all the bits and pieces your resource project consists of. It can contain dialog boxes, string tables, menus or popup menus. 
  5.   File 
  6. The File Menu contains options to create new resource files, open existing resource projects, save the current resource or save it under a different name. You can add streams or Pascal source files to a project. Via this menu you can install user-defined objects to your projects, that means that you can extend the functionality of Vision Workshop with objects you wrote or obtained from a third-party vendor. 
  7.   New
  8. project
  9.   Open
  10. project
  11.   Save
  12. project
  13.   Save
  14. project
  15.   Add
  16. project
  17.   Add
  18. source
  19.   Install
  20. user-defined
  21. objects
  22.   New Project 
  23. By choosing this option, you create a new resource project. A window by the name of "UNTITLED" will open in the workarea of the screen and you may select a resource item, either a dialog, menu or string table, you want to insert and edit it into the project. The new step will lead you to the Resource
  24. Menu, where you can select an item by clicking on the option New. 
  25.   Open Project 
  26. Selecting this menu option will pop up a dialog box where you can choose any of your already created resource files. By default the extension filter is set to .REZ which is the extension for Turbo Vision resource files. Borland uses the extension .REZ to distinguish these Vision resources from the ones Windows programs use (they have the extension .RES). This file open dialog works just the same way as the ones used in the Turbo Pascal or Borland Pascal IDEs. Vision Workshop provides the same keyboard shortcuts as the IDEs, so you may press F3 instead of clicking around in the menubar. 
  27.   Save Project 
  28. By using this option you can save the project you just edited into a file on a disk. You should do this everytime you leave Vision Workshop unless you don't care for the changes you just made. 
  29.   Save Project As... 
  30. With this option you can perform the same saving feature as with the above option "Save Project". The only difference is that you can specify a filename by choosing "Save Project As". You can save the project file under a different name, in a different directory, or on a different drive. When you choose this command, you see the Save As dialog box. Enter a new name, optionally with drive and directory, and click or choose OK. If you pick an existing file name, that file will be overwritten. 
  31.   Add To Project 
  32. Besides adding a Pascal source file to a Workshop project, you also can add a stream. When you choose this option, a dialog box "Add to project" will pop up, where you can select the stream (a file with the .STM extension) you want to add. These streams contain one resource item you saved by using the option Save
  33. as in the Resource menu. 
  34.   Add Source File To Project 
  35. Especially when developing larger projects, you won't work with hard-coded IDs but with assigned constants. By using this option you can use constants in those source files you added to the project. You can either use standard Turbo Vision units (as OBJECTS or DIALOGS) or other units you wrote. A dialog box will open where you can select the .PAS file you want to incorporate to the project. After you double-clicked on a source, the parser routine built in Vision Workshop will parse the source file and inserts all the constants into an internal data structure. After you did so, you can use these constants as commands or keycodes in a menu bar definition, or any area where you can enter values. 
  36.   Install Objects... 
  37. With this option you can enhance the list of supported objects (views, dialogs and validators) that Vision Workshop can handle. In order to install a new user-defined object you have to write an unit with some specifics. The sample units USERVIEW.PAS (for views), USERDLG.PAS (for dialogs) and USERVAL.PAS (for validators) show these specifics and the underlying mechanism. Since recompilation happens automatically the unit must be put into the unit directory .\UNITS. If you want to add other search directories you can modify the configuration file BPC.CFG. 
  38.  IMPORTANT
  39.  ---------
  40. If you have only Turbo Pascal 7.0, no automatic recompilation is supported, since this product does not have a protected-mode command line compiler with a larger capacity. To install user-defined objects with this compiler you have to use the high-capacity IDE TPX.EXE. The drawback is, that this compiler only generates real-mode executables. Note, that you have to make VWMAIN.PAS. Don't forget to specify the directory settings properly within TPX. After you have created a real-mode executable, you can't use the start program VW.EXE anymore. In order to launch Vision Workshop correctly use the real-mode start program VWR.EXE. 
  41.   Change Directory 
  42. Here you can specify a drive and a directory to make current. The current directory is the one Vision Workshop uses to save files and to look for files. 
  43.   Preferences 
  44. Here you can determine the behavior of Vision Workshop. There are settings whether or not VW creates backups of resource files. You can assign prefered prefixes to commands (cmXXX), help context IDs (hcXXX), string IDs (stXXX) or keyboard codes (kbXXX). The values in parentheses are the default values. Furthermore it is possible to influence the invokation and the workings of the parser routine: whether it should re-parse all source files added to the projects every time at start-up or whether it should parse all of the unit in question or just the interface section. The include path specifies the search directories where the parser looks for include files. )
  45.  Preferences 
  46.                                                              
  47.   Resource file                Prefered prefixes             
  48.    [X] Create backup           
  49.              
  50.    [ ] Save on test dialog                                   
  51.                                 Commands:       cm           
  52.   Symbol retrieval                                           
  53.    [X] Re-parse at start-up     Help contexts:  hc           
  54.    [ ] Interface section only                                
  55.                                 String ID's:    st           
  56.   Dialog editor alignment                                    
  57. ) Selected view bounds     Keyboard:       kb           
  58.    ( ) Group bounds                                          
  59.                                                              
  60.   Include path:                                              
  61.    \bp\rtl\owl                                               
  62.                                                              
  63.                   OK   
  64.    Cancel 
  65.     Help  
  66.                
  67.                 
  68.                
  69.   Exit 
  70. The Exit command exists Vision Workshop, removes it from memory, and returns to the environment you launched it from. If you have made changes to your project and didn't save yet, you will prompted whether you want to do so. 
  71.   Reopen Project 
  72. If you want to open a project which has been loaded by Vision Workshop before, just use the menu extensions at the end of the File menu. Vision Workshop keeps track of the last 5 project files. 
  73.   Edit 
  74. The Edit menu lets you cut, copy, and paste resources in projects. Before you can use the commands in this menu, you need to select an object you want to cut or copy. 
  75.   Cut 
  76. With the Cut option you delete an item while putting is into the clipboard. Vision Workshop maintains 3 different clipboards for the 3 different editors (dialog, menu and string table). 
  77.   Copy 
  78. With the Cut option you delete an item while putting is into the clipboard. Vision Workshop maintains 3 different clipboards for the 3 different editors (dialog, menu and string table). 
  79.   Paste 
  80. With the Paste option you insert an item from the clipboard into the current position within the active editor. Vision Workshop maintains 3 different clipboards for the 3 different editors (dialog, menu and string table). 
  81.   Resource 
  82. Using the options in this submenu, you can add resources to your project file. More than this, you can delete existing resources, rename them or save them under a different name. By choosing the item Show
  83. symbolic
  84. constants, you can obtain an overview of the constants you can access in your project and where the constants come from, i.e. which unit exports them. 
  85.   New Resource 
  86. This is the menu option of choice when you want to add a new resource to your project. There are four different types of resources available in this dialog: 
  87.  New resource 
  88.                                   
  89.   Resource type                   
  90. ) Dialog                     
  91.    ( ) Menu                       
  92.    ( ) Popup
  93. menu                 
  94.    ( ) String
  95. table               
  96.                                   
  97.      OK   
  98.    Cancel 
  99.     Help  
  100. Vision Workshop inserts a resource of the selected type into the project window under the name TYPE_##, that is MENU_01, POPUPMENU_07, for example. The proper number ## is assigned by incrementing the highest number of this resource type. 
  101.   Delete Resource 
  102. Using this option you can delete the currently selected resource in the project window. You will be prompted whether you really want to delete this particular resource. When choosing the "Yes" button either by clicking on it or by hitting the RETURN key, the resource will be erased. Choose "No", "Cancel" or hit ESC if you not sure about deleting anymore or if you just want to close the Warning box. 
  103.   Rename Resource 
  104. By default every new resource will have a name like MENU_27 or STRINGS_02. Since these names are rather undescriptive, you can assign the currently selected resource item with a new better fitting name, like ReebearMenu or GermanStrings. 
  105.   Save Resource As 
  106. You do not have to create a whole new project for just a menu bar oder a certain string table. Instead you can save just one resource in a stream. This stream is in DOS represented by a file with a 8-letter name you provide, and the default extension .STM. This is a means of creating a library of often used resource items. Whenever you need one of these .STM files you can add them to your project by selecting the menu item Add
  107. project in the File menu. 
  108.   Show Symbolic Constants 
  109. After you have added several source files to your resource project by using the option Add
  110. source
  111. project in the File menu, it may get difficult to track down where a particular constant comes from. Using this option gives you an overview of all constants you can use in your resource project, its value and which unit it comes from. 
  112. See also: 
  113.   The
  114. Consts
  115. dialog
  116.   Symbolic Constants 
  117. This dialog window shows you all the constants you can use in the project. You can add more constants when you parse a Turbo Pascal source file which defines them. You can either see all the identifiers available or just scroll to those from a certain file, whose name can be specified. b
  118.  Symbolic Constants 
  119.                                                                
  120.  Name : bfBroadcast                         Status             
  121.  Value: 4 ($4)                              [ ] modified       
  122.  Total: 16                                  [ ] user-defined   
  123.  File : E:...\UNITS\DIALOGS.PAS             [X] Hex expression 
  124.                                                                
  125.   Identifier                                                   
  126.   bfBroadcast                             
  127.                     
  128.   bfDefault                               
  129.          New      
  130.   bfGrabFocus                             
  131.   bfLeftJust                              
  132.        Delete     
  133.   bfNormal                                
  134.   cfEightBits                             
  135.         Edit      
  136.   cfFourBits                              
  137.           Ok       
  138.                                                
  139.                 
  140.   Show                         File                            
  141. ) All  ( ) One File        (All Files)                
  142.   Status
  143.   [ ] modified
  144.   [ ] user-defined
  145.   [ ] Hex expression
  146.   Modified
  147. value of constant has been changed since parsing 
  148.   User-defined
  149. constant was not parsed but was edited on-the-fly during an editing session, they will be written into a source file 
  150.   Hex expression
  151. constant was entered as a hex value with a leading "$". The symbol manager keeps track of this information in order to be able to write the constant back to the file correctly. 
  152.   Define Constant 
  153. Sometimes parsed constants simply are not enough. You need to enter new constants and their values. This task can be performed with the "Define Constant" dialog window, where you can enter the new name, new value of a constant and the filename where the constant is to be saved. 
  154.  Define Constant 
  155.                               
  156.  New Name                     
  157.   testname                    
  158.                               
  159.  New Value                    
  160.   0                         
  161.                               
  162.  Filename                     
  163.   USRFILE.PAS               
  164.                               
  165.                               
  166.        OK   
  167.     Cancel 
  168.      
  169.      
  170.      
  171.   Show
  172. Symbolic
  173. constants
  174.   Edit Constant 
  175. Using this dialog you can change the value of any already parsed or entered symbolic constant. You see the name and the old value of the constant and in the "New Value" inputline you can specify its future value. 
  176.  Edit Constant 
  177.                               
  178.  Name:  bf_Checked            
  179.  Value: 1 ($1)                
  180.                               
  181.  New Value                    
  182.   1                         
  183.                               
  184.                               
  185.        OK   
  186.     Cancel 
  187.      
  188.      
  189.      
  190.   Show
  191. Symbolic
  192. constants
  193.   Menu 
  194. Using the options in this menu, you can manipulate menubars. You can insert submenus, menu items or separators (newline in Turbo Vision) or delete any of these already inserted menu items. U
  195.   See also:
  196.   Menu
  197. Editor
  198. Window
  199.   Insert
  200.   Insert
  201.   Insert
  202.   Delete
  203. This submenu is not visible until you enter the Menu Editor of Vision Workshop. 
  204.   Insert Menu 
  205. This option inserts a new menu below the line that's currently highlighted in the outline pane. 
  206.   Insert Item 
  207. By choosing this option, the Menu Editor will insert a menu item just below the currently highlighted item in the outline pane. Menu items directly invoke actions in a program whereas submenus cascade into another level of indentation. 
  208.   Insert Line 
  209. This option will insert a separation line just below the highlighted entry in the outline pane. You might want to use such a line to separate different items in the same submenu. It is better to separate a couple of entries by a line than by using different submenus. 
  210.   Delete Item 
  211. This option will delete the currently highlighted entry from the outline pane. 
  212.   Name Input Line 
  213. In order to give a menu entry a name you have to enter it in this input line. To define a hotkey use tildes (~). Note: The data in the input line will take affect if you press enter, if you select another entry in the list box or if you run the test menu. 
  214.   Command Input Line 
  215. In order to bind a menu item to a command value you have to enter either an integer value here or a symbolic constant. If the user is choosing the menu entry, a command message will be sent to the HandleEvent method of your application. Note: The data in the input line will take affect if you press enter, if you select another entry in the list box or if you run the test menu. 
  216.   Param Input Line 
  217. Normal entries in a menu can have a second string which is displayed right-aligned in the menu box. This string is especially useful for telling the user which keystroke (e.g. Ctrl-Shift) will also invoke the command associated with the entry. Note: The data in the input line will take affect if you press enter, if you select another entry in the list box or if you run the test menu. 
  218.   Context Input Line 
  219. In order to give a menu item a help context you have to enter either an integer value here or a symbolic constant. Note: The data in the input line will take affect if you press enter, if you select another entry in the list box or if you run the test menu. 
  220.   Key Code Input Line 
  221. In order to invoke a command if the user is pressing a certain key you have to enter either an integer value here or a symbolic constant. If you've added the file VWPREDEF.PAS to your project you can use the symbolic constants (kbF1, kbEnter etc.) which Turbo Vision has defined in the unit DRIVERS. Note: The data in the input line will take affect if you press enter, if you select another entry in the list box or if you run the test menu. 
  222.   Menu Item List Box 
  223. This list box shows the current menu structure as a list. Whenever you want to insert or delete entries you have to focus this list box either by pressing the TAB key or with the mouse. If you want to move an entry or a whole submenu you can select the appropriate entry and cut or copy it to the clipboard. Then move the selection bar to the destination and paste the clipboard contents. 
  224.   Menubar Overview Window 
  225. This window shows the current menu structure as a menubar. Therefore it corresponds to the Menu Item List Box on the top right corner of the Menu Editor. Since it behaves just like a normal menubar would, you can navigate around and test the functionality of the menubar. During your moves around the menubar, the Menu Item List Box and all the inputlines are updated according to the focused item in the menubar. 
  226.    Test Popup  
  227. By clicking on this button, you can test the popup menu you defined. 
  228.   Dialog 
  229. This menu is not visible until you enter the Dialog Editor of the Vision Workshop. 
  230. Using the Dialog Editor you can insert several kinds of predefined views into the dialog and you also have the possibility to create your own kind of view which you can put into a dialog. See the manual file for further details on how to create your own views. 
  231.   New View 
  232. Insert a new view into the dialog. An dialog called "Select View" will pop open, where you can choose a view to be inserted. 
  233.  Select View 
  234.                                    
  235.   Button                         
  236.   CheckBoxes                     
  237.   History                        
  238.   InputLine                      
  239.   Label                          
  240.   Listbox                        
  241.   Memo                         
  242.   MultiCheckBoxes                
  243.   ParamText                      
  244.   RadioButtons                   
  245.   ScrollBar                      
  246.   StaticText                     
  247.                                    
  248.          Okay  
  249.      Cancel 
  250.       
  251.         
  252.      
  253.       
  254.   Edit View 
  255. Edit an already existing view in the dialog. 
  256.   Delete View 
  257. Deletes the currently selected view from the dialog. 
  258.   Reorder Views 
  259. By using this option you can redefine the TAB-order of the subviews in the dialog. TAB-order means the order in which the subviews will be focused when you press the TAB key. `
  260. Whatever way you choose to set up your dialogs, you should always remember a few vital things: N
  261.   * TAB-order should start at the top left corner and should end at the lower
  262. right corner of the dialog J
  263.   * To make data input as easy as possible, choose a reasonable TAB-order
  264.   Tag View 
  265. Use this option in order to group subviews. Once subviews belong to the same group, everything you do the group will be done to each member of the group. Everything in this sense means that when dragging a group, everyone of the group's subviews will be dragged along. Every subviews which belongs to the current group will be displayed with a bullet on its left border. 
  266.   Test Dialog 
  267. Since it's not a good solution to construct the dialog, write a test program, compile and run it and have to do it all over again and again, Vision Workshop provides you with a Test Dialog function. M
  268.   You can try out your shiny new dialog right in the Workshop and don't have
  269. to run through all the "turn-around" hastle. M
  270.   The tested dialog behaves just like you had it inserted it into a desktop.
  271. Every subview will work right as you defined it to. Since an error in the implementation of a user-defined object may crash Vision Workshop, you should choose the option "Save on test dialog" in the Preference dialog in order to minimize the impact of a possible shut-down. 
  272.   Edit View Options 
  273. In this dialog you can change the basic flags and options of a Turbo Vision view object: State, Options and EventMask. 
  274. For instance if you want an inputline to be validated whenever the focus moves, you have to set the ofValidate flag in the Options column. |
  275. For a little more thorough explanation of these flags, please turn to the Borland Pascal Turbo Vision Programmer's Manual. 
  276.   Center View Horizontally 
  277. If you want to center a view or a group of views horizontally within the bounds of the dialog choose this option. 
  278.   Center View Vertically 
  279. If you want to center a view or a group of views verticallly within the bounds of the dialog choose this option. 
  280.   New Dialog 
  281. Insert a new dialog. An dialog called "Select Dialog" will pop open, where you can choose a dialog to be placed in the project file. 
  282.  Select Dialog 
  283.                                    
  284.   Dialog                         
  285.   FileDialog                     
  286.                                  
  287.                                  
  288.                                  
  289.                                    
  290.          Okay  
  291.      Cancel 
  292.       
  293.         
  294.      
  295.       
  296.   New Validator 
  297. Insert a new validator into the dialog. A dialog called "Select Validator" will pop up, where you can choose a validator to be inserted. 1
  298.  Select Validator 
  299.                                    
  300.   FilterValidator                
  301.   PXPictureValidator             
  302.   RangeValidator                 
  303.   StringLookupValidator          
  304.                                  
  305.                                  
  306.                                  
  307.                                  
  308.                                    
  309.          Okay  
  310.      Cancel 
  311.       
  312.         
  313.      
  314.       
  315.   Dialog Editor 
  316. The Dialog Editor lets you place view objects in the dialog. You can also change the attributes and the size of those views. To change the location of a view object you can either use the mouse or the arrow keys. If you want to change the size use the arrow keys with the shift key held down. In order to change the size with the mouse click on the lower right corner of the view. Note: Some view objects do not allow changes of their size. For instance, a history view object cannot grow or shrink. 
  317. To insert or delete a view object in the dialog you can either select the appropriate command from the menu or simply by pressing the INS key or DEL key respectively. 
  318. The status line of Vision Workshop will show you the origin and the size of the currently selected view object. If the dialog itself is currently selected it will show you, of course the origin and size of the dialog. 
  319. With the F9 key you can instantly test the dialog. If Vision Workshop detects open links (i.e. a History view which isn't linked to an input line) you'll get an error message. Note: If you add an user-defined view to Vision Workshop which requires a link to another view object, make sure the the link has been set up correctly before entering the test mode. Vision Workshop cannot check if an user-defined view requires a valid pointer to another view. 
  320.   Strings 
  321. This submenu is not visible until you enter the String Table Editor of Vision Workshop. 7
  322. Using the String Table Editor you can insert String Tables into your resources (oh, really?). String Tables can contain all the constant strings that you need throughout your program. They now come from a resource and no longer occupy space in your data segment. Especially when localizing an application to another language, String Tables are very handy. You don't have to search around your source files any more in order to find each and every occurance of a certain string to alter. Just edit the string which is in the String Table resource - and there you go! 
  323.   Insert Item 
  324. Insert a new entry into the String Table. This option allocates a new slot in the String Table where you can enter a new string. 
  325.   Delete Item 
  326. Selecting this option will cause the currently highlighted entry in the String Table Editor to disappear. 
  327.   Goto ID... 
  328. With this option you can move your cursor to a certain ID value without having to scroll down all of the String Editor Window. 
  329.   Find... 
  330. This option will display a dialog box where you can enter a certain string you are looking for in the String Table. It will them search this string and position the cursor on the first line which contains this particular string. If you haven't found the right occurance of this string on your first try, use the Find
  331. Again option or the Ctrl-L key combination for finding the next one. 
  332.   Find Again 
  333. Find the next occurance of the string you specified in Find.... You can use either the menu bar entry or the key combination familiar from Borland Pascal or Turbo Pascal, Ctrl-L. 
  334.   ID Input Line 
  335. In the ID input line of the String Table Editor you must enter either an integer value or a symbolic constant. Since the ID must be unique within a string table you'll get an error if you try to use an index twice. 
  336.   String Input Line 
  337. The string input line of the String Table Editor holds the string that can be retrieved from the resource via an integer value. If you want to enter special characters like control characters or quotes you have to use the Pascal convention (i.e. 'Hello'^M'World' or 'Hello ''World''' or 'Hello '#13#10). 
  338.   Windows 
  339. The Window menu contains window management commands. Most of the windows you open from this menu have all the standard window elements like scroll bars, a close box, and zoom boxes. The commands Tile and Cascade will always rearrange windows. 
  340.   Tile 
  341. With this option you can arrange the windows on the desk top in this way: ?
  342.                
  343.                
  344.                
  345.                
  346.                
  347.                
  348.                
  349.                
  350.                
  351.                
  352.                
  353.                
  354.                
  355.                
  356.                
  357.                
  358.   Cascade 
  359. With this option you can arrange the windows on the desk top in this way: A
  360.                          
  361.                          
  362.                          
  363.                          
  364.                          
  365.   Size/Move 
  366. Use this option to change the size or position of the active window. The shortcut is Ctrl-F5. To change the position use the cursor keys. If you want to change the size hold down the shift key while using the cursor keys. 
  367.   Zoom 
  368. With this option you can maximize a window. For instance you can set the size of an editor window to the size of the desk top. The shortcut for this option is F5. 
  369.   Next 
  370. With this option you can select the next window on desk top. The desk top maintains a list of windows in order of their creation. 
  371.   Close 
  372. This options lets you close a window. If you close the project window and the project has been changed you will be asked if you want to save the changes. If you close an editor window all input will be validated before closing. 
  373.   Help 
  374. The Help menu gives you access to online help in a special window. There is help information on almost all aspects of the Vision Workshop IDE. To open the Help window, do one of these actions: I
  375.   * Press F1 at any time (including from any dialog box or when any menu
  376. command is selected). J
  377.   * Click Help wherever it appears on the status line or in a dialog box.
  378. To close the Help window, press ESC or click the close box. The help screens contain keywords (highlighted text) that you can choose to get more information. Press TAB to move to any keyword; press ENTER to get more detailed help. As an alternative, move the mouse cursor to the highlighted keyword and press ENTER or double-click on the keyword to open the help text for that item. 
  379.  Help Contents 
  380. Vision Workshop is a visual tool to design dialog boxes, menubars and string lists for Borland's Turbo Vision object toolkit. When you start up Vision Workshop you have the choice among five different set of menus: +
  381.   File
  382.   Edit
  383.   Resource
  384.   Windows
  385.   Help
  386.  Using Help 
  387. This is the integrated Help system of Vision Workshop. j
  388.   * What you are reading right now, is a "Help screen"
  389.   * Most help screens have some highlighted items
  390. (Help keywords) that lead you to another Help screen. 
  391. Press TAB to move to any keyword; then press ENTER to get detailed help. As an alternative, move the mouse cursor to the highlighted keyword, click to set the mouse position on the keyword and press ENTER to open the help text for that item. W
  392. The best way to get to a keyword is to double-click on it with the left mouse button. J
  393. Try it now and choose one of the following Help keywords to get started: A
  394.   Help
  395. Contents
  396.   Glossary
  397. Terms
  398.   About
  399. Vision
  400. Workshop
  401.  Glossary 
  402. Since you might not be very familiar with the terms used in this online documentation, here you can choose a brief explanation of some of these terms. `
  403.   Dialog
  404.   Group
  405.   Menu
  406.   Popup
  407.   Resource
  408.   Stream
  409.   String
  410. Table
  411.   Validator
  412.   View
  413.   About 
  414. This dialog shows you who was involved in the development process of Vision Workshop. 
  415.   Parsing Dialog 
  416. This dialog has the same functionality as the Compile dialog in Borland Pascal. It shows you statistics about the ongoing parsing process. 
  417. Besides the file name and the number of files processed, it shows you the number of parsed constants. If the parser comes across a symbolic constant which has been defined before, the Redefined counter will be incremented. The parser will use the latest value of a redefined constant. 
  418.   What is a Group?
  419. However far-reaching and powerful the methods of a View object are, they must seem to an observer to be a little egocentric. They do not concern themselves with other View objects. This, however, is quite essential, if they are to co-exist with other Views on the screen. This is where the Group comes into play. K
  420.   A Group differs from a View object in its ability to manage several View
  421. objects. This gives the group a kind of representative character: it is only defined by the View objects it contains. Nor is a group displayed, instead it calles the Draw methods of all the View objects it contains. 
  422.   Glossary
  423.   What is a Resource?
  424. A resource file is an object which allows objects in a stream to be accessed via a key. This means that the objects in the resource do not have to be processed in a sequential manner, but index-sequential. 
  425.   Glossary
  426.   What is a Menu Bar?
  427. The menu bar at the top of the screen in most Turbo Vision programs allows the user to select different areas of a program to be executed. Although the menu bar can be easily defined in only a few lines of source text, what makes it difficult is the pointer structure envolved. Quite often you miss a couple of closing parentheses and off to recompile you go. Vision Workshop makes the definition of a menu bar much easier. 
  428. But the menu bar at the top line is not the only menu bar you can use in your Turbo Vision programs. There is also something called a popup menu, which can show up at any part of the TV Desktop (the TDesktop is that part of a TApplication between the TMenuBar and the TStatusLine). z
  429. If you want to know how to create a menu bar in Vision Workshop, go ahead to the help screen How
  430. create
  431. bar. 
  432.   Glossary
  433.   What is a Stream?
  434. A stream is a way of communication among View objects. Often the term 'stream' is only used in connection with storing objects in a file and reading them from the file. M
  435.   A stream is an object which controls other objects on their way somewhere.
  436. This may sound rather imprecise, but it's about all that can be said about a stream. A stream does not necessarily have to be linked to a file (although this is most commonly the case). 
  437.   Glossary
  438.   What is a View?
  439. The object type TView is by far the most important object in Turbo Vision. Everything shown on the screen in any way is (and must be) a descendant of TView. In a sense, TView can be seen as an 'atom' of Turbo Vision. To supply everything its descendants will require, TView defines all the methods an object needs in order to be displayed, moved around, hidden, etc. Many of these methods, of course, are only implemented in the abstract - that is, their correct workings are only realized in a descendant. TView.Draw is one of these abstract methods. This method is called by Turbo Vision whenever a View object needs to be re-displayed in the screen. 
  440.   Glossary
  441.   What is a Dialog?
  442. Dialog boxes simplify the interaction between the program and the user. But the easier the program is to use, the more tedious it is to program. Anyone who has worked with Turbo Vision will know that a large part of the time is spent creating dialog boxes. Over and over again, a dialog will be honed and polished until it looks right. And then another option turns up, another inputline is to be inserted, and the job is back to square one. The Vision Workshop Dialog Editor allows a dialog to be constructed interactively on-screen using the mouse. 
  443.   Glossary
  444.   What is a File Dialog?
  445. Turbo Vision implements a standard file dialog for opening files. This object is defined in the unit StdDlgs. Vision Workshop allows you to add this kind of dialog to a resource. Furthermore it is possible to edit and change the appearance of the file dialog. 
  446.   Glossary
  447.   How do I create a menu?
  448. if you have already created a menu in TV, you will know that the Pascal instruction for this can get pretty overloaded with closing parentheses, NILs and commas. This is due to the fact that the entire menu tree is set up by just one function call. There is a lot more to a menu tree than just the names of the items in the menu. Help context numbers, key abbreviations and commands to be executed are equally part of this initialization process. 
  449.   Glossary
  450. This is the Menu Editor window: f
  451.  MainMenu 
  452.   Name                  Param          
  453.   SUBMENU '~
  454. ~'              
  455.   ~R~efresh display                    
  456.     MENUITEM '~A~bout...'    
  457.                                        
  458.     MENUITEM '~R~efresh displ
  459.   Command      Context       KeyCode   
  460.     MENUITEM '~C~lear desktop
  461.   156       
  462.   16         
  463.   0        
  464.   __End of SubMenu__         
  465. Search
  466. Compile
  467. Debug
  468. Options
  469. Window
  470. Help    
  471.                                                   
  472.  About...        
  473.                                                   
  474.  Refresh display 
  475.                                                   
  476.  Clear desktop   
  477.                                                   
  478.                                                   
  479.                                                                       
  480.   How do I create a popup menu?
  481. Popup menus are local menus that can pop up at an arbitrary position on the screen when they are activated via a particular key combination. 
  482.   Glossary
  483.   How do I create a string table?
  484. String Tables are pretty cool when you want to localize an application to a different (human) language. You don't have to hop around the program code and change the occurences of a particular word, recompile the whole program just to find out that you forget to change one word. w
  485. String Tables consist of an identifier and a string. Instead of using a hard-coded string you load a string with a praticular ID from the resource. All you have to keep track of in your program is the correct ID value and not the string. This makes changing the strings simpler and has a nice side-effect on the size of your program's data segment (we call it "lean dseg"). 
  486.   Glossary
  487.   What is a Validator?
  488. TValidator is the common ancestor of all validator objects. As an abstract type, it cannot be used directly in a program, but it defines all the methods which will be common to all validator objects. M
  489. There are three different predefined validator descendants in Turbo Vision: O
  490.   TFilterValidator
  491.   TLookupValidator
  492.   TPXPictureValidator
  493.   TRangeValidator
  494. More than that you can define your own validator objects in your program and even incorporate them into the validator selection box in Vision Workshop. 
  495.   TFilterValidator
  496. Filter validator objects check an input field as the user types into it. The validator holds a set of allowed characters. If the user types one of the legal characters, the filter validator indicates that the character is valid. If the user types any other character, the validator indicates that the input is invalid. The TRangeValidator is derived from TFilterValidator. It allows input within a specified range of values. When initialising a TRangeValidator you can restrict this range to whatever extent you want. 
  497.   TLookupValidator
  498. TLookupValidator shares the fate of the other abstract validator, TValidator; it will never be seen in a program in its own right, as you will need to make changes to some of its methods before the validator suits your needs. TStringLookupValidator is a child of TLookupValidator which scans through a StringCollection. Note that the test algorithm is case-sensitive, so you need to enter capitals and small characters exactly as they occur in the collection, or else no match will be found. 
  499.   TPXPictureValidator
  500. This kind of validator allows the user to closely specify the wildcards for a character string to be input. The letters 'PX' in the name derive from the fact that the characters used as wildcards conform to Paradox conventions. 
  501.   Wildcard    Stands for
  502.   =========================
  503.      #        numeric characters only
  504.      ?        alpha chars only, not case-sensitive
  505.      &        alpha chars, convert to capitals
  506.      @        any char
  507.      !        any char, convert alphas to capitals
  508.      ;        take next char 'literally'
  509.      *        repeat symbol
  510.      []       option
  511.      ,        a number of alternatives
  512.      all other chars are taken 'literally'
  513. Use curly braces as the grouping operator. 
  514.   TRangeValidator
  515. Range Validators can be used to ensure an entered integer value is in a certain numerical range. You can specify a minimum and a maximum value for this validator. 
  516. A TButton is sort of a switch which generates an event whenever you press it. You "press" it either when clicking on it with the mouse, by TAB-bing through the dialog or by using the highlighted shortcut character on the button. )
  517.  Button 
  518.                                          
  519.  Title:             Flags:               
  520.   ~B~utton           [X] Default         
  521.                      [ ] Left justified  
  522.  Help context:       [ ] Broadcast       
  523.   0               
  524.   [ ] Grab focus      
  525.                                          
  526.  Command:                                
  527.   10              
  528.     OK   
  529.    Cancel 
  530.                      
  531. TCheckBox is, like TRadioButton, a specialized descendant of TCluster. But unlike TRadioButton, TCheckBox allows several boxes (of up to 32) be checked at the same time. You can check the boxes either with the mouse (by clicking on it) or with the keyboard (by pressing the highlighted character). You can check the active switch by pressing the Space-key. 
  532.  CheckBoxes 
  533.                                                
  534.    Item 4                   Help context:      
  535.                              0                 
  536.    Item 1               
  537.                       
  538.    Item 2               
  539.                       
  540.    Item 3               
  541.                       
  542.    Item 4               
  543.                       
  544.                         
  545.                       
  546.                         
  547.                       
  548.                                                
  549.      OK   
  550.    Insert 
  551.    Replace 
  552.    Cancel 
  553. TDialog is a specialized descendant of TWindow and optimized to user interaction via buttons, inputlines and checkboxes or radiobuttons. 
  554.  Dialog 
  555.                                      
  556.  Title:              Options:        
  557.                       [ ] Centered   
  558.                       [ ] CenterX    
  559.  Help context:        [ ] CenterY    
  560.   0                
  561.                  
  562.                                      
  563.            OK   
  564.    Cancel 
  565.          
  566.          
  567.          
  568. A THistory object implements a pick-list of previous entries, actions, or choices from which the user  can select a "rerun". THistory objects are linked to an input line object and to a history list. a
  569.  History 
  570.                                        
  571.  History ID:  0                      
  572.                                        
  573.                                        
  574.      OK   
  575.    Select link 
  576.    Cancel 
  577. A TInputLine object provides a basic input line string editor. It handles keyboard input and mouse clicks and drags for block marking and a variety of line editing functions. 
  578.  InputLine 
  579.                                                         
  580.  Maximum length:    Validator:  None                    
  581.   20            
  582.                                        
  583.                      Choose 
  584.     Edit  
  585.    Clear  
  586.      
  587.  Help context:       
  588.      
  589.   0             
  590.                                        
  591.                                                         
  592.                     OK   
  593.    Cancel 
  594.                    
  595.                   
  596.                    
  597. If the entry in Maximum length is greater than the X dimension, horizontal scrolling is supported and indicated by left and right arrows. An input line frequently has labels, history lists and validators associated with it. 
  598. A TLabel object is a piece of text in a view that can be selected (highlighted) by mouse click, cursor keys, or Alt-Letter shortcuts. The label is usually attached via a PView pointer to sume other control view such as an input line, or list viewer to guide the user. This association can be created by clicking on the "Select link" button in the Label dialog box. 5
  599.  Label 
  600.                                        
  601.  Text:   ~L~abel                       
  602.                                        
  603.      OK   
  604.    Select link 
  605.    Cancel 
  606. The object TListbox is used to represent displayed lists of strings in one or more columns (NumCols) with an optional vertical or horizontal scroll bar. 
  607.  Listbox 
  608.                            
  609.  NumCols:  1            
  610.                            
  611.  HelpCtx:  0            
  612.                            
  613.  ScrollBar:                
  614.   [ ] horizontal           
  615.   [ ] vertical             
  616.                            
  617.       OK   
  618.      Cancel 
  619.      
  620. A Multi check box behaves just like a check box except that it can have more than the two states "checked" and "unchecked". Furthermore you can specify the characters which represent the different states. 
  621.  Multi check box 
  622.                                                
  623.                         Help context:          
  624.                          0                     
  625.    MultiCheckBox    
  626.    SelRange:  2           
  627.                     
  628.    States:    12          
  629.                     
  630.                           
  631.                     
  632.    Flags:                 
  633.                     
  634.     (
  635. ) cfOneBit          
  636.   max.   2 States
  637.                     
  638.     ( ) cfTwoBits         
  639.   max.   4 States
  640.                     
  641.     ( ) cfFourBits        
  642.   max.  16 States
  643.                     
  644.     ( ) cfEightBits       
  645.   max. 256 States
  646.                                                
  647.      OK   
  648.    Insert 
  649.    Replace 
  650.    Cancel 
  651.   Note:
  652. Please make sure that the string with the characters representing the states has the length specified in "SelRange". In our example, there will be two states; "SelRange" will have to take the value of 2, because the string "States" is two characters long ("12"). With the radio buttons grouped as "Flags", you specify the number of bits used for the data transfer. 
  653. The object TMemo is used as an editor within a dialog. The buffer can take as many characters as you specify in "Buffer Size" (up to $FFF0 = 65520 bytes). If the buffer size is bigger than the area of the dialog taken by the TMemo, you should also include scrollbars for easier editing. ,
  654.  Memo 
  655.                                 
  656.  Buffer size:   1000         
  657.                                 
  658.  HelpCtx:       0            
  659.                                 
  660.  ScrollBar:                     
  661. ) none                      
  662.   ( ) horizontal                
  663.   ( ) vertical                  
  664.   ( ) both                      
  665.                                 
  666.         OK   
  667.     Cancel 
  668.       
  669.       
  670.       
  671. TParamText is a derivative of TStaticText that uses parameterized text strings for formatted output, using the FormatStr procedure. 
  672.  ParamText 
  673.                                        
  674.  Text:   ParamText                     
  675.                                        
  676.  Count   0                             
  677.                                        
  678.             OK   
  679.     Cancel 
  680.          
  681.           
  682.          
  683. Text contains the text to be displayed and Count indicates the number of parameters contained in Text. 
  684. TRadioButton objects are clusters of up to 65,536 controls with the special property that only one control button in the cluster can be selected. Selecting an unselected button will automatically deselect the previously selected button. =
  685.  Radio button items 
  686.                                                
  687.                             Help context:      
  688.                              0                 
  689.    RadioButton          
  690.                       
  691.                         
  692.                       
  693.                         
  694.                       
  695.                                                
  696.      OK   
  697.    Insert 
  698.    Replace 
  699.    Cancel 
  700. The list box at the left side of the dialog contains the names of all the controls in this TRadioButton cluster. 
  701. TScrollbars are used to move the contents of the view they are linked to. Most objects only allow either horizontal or vertical scrollbars, some can take both (TMemo for instance). S
  702.  ScrollBar 
  703.                             
  704.  Minimum:  0              
  705.                             
  706.  Maximum:  0              
  707.                             
  708.  PgStep:   1              
  709.                             
  710.  ArStep:   1              
  711.                             
  712.  HelpCtx:  0              
  713.                             
  714.  Type:     ( ) horizontal   
  715.            (
  716. ) vertical     
  717.                             
  718.        OK   
  719.     Cancel 
  720.      
  721. The fields Minimum and Maximum specify the range of the Scrollbar. The scrollbar moves the view's contents for PgStep lines or columns whenever you press the PgUp or PgDn keys. The same applies to mouse clicks. It will be incremented or decremented by ArStep when you use the cursor keys. 
  722. TStaticText objects represent the simplest possible views: they contain fixed text and they ignore all events passed to them. They are generally used as messages or passive labels. Descendants of TStaticText perform more active roles. 5
  723.  StaticText 
  724.                                        
  725.  Text:   StaticText                    
  726.                                        
  727.             OK   
  728.     Cancel 
  729.          
  730.           
  731.          
  732.