home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / envelop / envelop.3 / Program / notes.txt < prev    next >
Text File  |  1996-07-08  |  28KB  |  588 lines

  1. This file contains the most up-to-date information about changes to
  2. the current and previous Envelop releases. Each release has its own
  3. section, with the most recent at the top of the file. Version 1.4
  4. is the final release of Envelop. See README.TXT for more information.
  5.  
  6. ==============================================================================
  7. NOTE: Because Envelop Engine relies on registry entries that are made
  8.       at install time, different versions of Envelop Engine will not
  9.       run simultaneously at this time. For example, if you install version
  10.       1.2 in a different directory, but on the same computer as 1.1 is
  11.       installed, then the 1.1 version will no longer operate correctly,
  12.       unless the registry entries are returned to the correct state for
  13.       version 1.1. Each version of Envelop Engine includes a file,
  14.       envelop.reg, which contains the correct registry entries for that
  15.       release. To install the correct registry entries for a particular
  16.       version of Envelop Engine, double-click on the .REG file for that
  17.       release (using Explorer or File Manager), or run the command:
  18.         C:\ENVELOP\PROGRAM> REGEDIT ENVELOP.REG
  19.       from a DOS prompt, with current directory set to the appropriate
  20.       PROGRAM directory for the release you wish to run.
  21. ==============================================================================
  22.  
  23. ENVELOP ENGINE RELEASE HISTORY
  24.  
  25.        Release 1.4
  26.  
  27.         CHANGES SINCE PREVIOUS RELEASE:
  28.  
  29.     - Added the TreeView control
  30.  
  31.     - Updated Help File
  32.  
  33.     - Fixes for the OCX Tool
  34.  
  35.     - Added the RunProgramShow method which provides greater flexibility for running 
  36.       external programs from within Envelop.
  37.  
  38.         ==============================================================================
  39.         Release 1.3
  40.  
  41.         CHANGES SINCE PREVIOUS RELEASE:
  42.  
  43.     - Envelop has a new Application Setup Wizard to let you quickly and 
  44.       easily package your Envelop applications for distribution.
  45.  
  46.     - OCX Tool (found beneath the Tools menu) is a new utility for
  47.       easily integrating OCX's into Envelop.
  48.  
  49.     - Expanded support for popup menus.  Any Window (Forms, Controls, etc.)
  50.       can have a popup menu.  Also, PopupMenu objects can now handle their
  51.       own Click and Enable events, similar to other controls.
  52.  
  53.     - New tutorials and update documentation have been added to the Help file.
  54.  
  55.     - New samples for TabStrip and ListView.
  56.  
  57.     - TabStrips now receive Resize events.  Also, there is a default Resize 
  58.       event handler in place on the TabStrip object which handles the resizing 
  59.       of any embedded forms referenced by the TabStrip's tabs.
  60.  
  61.     - TabStrip has a SelectedItem reference property which lets you set or 
  62.       get the currently selected tab.
  63.  
  64.     - TabStripTabs now have a TabForm reference property for referring to 
  65.       an embedded form.  They also have a default Click event handler which 
  66.       will BringToTop any subform referenced by its TabForm property.
  67.  
  68.     - Newly embedded TabStripTabs in a TabStrip will be added to the end rather 
  69.       than the beginning of the tabs.
  70.  
  71.     - ImageList has two new methods: RemoveImage, for removing a specified image; 
  72.       and AddBitmapScaled which lets you add a bitmap to the ImageList and have it 
  73.       scaled to match the ImageList's current width and height dimensions.
  74.  
  75.     - For: ListBox, ObjectList, ObjectHierarchy, IndentedList;
  76.       added FindIndexUnderPoint method for finding the index of the item
  77.       in the list at the coordinates reported by a mouse event.
  78.  
  79.     - Fixed bug which was disabling drag and drop on the Windows 95 desktop.
  80.  
  81.     - Fixed bug where 24bit bitmaps in an ImageList would cause a crash.
  82.  
  83.     - Destroy method for the Directory object is now implemented to competely
  84.       destroy a directory and all of its contents. As a precaution, this method
  85.           will not destroy the root directory on any drive. Use with caution!
  86.  
  87.     - Fixed a bug which was causing a crash when an active HyperControl 
  88.       was deleted.
  89.  
  90.     - Fixed bugs which occurred when ListView was saved with anything other
  91.       than a Report style View property.
  92.  
  93.     - Fixed problems preserving ListView ColumnHeader width when ColumnHeaders 
  94.       were resized interactively.
  95.  
  96.     - New methods for writing to File and BinaryFile.
  97.  
  98.     - New TempBinaryFile object. Similar to TempTextFile, it allows you to create
  99.       a temporary binary file.
  100.  
  101.     - New objects for working with OLE structured storage files: CompoundFile,
  102.       OleStorageElement, OleStorage, OleRootStorage, and OleStream.
  103.  
  104.     - Added a new object, called PathString, which is used to manage a semi-colon
  105.       separated list of names.
  106.  
  107.     - Fixed two bugs with controls bound to a DataControl 
  108.         1. the DataChanged property was getting set to True during module
  109.            load from a text file (*.ETO).
  110.         2. data from the data source was not being displayed if it consisted of
  111.            a single character or digit.
  112.  
  113.  
  114.         ==============================================================================
  115.         Release 1.2.2
  116.     
  117.         CHANGES SINCE PREVIOUS RELEASE:
  118.     
  119.     - Several new tutorials have been added to the online documentation:
  120.       including menu editor, Ocx, TabStrip, ListView, and database tutorials.
  121.     
  122.     - The SystemTools object is now documented. It provides the RunProgram
  123.       methods for executing other programs from Envelop applications.
  124.     
  125.     - A glossary of terms has been added to the online documentation.
  126.     
  127.     - ODBC object now ignores inaccessible tables (prevented easy connection
  128.       to MS Access databases)
  129.     
  130.     - ODBC now formats table names internally within quotes
  131.       so table names containing whitespace work properly.
  132.     
  133.     - ODBC properties TableName, FieldName, DriverName, and DataSourceName
  134.       are now read-write properties (formerly read-only).
  135.     
  136.     - ODBC TableIndex, FieldIndex, DriverIndex, and DataSourceIndex properties
  137.       are now reset to zero when appropriate to avoid invalid index values.
  138.     
  139.     - Fixed ValueData method for ODBC source so it can retrieve more than 1K
  140.       of data and so it returns correct retrieved data size.
  141.     
  142.     - Fixed bugs in TabStripTab and ColumnHeader Caption properties.
  143.     
  144.     - Several enhancements and fixes to the DataControl Configuration Wizard.
  145.     
  146.     - ObjectViewer now uses left-mouse button to drag objects (to the Controls
  147.       palette, for example).
  148.     
  149.     - ObjectViewer's Project view no longer auto-selects the currently-selected
  150.       object when switching to the project view. This avoids the annoying
  151.       expansion of module items in the project view. The other views still
  152.       auto-select to assist in locating an object's module or place in the
  153.       inheritance hierarchy.
  154.     
  155.         ==============================================================================
  156.  
  157.         Release 1.2.1
  158.     
  159.         CHANGES SINCE PREVIOUS RELEASE:
  160.     
  161.     - Fixed a problem with OCX objects under Windows 95 that prevented
  162.       arguments to OCX methods and events from being recognized.
  163.     
  164.     - OCX controls now initialize the OCX members when the OCXClassName
  165.       property is set.
  166.     
  167.     - Fixed a bug in copying of initialized OCX objects.
  168.     
  169.     - Fixed a bug in loading of controls from binary modules (EBOs) that
  170.       caused problems when the control had a DataSource.
  171.     
  172.     - Fixed uninitialized data problem in UpdateDataSource event.
  173.     
  174.     - Fixed a caching bug that caused stale array reference after redim.
  175.     
  176.         ==============================================================================
  177.  
  178.         Release 1.2
  179.     
  180.         CHANGES SINCE PREVIOUS RELEASE:
  181.  
  182.     NOTE: Envelop Engine 1.2 now requires Windows NT version 3.51,
  183.           or Windows 95 to install and run.
  184.  
  185.     - Online help file has been upgraded to new Windows 95 style help file.
  186.  
  187.     - Implemented product uninstall support for Envelop Engine.
  188.  
  189.     - Interpreter performance has been enhanced by adding a member lookup cache,
  190.       and by several smaller optimizations.
  191.  
  192.     - Preliminary implementation of new common controls objects: RichTextBox,
  193.       ListView, TabStrip, ImageList, and support objects: ListItem, ColumnHeader,
  194.       and TabStripTab.
  195.  
  196.     - Implemented new menu editor.  Graphical, indented-list style editor,
  197.       simplifies the menu editing process.  Built as an interpretive object: MenuEdit.
  198.  
  199.     - Preliminary support for OCX controls.
  200.  
  201.     - Removed support for VBX controls. VBX support was limited to VBX 1.0 only, under
  202.       Windows NT only. VBX support removed in favor of focusing on OCX support.
  203.  
  204.     - The Configure DataControl Wizard has new functionality to create, layout, and
  205.       modify a set of controls on the form that correspond to fields in a database table.
  206.       This is a preliminary implementation of this functionality that we will continue
  207.       to refine to make DataControls and associated controls easier to work with.
  208.  
  209.     - Object references can now be passed as by-reference arguments. This change can
  210.       cause new side effects for existing code, since the default prior to this release
  211.       was to pass object references as ByVal, and specifying ByVal for object reference
  212.       parameters was illegal. For example, suppose an object has the following methods:
  213.  
  214.         Sub doit(o As Object)
  215.           o = Nothing
  216.         End Sub
  217.  
  218.         Sub go
  219.           Dim ref As Object
  220.           ref = Me
  221.           doit(ref)
  222.           Debug.Print ref
  223.         End Sub
  224.  
  225.       Prior to release 1.2, when go() was invoked, it would have printed Me (whoever
  226.       I am) to the Debug window. As of release 1.2, the same method will print a
  227.       blank line, since the object reference "ref" will be modified by the doit()
  228.       method. If a new side effect is introduced, it can be corrected by modifying
  229.       the parameter definition, as in:
  230.  
  231.         Sub doit(ByVal o As Object)
  232.           o = Nothing
  233.         End Sub
  234.  
  235.       which returns doit() to the state of having no effect on the "ref" argument.
  236.       We decided the risk of new side effects in existing code was worth fixing
  237.       the old behavior, since before the only way of getting an object from a
  238.       method was by the return value. Now in-out or out-only parameters can be
  239.       used to receive objects from a subroutine or function. In the Envelop code,
  240.       approximately 10,000 lines of Basic, we had two undesirable side effects
  241.       that required fixing because of this change.
  242.  
  243.     - A new mechanism is in place to help recover objects from a module that
  244.       cannot load properly because prerequisite objects can't be found or no
  245.       longer match the dependent objects in the module. This situation is known
  246.       as a proxy-resolve failure, and can occur when a base object (a source
  247.       for some derived, or copied object) has been modified outside the presence
  248.       of the dependent object, or has been destroyed outside the presence of the
  249.       dependent object, or simply is not yet loaded when the dependent is loaded.
  250.       Now when a module experiences a proxy-resolve failure, a new object is created
  251.       to meet the proxy-resolve needs of the dependent object, and the object is
  252.       allowed to load as a child of the new proxy object. This can help to recover
  253.       work that could have been lost under revisions prior to 1.2.
  254.  
  255.     - The window layout methods have been improved to scale the layout information
  256.       so they work better for various display settings. Also, a "New" button was
  257.       added to the Options|Window Layouts dialog to make it clearer to the user
  258.       that new custom layouts can be created and saved. A toolbar button was added
  259.       to the main toolbar to restore the default layout (on click) and display the
  260.       window layouts dialog (on double-click).
  261.  
  262.     - If the Object Viewer has keyboard focus, and a module or project is the
  263.       selected item in the current view, then the operation attempted on a DEL
  264.           keypress is either a project close or module unload as appropriate. Prior
  265.           to 1.2 the action on DEL key was always to attempt destroying the selected
  266.       object when the Object Viewer received the DEL key.
  267.  
  268.     - Reduced dependencies on the database DLLs so that non-database apps should
  269.       be able to ship with fewer runtime files required.
  270.  
  271.         - Changed which properties of a Window that the Update and UpdateDataSource
  272.           methods interact with.  Previously, the "Text" property was used when
  273.           updating to/from the Windows DataSource. Now the "Caption" property
  274.           is used for most objects, while the "Value" property is used for the CheckBox,
  275.           Gauge, OptionButton, and ScrollBar objects, and the "ListIndex" property
  276.           is used for the ListBox object.
  277.  
  278.     - For the enumerated type, OleDropState, switched the values of Leave and Enter (they
  279.       were incorrectly transposed before).
  280.  
  281.     - Fixed problems with Envelop's help window being closed when other
  282.       applications or other help windows were closed.
  283.  
  284.     - For ObjectTools, added the method, GetEnumStrings, which will return a
  285.       string containing the strings for all the values of an enumerated type.
  286.  
  287.     - Fixed problems with empty 'Set' being written to .eto files for procedural properties.
  288.  
  289.  
  290.         ==============================================================================
  291.  
  292.         Release 1.1
  293.  
  294.         CHANGES SINCE PREVIOUS RELEASE:
  295.  
  296.         - Improved memory performance, including fixing a serious leak that under Win95
  297.           was most noticeable when interacting with the help file.
  298.  
  299.         - Added startup dialog and options to allow easy configuration of Envelop's startup
  300.           behavior (make automatic new project, browse to open a project, no project, etc.).
  301.           The "out-of-the-box" behavior is still to make an automatic new project, but the user
  302.           can now change this using the Options|Startup dialog.
  303.  
  304.         - Improved the DataControl configuration wizard:
  305.            o don't have drag/drop set the object's DataSource.
  306.            o have Add button set the DataSource
  307.            o clear controls list before population
  308.            o use full names when populating controls list
  309.  
  310.         - Multi-select support has been added to ListBox, FileListBox, and IndentedList.
  311.  
  312.         - Added support for: For Each x {In | CopiedFrom | EmbeddedIn}...Next x
  313.           This language feature allows easy iteration of objects in a group, objects
  314.           embedded in a host object, and objects copied from a prototype object.
  315.  
  316.         - Options|Window Layouts now saves visibility of Property, Method, and Debug windows.
  317.  
  318.         - Envelop's project and module file dialogs now retain the last directory visited,
  319.           still without changing Envelop's current directory.
  320.  
  321.         - Added Center method on Form for centering Form in the middle of screen.
  322.  
  323.         - Added [Set]ItemText{Style|Color} methods to IndentedList. Allows color,
  324.           bold, italic, and bold-italic in list item text.
  325.  
  326.         - Improved error reporting under Win95.
  327.  
  328.         - When the debugger is not present, or is not trapping system exceptions, the error
  329.           box now also displays the object and method name responsible for the error.
  330.  
  331.         - Added event locale button on Method Editor for easy specification/navigation
  332.           of event-handling methods located on an embedded object or its container.
  333.  
  334.         - Method editor now creates initial get/set methods for Procedural Properties.
  335.  
  336.         - Added a vertical sash to the Property Editor's list of properties, so the user
  337.           can adjust the relative widths of the property name and value columns.
  338.  
  339.         - Added TextStyle and TextColor properties to PropertyEditor.
  340.  
  341.         - The Preload event is now supported simply by adding a Preload method to
  342.           any object. Preload events are sent as soon as the object's module is loaded.
  343.  
  344.         - Under Win95, the OpenDialog and SaveAsDialog objects now use the Explorer-
  345.           style common dialogs.
  346.  
  347.         - For Win95, Envelop now goes into taskbar properly when minimized.
  348.  
  349.         - Form.Caption is now kept in sync with object name on renames, when the caption
  350.           is the same as the old object name.
  351.  
  352.         - New forms now take their initial position from Form, and Form is
  353.           included in default layouts so new forms are in a nice initial place.
  354.  
  355.         - Upload Wizards are now shipped with the release and have been improved
  356.           to allow you to retrieve the entire contents of a directory.
  357.  
  358.         - Fixed a bug with Text object's ParagraphDelimiterExpr property.
  359.  
  360.         - Fixed a bug where our gadget icons did not look right when user interface
  361.           color scheme was changed.
  362.  
  363.         - Fixed problem with CreateDataSource method, list of data
  364.           sources is now accurate.
  365.  
  366.         - Fixed bugs in processing of "Connect" string,
  367.           also fixes other parsing related bugs. Affects ODBC object.
  368.  
  369.         - Fix problems with mouse capture not being released under Win95.
  370.  
  371.         - Fixed errors with line number reporting for exceptions.
  372.  
  373.         - Added GetSysColor and constants to User32.
  374.  
  375.         - Added SearchPath declare to Kernel32.
  376.  
  377.         - Published FullPathName and ShortPathName properties on Directory and File objects.
  378.  
  379.         - Added RunProgramGetStatus to SystemTools object.
  380.  
  381.         - Support for enhanced metafiles in printing and XferData Pictures.
  382.  
  383.         - Support for HintText event on button gadgets.
  384.  
  385.         - Improved the NewProjectForm with a resize method and auto-selection
  386.           of the .EXE file to match the .EPJ file dir/name.
  387.  
  388.         - Fixed bugs involving setting certain properties within an object's
  389.           Setup method.
  390.  
  391.         - Fixed a small bug in Name getting that caused the File object 
  392.           properties Path, Name, and Extension to not give the correct full path
  393.           name back if the name part is a long name with multiple dots (.) in it.
  394.  
  395.  
  396.         ==============================================================================
  397.  
  398.         Release 1.0.3
  399.  
  400.         CHANGES SINCE PREVIOUS RELEASE:
  401.  
  402.         - Fixed a bug that caused a program error when closing projects with
  403.           a certain common pattern of interdependencies.
  404.  
  405.         - Fixed reporting of line numbers when an error occurs in a method
  406.           invoked from a Begin Code..End Code section of a text module.
  407.  
  408.         - Samples Browser now properly advances to partially-matched search string.
  409.  
  410.         - A couple of small fixes to the Wizard implementation objects.
  411.  
  412.         - The InstallButton has been revised to support a more robust component
  413.           installation model.
  414.  
  415.         - The object operations: Copy, Abstract, and Save To Text now tell which
  416.           object is being operated on.
  417.  
  418.         - The HostObject method was modified to not cause a program error when
  419.           invoked with Nothing as an argument.
  420.  
  421.         - The IsPreload method now correctly returns True/False instead of 1/0.
  422.  
  423.  
  424.         ==============================================================================
  425.  
  426.         Release 1.0.2
  427.  
  428.         CHANGES SINCE PREVIOUS RELEASE:
  429.  
  430.         - Envelop now searches directories in the following order for modules
  431.           when no explicit path information is given with the module load request:
  432.             1) The directory the application was loaded from.
  433.             2) Current directory.
  434.             3) 32-bit system directory (GetSystemDirectory).
  435.             4) 16-bit system directory (no API to get this).
  436.             5) Windows directory (GetWindowsDirectory).
  437.             6) Directories given in PATH.
  438.             7) Directories given in ENVELOP_PATH (if defined).
  439.           As you add modules to projects, Envelop adds the directory containing
  440.           the module to the ENVELOP_PATH (if it is not there already). In general,
  441.           this makes it possible to find modules without explicit path information,
  442.           and makes it easier to reorganize your projects by moving or renaming the
  443.           directories that contain them. If the ONLY way to load the proper module
  444.           is to keep explicit path information, then the full path to the module
  445.           will be stored in the Envelop project file (.EPJ file). You can edit this
  446.           file with any text editor if you must move the project or the module to a
  447.           different location.
  448.  
  449.         - Envelop .EXE files are now written with NO explicit path information
  450.           with regard to module locations. This makes it easier to install an
  451.           Envelop application in a location different from where it was developed.
  452.           It also means that for an application to load properly, all its modules
  453.           must be findable via the standard module search sequence (see above).
  454.  
  455.         - Support has been implemented for the following standard screen resolutions:
  456.           1024x768, 800x600, and 640x480. You can also create your own layouts and
  457.           save them, using the "Options|Window Layouts..." menu item from the Envelop
  458.           main form. The screen layout support is implemented in a generic way that
  459.           you can use in your own applications by using the following objects:
  460.           ScreenLayoutSet, ScreenLayoutConfigForm, ScreenLayout, and WindowLayoutItem
  461.           (all in module "tools"). These objects are not yet documented.
  462.  
  463.         - The following methods were implemented (mainly to support the screen
  464.           layout implementation):
  465.             o Screen.EnumWindows
  466.             o ObjectTools.EnumObjectCopies
  467.             o ObjectTools.EnumObjectEmbeds
  468.             o ObjectTools.FindObjectFromWindow
  469.           These methods are not yet documented; see the code that implements the
  470.           screen layout support for examples of how to use them.
  471.  
  472.         - The objects HashStringString and HashStringObject were added. These
  473.           objects are similar to the HashDictionary object (which is used to
  474.           implement Envelop's context-sensitive help). Hash tables are an
  475.           efficient way to search for an item using a "hash-function" over
  476.           a string to quickly reduce the search to a small subset of the items
  477.           in the table. The three different kinds of tables are all indexed
  478.           by a string, but each stores a different kind of item as the value
  479.           associated with the key string:
  480.             o HashDictionary:   key=string, value=long
  481.             o HashStringString: key=string, value=string
  482.             o HashStringObject: key=string, value=object
  483.  
  484.         - The management of message loops by modal forms and the debugger was
  485.           improved to avoid inteference between them that could put the system
  486.           into a confused state.
  487.  
  488.         - Prior to version 1.0.2, if a modal form was going to both hide and
  489.           return a specific modal result, the sequence of function calls had
  490.           to be "Hide" followed by "ModalResult(result)". Now either order of
  491.           these function calls results in the proper behavior, i.e. the form is
  492.           hidden and the result given to ModalResult is returned from ShowModal.
  493.  
  494.         - The following new samples were added:
  495.            o bootcamp\basic\dbconect
  496.            o bootcamp\advanced\dbsample
  497.            o arsenal\parts\grid
  498.  
  499.         - Bugs were fixed in drawing filled shapes in certain Drawable controls,
  500.           in the object list and hierarchy controls, in deleting the top-visible
  501.           property from the Property Editor, in the Call Stack trace window, and
  502.           in moving objects between modules.
  503.  
  504.         - Much more documentation has been added, including an expanded tour of the
  505.           main windows in the Envelop environment, and more documentation of the
  506.           samples provided with Envelop.
  507.  
  508.  
  509.         ==============================================================================
  510.  
  511.         Release 1.0.1
  512.  
  513.         CHANGES SINCE PREVIOUS RELEASE:
  514.  
  515.         - The Envelop setup program now makes every attempt possible to get the
  516.           Envelop program directory into the user's path. This helps avoid trouble
  517.           due to a problem with OLE under Windows NT that causes an error during
  518.           startup of Envelop. It also makes it easier to run Envelop applications
  519.           created during tutorials, without having to further modify the user's
  520.           environment.
  521.  
  522.         - The Finger and Help-Finger are now more careful about ignoring windows
  523.           from other programs, which previously caused occasional errors.
  524.  
  525.         - Many improvements have been made to the samples (bootcamp and arsenal)
  526.           and the Envelop Help file.
  527.  
  528.         - Fixes were put in to keep the Vbx and GL controls from causing program
  529.           exceptions when used under Windows95.
  530.  
  531.         - The Ole control sample had a problem under Windows95 that has been fixed.
  532.  
  533.         - The handling has been improved for when the DLL for an Object can't be found.
  534.  
  535.         - Loading Help files from samples under Windows95 has been fixed.
  536.  
  537.         - Providing no arguments to a method that takes arguments is now handled correctly.
  538.  
  539.  
  540.         ==============================================================================
  541.  
  542.         Release 1.0
  543.  
  544.         CHANGES SINCE PREVIOUS RELEASE:
  545.  
  546.         - Envelop now supports managing multiple object modules using a Project
  547.           metaphor. Projects can be either application projects which are targeted
  548.           toward developing a standalone EXE, or component library projects which
  549.           are targeted toward developing a set of re-usable objects. On startup a
  550.           new application project is automatically created with its main form ready
  551.           for editing.
  552.  
  553.         - Unloading of modules required by other modules is now restricted. A module
  554.           "B" requires module "A" when "B" contains objects that were copied from some
  555.           object in "A". Object references between modules do not by themselves
  556.           restrict unloading modules, but if a module "C" contains an object with a
  557.           reference to some object in module "D", and "D" is unloaded, the reference
  558.           in "C" becomes an empty reference (is set to "Nothing").
  559.  
  560.         - When an object is destroyed, all embedded objects of that type are now removed,
  561.           the old method was to leave a "null" object in the embedded object's place.
  562.  
  563.         - Context sensitive help is now in place.  The 'F1' key is recognized by all
  564.           object editors (e.g. Method Editor, Property Editor, Object Viewer), and in 
  565.           various other places.  The Help icon now acts like the Finger icon, to select
  566.           a specific object interactively to get help on.
  567.  
  568.         - Embedding controls from the PropertyEditor onto the "edited" form is no longer
  569.           a problem.
  570.  
  571.         - Event DblClick is now declared on the Ole control.
  572.  
  573.         - When Envelop starts up, the main window now has focus.
  574.  
  575.         - Thumb dragging a Scrollbar into a negative value is no longer a problem.
  576.  
  577.         - New HashDictionary object available, that associates a string to a number
  578.  
  579.         - File type is checked on FileName specified for a resource file in Bitmap,
  580.           to avoid alarming (but harmless) system error message.
  581.  
  582.         - All problems relating to Text object and the first line of text, and
  583.           end-of-line problems have been fixed.
  584.  
  585.         - Dynasets with DelimitedAscii or FixedAscii databases now behave properly
  586.           when FirstLineAsFieldNames is True, under the Update method.
  587.  
  588.