FBHFΣ┘R╫ 
   Sorry ▄
  ▀▀▀▀▀▀▀▀
,
There is no help available for this topic.  +
  Project List Box ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
┤
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.  
  File ▄
  ▀▀▀▀▀▀
£
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. ü
  New project
  Open project
  Save project
  Save project as
  Add to project
  Add source file
  Install user-defined objects
Θ│Ω┴δ╨∞▀φ±ε∩ !
  New Project ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
q
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 Menu, where you can select an item by clicking on the option New. ░H
▒Ä #
  Open Project ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
R
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.  #
  Save Project ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
┬
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.  /
  Save Project As... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
±
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.  '
  Add To Project ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
U
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 as in the Resource menu. ┤_ ?
  Add Source File To Project ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
┐
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.  /
  Install Objects... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2
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. 
 IMPORTANT
 ---------
yIf 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.  +
  Change Directory ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Ü
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.  !
  Preferences ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
¢
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. )
  ╔═[■]════════════════════ Preferences ════════════════════════╗
  ║                                                             ║
  ║  Resource file                Prefered prefixes             ║
  ║   [X] Create backup           ─────────────────             ║
  ║   [ ] Save on test dialog                                   ║
  ║                                Commands:       cm           ║
  ║  Symbol retrieval                                           ║
  ║   [X] Re-parse at start-up     Help contexts:  hc           ║
  ║   [ ] Interface section only                                ║
  ║                                String ID's:    st           ║
  ║  Dialog editor alignment                                    ║
  ║   () Selected view bounds     Keyboard:       kb           ║
  ║   ( ) Group bounds                                          ║
  ║                                                             ║
  ║  Include path:                                              ║
  ║   \bp\rtl\owl                                               ║
  ║                                                             ║
  ║                  OK   ▄   Cancel ▄    Help  ▄               ║
  ║                ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀               ║
  ╚═════════════════════════════════════════════════════════════╝
 
  Exit ▄
  ▀▀▀▀▀▀
Γ
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.  '
  Reopen Project ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
├
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.  
  Edit ▄
  ▀▀▀▀▀▀
¿
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.  
  Cut ▄
  ▀▀▀▀▀
╗
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).  
  Copy ▄
  ▀▀▀▀▀▀
╗
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).  
  Paste ▄
  ▀▀▀▀▀▀▀
▀
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).  
  Resource ▄
  ▀▀▀▀▀▀▀▀▀▀
n
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 symbolic 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. ╡σ #
  New Resource ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
₧
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: «
  ╔═[■]══════ New resource ══════════╗
  ║                                  ║
  ║  Resource type                   ║
  ║   () Dialog                     ║
  ║   ( ) Menu                       ║
  ║   ( ) Popup menu                 ║
  ║   ( ) String table               ║
  ║                                  ║
  ║     OK   ▄   Cancel ▄    Help  ▄ ║
  ║   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀ ║
  ╚══════════════════════════════════╝
≡
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. │B╡i╖É
╕╖ )
  Delete Resource ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ô
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.  )
  Rename Resource ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
∩
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.  +
  Save Resource As ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
═
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 to project in the File menu. φ╪ 9
  Show Symbolic Constants ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
W
After you have added several source files to your resource project by using the option Add source file to 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. 
See also:   The Consts dialog
εÆ╢₧ /
  Symbolic Constants ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 
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
  ╔═[■]═════════════════ Symbolic Constants ══════════════════════╗
  ║                                                               ║
  ║ Name : bfBroadcast                         Status             ║
  ║ Value: 4 ($4)                              [ ] modified       ║
  ║ Total: 16                                  [ ] user-defined   ║
  ║ File : E:...\UNITS\DIALOGS.PAS             [X] Hex expression ║
  ║                                                               ║
  ║  Identifier                                                   ║
  ║  bfBroadcast                                                 ║
  ║  bfDefault                               ■         New      ▄ ║
  ║  bfGrabFocus                             ▒    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║
  ║  bfLeftJust                              ▒       Delete     ▄ ║
  ║  bfNormal                                ▒    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║
  ║  cfEightBits                             ▒        Edit      ▄ ║
  ║  cfFourBits                                  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║
  ║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓          Ok       ▄ ║
  ║                                               ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║                ║
  ║  Show                         File                            ║
  ║  () All  ( ) One File        (All Files)                    ║
  ╚═══════════════════════════════════════════════════════════════╝
╖╕∞╣√ A
  Status
  [ ] modified
  [ ] user-defined
  [ ] Hex expression

  Modified
1value of constant has been changed since parsing 
  User-defined
uconstant was not parsed but was edited on-the-fly during an editing session, they will be written into a source file 
  Hex expression
▒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.  )
  Define Constant ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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. 
  ╔═[■]══ Define Constant ═══════╗
  ║                              ║
  ║ New Name                     ║
  ║  testname                    ║
  ║                              ║
  ║ New Value                    ║
  ║  0                          ║
  ║                              ║
  ║ Filename                     ║
  ║  USRFILE.PAS                ║
  ║                              ║
  ║                              ║
  ║       OK   ▄    Cancel ▄     ║
  ║     ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀     ║
  ╚══════════════════════════════╝

  Show Symbolic constants
╡S %
  Edit Constant ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╓
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. Ñ
  ╔═[■]═══ Edit Constant ════════╗
  ║                              ║
  ║ Name:  bf_Checked            ║
  ║ Value: 1 ($1)                ║
  ║                              ║
  ║ New Value                    ║
  ║  1                          ║
  ║                              ║
  ║                              ║
  ║       OK   ▄    Cancel ▄     ║
  ║     ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀     ║
  ╚══════════════════════════════╝

  Show Symbolic constants
╡ñ 
  Menu ▄
  ▀▀▀▀▀▀
╛
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
  See also:
  Menu Editor Window
  Insert Menu
  Insert Item
  Insert Line
  Delete
Q
This submenu is not visible until you enter the Menu Editor of Vision Workshop. ╢ß÷  !
  Insert Menu ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
a
This option inserts a new menu below the line that's currently highlighted in the outline pane.  !
  Insert Item ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
φ
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.  !
  Insert Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀


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.  !
  Delete Item ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
P
This option will delete the currently highlighted entry from the outline pane.  )
  Name Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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.  /
  Command Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
}
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.  +
  Param Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ä
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.  /
  Context Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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.  1
  Key Code Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╝
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.  /
  Menu Item List Box ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
å
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.  9
  Menubar Overview Window ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ƒ
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.  #
   Test Popup  ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
F
By clicking on this button, you can test the popup menu you defined.  
  Dialog ▄
  ▀▀▀▀▀▀▀▀
T
This menu is not visible until you enter the Dialog Editor of the Vision Workshop. 
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.  
  New View ▄
  ▀▀▀▀▀▀▀▀▀▀
~
Insert a new view into the dialog. An dialog called "Select View" will pop open, where you can choose a view to be inserted. ╧
  ╔═[■]═══════ Select View ═══════════╗
  ║                                   ║
  ║  Button                          ║
  ║  CheckBoxes                     ■ ║
  ║  History                        ▒ ║
  ║  InputLine                      ▒ ║
  ║  Label                          ▒ ║
  ║  Listbox                        ▒ ║
  ║  Memo                         ▒ ║
  ║  MultiCheckBoxes                ▒ ║
  ║  ParamText                      ▒ ║
  ║  RadioButtons                   ▒ ║
  ║  ScrollBar                      ▒ ║
  ║  StaticText                      ║
  ║                                   ║
  ║         Okay  ▄     Cancel ▄      ║
  ║        ▀▀▀▀▀▀▀▀     ▀▀▀▀▀▀▀▀      ║
  ╚═══════════════════════════════════╝
╛≡┐
┴@┬h	├É─╕╞α┼╟.	╚V╔~	╩ª
 
  Edit View ▄
  ▀▀▀▀▀▀▀▀▀▀▀
.
Edit an already existing view in the dialog.  !
  Delete View ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
6
Deletes the currently selected view from the dialog.  %
  Reorder Views ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
░
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. `
Whatever way you choose to set up your dialogs, you should always remember a few vital things: N  * TAB-order should start at the top left corner and should end at the lower
right corner of the dialog J  * To make data input as easy as possible, choose a reasonable TAB-order
 
  Tag View ▄
  ▀▀▀▀▀▀▀▀▀▀
t
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.  !
  Test Dialog ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
╚
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  You can try out your shiny new dialog right in the Workshop and don't have
-to run through all the "turn-around" hastle. M  The tested dialog behaves just like you had it inserted it into a desktop.
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. ±x
 -
  Edit View Options ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
x
In this dialog you can change the basic flags and options of a Turbo Vision view object: State, Options and EventMask. î
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. |
For a little more thorough explanation of these flags, please turn to the Borland Pascal Turbo Vision Programmer's Manual.  ;
  Center View Horizontally ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
s
If you want to center a view or a group of views horizontally within the bounds of the dialog choose this option.  7
  Center View Vertically ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
r
If you want to center a view or a group of views verticallly within the bounds of the dialog choose this option.  
  New Dialog ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
å
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. ╣
  ╔═[■]══════ Select Dialog ══════════╗
  ║                                   ║
  ║  Dialog                          ║
  ║  FileDialog                     ■ ║
  ║                                 ▒ ║
  ║                                 ▒ ║
  ║                                  ║
  ║                                   ║
  ║         Okay  ▄     Cancel ▄      ║
  ║        ▀▀▀▀▀▀▀▀     ▀▀▀▀▀▀▀▀      ║
  ╚═══════════════════════════════════╝
│ⁿ┤$
 %
  New Validator ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
è
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
  ╔═[■]════ Select Validator ═════════╗
  ║                                   ║
  ║  FilterValidator                 ║
  ║  PXPictureValidator             ■ ║
  ║  RangeValidator                 ▒ ║
  ║  StringLookupValidator          ▒ ║
  ║                                 ▒ ║
  ║                                 ▒ ║
  ║                                 ▒ ║
  ║                                  ║
  ║                                   ║
  ║         Okay  ▄     Cancel ▄      ║
  ║        ▀▀▀▀▀▀▀▀     ▀▀▀▀▀▀▀▀      ║
  ╚═══════════════════════════════════╝
║╝.╜V╗~ %
  Dialog Editor ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
⌡
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. ¿
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. █
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. ╟
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.  
  Strings ▄
  ▀▀▀▀▀▀▀▀▀
Y
This submenu is not visible until you enter the String Table Editor of Vision Workshop. 7
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!  !
  Insert Item ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
é
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.  !
  Delete Item ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
k
Selecting this option will cause the currently highlighted entry in the String Table Editor to disappear.  
  Goto ID... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
Ç
With this option you can move your cursor to a certain ID value without having to scroll down all of the String Editor Window.  
  Find... ▄
  ▀▀▀▀▀▀▀▀▀
â
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 Again option or the Ctrl-L key combination for finding the next one. ßS
 
  Find Again ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
┤
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. αX %
  ID Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╪
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.  -
  String Input Line ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
1
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).  
  Windows ▄
  ▀▀▀▀▀▀▀▀▀
⌠
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.  
  Tile ▄
  ▀▀▀▀▀▀
K
With this option you can arrange the windows on the desk top in this way: ?
  ┌────────────────────────────────────┐
  │ ╔════════════1══╗┌────────────2──┐ │
  │ ║               ║│               │ │
  │ ║               ║│               │ │
  │ ║               ║│               │ │
  │ ║               ║│               │ │
  │ ╚═══════════════╝└───────────────┘ │
  │ ┌────────────3──┐┌────────────4──┐ │
  │ │               ││               │ │
  │ │               ││               │ │
  │ │               ││               │ │
  │ │               ││               │ │
  │ └───────────────┘└───────────────┘ │
  └────────────────────────────────────┘
 
  Cascade ▄
  ▀▀▀▀▀▀▀▀▀
K
With this option you can arrange the windows on the desk top in this way: A
 ┌──────────────────────────1─┐
 │┌─────────────────────────2─┐
 ││┌────────────────────────3─┐
 │││╔═══════════════════════4═╗
 │││║                         ║
 │││║                         ║
 │││║                         ║
 │││║                         ║
 │││║                         ║
 └└└╚═════════════════════════╝
 
  Size/Move ▄
  ▀▀▀▀▀▀▀▀▀▀▀
▀
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.  
  Zoom ▄
  ▀▀▀▀▀▀
ñ
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.  
  Next ▄
  ▀▀▀▀▀▀
â
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.  
  Close ▄
  ▀▀▀▀▀▀▀
σ
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.  
  Help ▄
  ▀▀▀▀▀▀
┬
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  * Press F1 at any time (including from any dialog box or when any menu
command is selected). J  * Click Help wherever it appears on the status line or in a dialog box.
Ç
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.  =
  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  ▌ Help Contents ▐
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╪
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: +
  File
  Edit
  Resource
  Windows
  Help
ΦL ░'@2ñ< 3  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  ▌ Using Help ▐
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
8
This is the integrated Help system of Vision Workshop. j
  * What you are reading right now, is a "Help screen"
  * Most help screens have some highlighted items
6(Help keywords) that lead you to another Help screen. ≤
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
The best way to get to a keyword is to double-click on it with the left mouse button. J
Try it now and choose one of the following Help keywords to get started: A
  Help Contents
  Glossary of Terms
  About the Vision Workshop
Ñú
º│¿╟ -  ▄▄▄▄▄▄▄▄▄▄▄▄
  ▌ Glossary ▐
  ▀▀▀▀▀▀▀▀▀▀▀▀
ÿ
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. `
  Dialog
  Group
  Menu Bar
  Popup Menu
  Resource
  Stream
  String Table
  Validator
  View
	│╔«╥░┌╖σ
»≥▒²╕╣	▓! 
  About ▄
  ▀▀▀▀▀▀▀
W
This dialog shows you who was involved in the development process of Vision Workshop.  '
  Parsing Dialog ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
î
This dialog has the same functionality as the Compile dialog in Borland Pascal. It shows you statistics about the ongoing parsing process. 
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.  (
  What is a Group?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
:
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  A Group differs from a View object in its ability to manage several View
╪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. 
  Glossary
ºë .
  What is a Resource?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╧
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. 
  Glossary
▒gº .
  What is a Menu Bar?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
⌐
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. 
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
If you want to know how to create a menu bar in Vision Workshop, go ahead to the help screen How do I create a menu bar. 
  Glossary
╡Qºp *
  What is a Stream?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
¬
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  A stream is an object which controls other objects on their way somewhere.
║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). 
  Glossary
▓Uº▀ &
  What is a View?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Ä
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. 
  Glossary
º╕ *
  What is a Dialog?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
(
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. 
  Glossary
ºV 4
  What is a File Dialog?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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. 
  Glossary
º= 6
  How do I create a menu?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
└
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. 
  Glossary
º· !
This is the Menu Editor window: f
  ╔═[■]══════════════════════════ MainMenu ══════════════════════════[]═╗
  ║  Name                  Param          │  SUBMENU '~≡~'              ║
  ║  ~R~efresh display                    │    MENUITEM '~A~bout...'    ■║
  ║                                       │    MENUITEM '~R~efresh displ▒║
  ║  Command      Context       KeyCode   │    MENUITEM '~C~lear desktop▒║
  ║  156         16           0        │  __End of SubMenu__         ║
  ║───────────────────────────────────────┴──────────────────────────────║
  ║ ≡  File  Edit  Search  Run  Compile  Debug  Options  Window  Help    ║
  ║ ┌─────────────────┐                                                  ║
  ║ │ About...        │                                                  ║
  ║ │ Refresh display │                                                  ║
  ║ │ Clear desktop   │                                                  ║
  ║ └─────────────────┘                                                  ║
  ║                                                                      ║
  ╚═════════════════════════════════════════════════════════════════════─┘
5s7ë:¢6T8a9o:4A B
  How do I create a popup menu?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Ä
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. 
  Glossary
º╘ F
  How do I create a string table?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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
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"). 
  Glossary
º┘ 0
  What is a Validator?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╔
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
There are three different predefined validator descendants in Turbo Vision: O
  TFilterValidator
  TLookupValidator
  TPXPictureValidator
  TRangeValidator
Ö
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. ║J╗]╝p╜å (
  TFilterValidator
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

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.  (
  TLookupValidator
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
φ
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.  .
  TPXPictureValidator
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
σ
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. ┤
  Wildcard    Stands for
  =========================
     #        numeric characters only
     ?        alpha chars only, not case-sensitive
     &        alpha chars, convert to capitals
     @        any char
     !        any char, convert alphas to capitals
     ;        take next char 'literally'
     *        repeat symbol
     []       option
     ,        a number of alternatives
     all other chars are taken 'literally'
,
Use curly braces as the grouping operator.  &
  TRangeValidator
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ñ
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.  µ
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. )
  ╔═[■]════════════ Button ═════════════════╗
  ║                                         ║
  ║ Title:             Flags:               ║
  ║  ~B~utton           [X] Default         ║
  ║                     [ ] Left justified  ║
  ║ Help context:       [ ] Broadcast       ║
  ║  0                 [ ] Grab focus      ║
  ║                                         ║
  ║ Command:                                ║
  ║  10                  OK   ▄   Cancel ▄ ║
  ║                     ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀ ║
  ╚═════════════════════════════════════════╝
 f
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. ┘
  ╔═[■]═════════════ CheckBoxes ══════════════════╗
  ║                                               ║
  ║   Item 4                   Help context:      ║
  ║                             0                 ║
  ║   Item 1                                     ║
  ║   Item 2               ■                      ║
  ║   Item 3               ▒                      ║
  ║   Item 4               ▒                      ║
  ║                        ▒                      ║
  ║                                              ║
  ║                                               ║
  ║     OK   ▄   Insert ▄   Replace ▄   Cancel ▄  ║
  ║   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀  ║
  ╚═══════════════════════════════════════════════╝
 è
TDialog is a specialized descendant of TWindow and optimized to user interaction via buttons, inputlines and checkboxes or radiobuttons. ╧
  ╔═[■]══════════ Dialog ═══════════════╗
  ║                                     ║
  ║ Title:              Options:        ║
  ║                      [ ] Centered   ║
  ║                      [ ] CenterX    ║
  ║ Help context:        [ ] CenterY    ║
  ║  0                                 ║
  ║                                     ║
  ║           OK   ▄   Cancel ▄         ║
  ║         ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀         ║
  ╚═════════════════════════════════════╝
 ╔
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
  ╔═[■]═══════════ History ═══════════════╗
  ║                                       ║
  ║ History ID:  0                       ║
  ║                                       ║
  ║                                       ║
  ║     OK   ▄   Select link ▄   Cancel ▄ ║
  ║   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀ ║
  ╚═══════════════════════════════════════╝
 ░
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. á
  ╔═[■]══════════════════ InputLine ═══════════════════════╗
  ║                                                        ║
  ║ Maximum length:    Validator:  None                    ║
  ║  20                                                   ║
  ║                     Choose ▄    Edit  ▄   Clear  ▄     ║
  ║ Help context:       ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀     ║
  ║  0                                                    ║
  ║                                                        ║
  ║                    OK   ▄   Cancel ▄                   ║
  ║                  ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀                   ║
  ╚════════════════════════════════════════════════════════╝
ß
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.  n
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
  ╔═[■]════════════ Label ════════════════╗
  ║                                       ║
  ║ Text:   ~L~abel                       ║
  ║                                       ║
  ║     OK   ▄   Select link ▄   Cancel ▄ ║
  ║   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀ ║
  ╚═══════════════════════════════════════╝
 Ü
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. í
  ╔═[■]═════ Listbox ═════════╗
  ║                           ║
  ║ NumCols:  1              ║
  ║                           ║
  ║ HelpCtx:  0              ║
  ║                           ║
  ║ ScrollBar:                ║
  ║  [ ] horizontal           ║
  ║  [ ] vertical             ║
  ║                           ║
  ║      OK   ▄     Cancel ▄  ║
  ║    ▀▀▀▀▀▀▀▀     ▀▀▀▀▀▀▀▀  ║
  ╚═══════════════════════════╝
 ╬
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. à
  ╔═[■]═══════════ Multi check box ═══════════════╗
  ║                                               ║
  ║                        Help context:          ║
  ║                         0                     ║
  ║   MultiCheckBox       SelRange:  2           ║
  ║                    ▓   States:    12          ║
  ║                    ▓                          ║
  ║                    ▓   Flags:                 ║
  ║                    ▓    () cfOneBit          ║  max.   2 States
  ║                    ▓    ( ) cfTwoBits         ║  max.   4 States
  ║                    ▓    ( ) cfFourBits        ║  max.  16 States
  ║                        ( ) cfEightBits       ║  max. 256 States
  ║                                               ║
  ║     OK   ▄   Insert ▄   Replace ▄   Cancel ▄  ║
  ║   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀  ║
  ╚═══════════════════════════════════════════════╝
	
  Note:
n
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.   
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. ,
  ╔═[■]═════════ Memo ═════════════╗
  ║                                ║
  ║ Buffer size:   1000           ║
  ║                                ║
  ║ HelpCtx:       0              ║
  ║                                ║
  ║ ScrollBar:                     ║
  ║  () none                      ║
  ║  ( ) horizontal                ║
  ║  ( ) vertical                  ║
  ║  ( ) both                      ║
  ║                                ║
  ║        OK   ▄    Cancel ▄      ║
  ║      ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀      ║
  ╚════════════════════════════════╝
 à
TParamText is a derivative of TStaticText that uses parameterized text strings for formatted output, using the FormatStr procedure. ì
  ╔═[■]══════════ ParamText ══════════════╗
  ║                                       ║
  ║ Text:   ParamText                     ║
  ║                                       ║
  ║ Count   0                             ║
  ║                                       ║
  ║            OK   ▄    Cancel ▄         ║
  ║          ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀         ║
  ╚═══════════════════════════════════════╝
h
Text contains the text to be displayed and Count indicates the number of parameters contained in Text.  ε
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. =
  ╔═[■]═════════ Radio button items ══════════════╗
  ║                                               ║
  ║                            Help context:      ║
  ║                             0                 ║
  ║   RadioButton                                ║
  ║                        ▓                      ║
  ║                                              ║
  ║                                               ║
  ║     OK   ▄   Insert ▄   Replace ▄   Cancel ▄  ║
  ║   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀▀   ▀▀▀▀▀▀▀▀  ║
  ╚═══════════════════════════════════════════════╝
r
The list box at the left side of the dialog contains the names of all the controls in this TRadioButton cluster.  ╢
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
  ╔═[■]════ ScrollBar ═════════╗
  ║                            ║
  ║ Minimum:  0               ║
  ║                            ║
  ║ Maximum:  0               ║
  ║                            ║
  ║ PgStep:   1               ║
  ║                            ║
  ║ ArStep:   1               ║
  ║                            ║
  ║ HelpCtx:  0               ║
  ║                            ║
  ║ Type:     ( ) horizontal   ║
  ║           () vertical     ║
  ║                            ║
  ║       OK   ▄    Cancel ▄   ║
  ║     ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀   ║
  ╚════════════════════════════╝
"
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.  ∞
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
  ╔═[■]═════════ StaticText ══════════════╗
  ║                                       ║
  ║ Text:   StaticText                    ║
  ║                                       ║
  ║            OK   ▄    Cancel ▄         ║
  ║          ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀         ║
  ╚═══════════════════════════════════════╝
 hnâΦΘΩδ∞φε∩≡±≥L░▒▓│┤╡╢╖╕╣xyz{|}~Çüéâ▄▌▐▀αß@ñÑªº¿⌐«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╤╥56789:;<■     ! # $ % '             [F¿P╤┬ε
{àêYMND╜"W$▄'ñ)╚*╤,£.k5L7═:ƒ=A?╧?Θ@#BÜNP═S$TçTçV"X[└\z]/^ª`"i┌kël!m╠myo╨r╝{╥~:ÇGâ¿ä àç½ë═èdÄjÉ>ô░ò	ùÖ╒¥┼₧╜íñOªp¿u½K¼f»▒│╢L╕î╝;┐é┴^╟╢╩?═δ╨%╒]pfqáB╓CÄEIGçHÇJAL%N⌐c π ╜!ΘsòvIxQyz╢z                        