home *** CD-ROM | disk | FTP | other *** search
- This file contains the most up-to-date information about changes to
- the current and previous Envelop releases. Each release has its own
- section, with the most recent at the top of the file. Version 1.4
- is the final release of Envelop. See README.TXT for more information.
-
- ==============================================================================
- NOTE: Because Envelop Engine relies on registry entries that are made
- at install time, different versions of Envelop Engine will not
- run simultaneously at this time. For example, if you install version
- 1.2 in a different directory, but on the same computer as 1.1 is
- installed, then the 1.1 version will no longer operate correctly,
- unless the registry entries are returned to the correct state for
- version 1.1. Each version of Envelop Engine includes a file,
- envelop.reg, which contains the correct registry entries for that
- release. To install the correct registry entries for a particular
- version of Envelop Engine, double-click on the .REG file for that
- release (using Explorer or File Manager), or run the command:
- C:\ENVELOP\PROGRAM> REGEDIT ENVELOP.REG
- from a DOS prompt, with current directory set to the appropriate
- PROGRAM directory for the release you wish to run.
- ==============================================================================
-
- ENVELOP ENGINE RELEASE HISTORY
-
- Release 1.4
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Added the TreeView control
-
- - Updated Help File
-
- - Fixes for the OCX Tool
-
- - Added the RunProgramShow method which provides greater flexibility for running
- external programs from within Envelop.
-
- ==============================================================================
- Release 1.3
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Envelop has a new Application Setup Wizard to let you quickly and
- easily package your Envelop applications for distribution.
-
- - OCX Tool (found beneath the Tools menu) is a new utility for
- easily integrating OCX's into Envelop.
-
- - Expanded support for popup menus. Any Window (Forms, Controls, etc.)
- can have a popup menu. Also, PopupMenu objects can now handle their
- own Click and Enable events, similar to other controls.
-
- - New tutorials and update documentation have been added to the Help file.
-
- - New samples for TabStrip and ListView.
-
- - TabStrips now receive Resize events. Also, there is a default Resize
- event handler in place on the TabStrip object which handles the resizing
- of any embedded forms referenced by the TabStrip's tabs.
-
- - TabStrip has a SelectedItem reference property which lets you set or
- get the currently selected tab.
-
- - TabStripTabs now have a TabForm reference property for referring to
- an embedded form. They also have a default Click event handler which
- will BringToTop any subform referenced by its TabForm property.
-
- - Newly embedded TabStripTabs in a TabStrip will be added to the end rather
- than the beginning of the tabs.
-
- - ImageList has two new methods: RemoveImage, for removing a specified image;
- and AddBitmapScaled which lets you add a bitmap to the ImageList and have it
- scaled to match the ImageList's current width and height dimensions.
-
- - For: ListBox, ObjectList, ObjectHierarchy, IndentedList;
- added FindIndexUnderPoint method for finding the index of the item
- in the list at the coordinates reported by a mouse event.
-
- - Fixed bug which was disabling drag and drop on the Windows 95 desktop.
-
- - Fixed bug where 24bit bitmaps in an ImageList would cause a crash.
-
- - Destroy method for the Directory object is now implemented to competely
- destroy a directory and all of its contents. As a precaution, this method
- will not destroy the root directory on any drive. Use with caution!
-
- - Fixed a bug which was causing a crash when an active HyperControl
- was deleted.
-
- - Fixed bugs which occurred when ListView was saved with anything other
- than a Report style View property.
-
- - Fixed problems preserving ListView ColumnHeader width when ColumnHeaders
- were resized interactively.
-
- - New methods for writing to File and BinaryFile.
-
- - New TempBinaryFile object. Similar to TempTextFile, it allows you to create
- a temporary binary file.
-
- - New objects for working with OLE structured storage files: CompoundFile,
- OleStorageElement, OleStorage, OleRootStorage, and OleStream.
-
- - Added a new object, called PathString, which is used to manage a semi-colon
- separated list of names.
-
- - Fixed two bugs with controls bound to a DataControl
- 1. the DataChanged property was getting set to True during module
- load from a text file (*.ETO).
- 2. data from the data source was not being displayed if it consisted of
- a single character or digit.
-
-
- ==============================================================================
- Release 1.2.2
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Several new tutorials have been added to the online documentation:
- including menu editor, Ocx, TabStrip, ListView, and database tutorials.
-
- - The SystemTools object is now documented. It provides the RunProgram
- methods for executing other programs from Envelop applications.
-
- - A glossary of terms has been added to the online documentation.
-
- - ODBC object now ignores inaccessible tables (prevented easy connection
- to MS Access databases)
-
- - ODBC now formats table names internally within quotes
- so table names containing whitespace work properly.
-
- - ODBC properties TableName, FieldName, DriverName, and DataSourceName
- are now read-write properties (formerly read-only).
-
- - ODBC TableIndex, FieldIndex, DriverIndex, and DataSourceIndex properties
- are now reset to zero when appropriate to avoid invalid index values.
-
- - Fixed ValueData method for ODBC source so it can retrieve more than 1K
- of data and so it returns correct retrieved data size.
-
- - Fixed bugs in TabStripTab and ColumnHeader Caption properties.
-
- - Several enhancements and fixes to the DataControl Configuration Wizard.
-
- - ObjectViewer now uses left-mouse button to drag objects (to the Controls
- palette, for example).
-
- - ObjectViewer's Project view no longer auto-selects the currently-selected
- object when switching to the project view. This avoids the annoying
- expansion of module items in the project view. The other views still
- auto-select to assist in locating an object's module or place in the
- inheritance hierarchy.
-
- ==============================================================================
-
- Release 1.2.1
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Fixed a problem with OCX objects under Windows 95 that prevented
- arguments to OCX methods and events from being recognized.
-
- - OCX controls now initialize the OCX members when the OCXClassName
- property is set.
-
- - Fixed a bug in copying of initialized OCX objects.
-
- - Fixed a bug in loading of controls from binary modules (EBOs) that
- caused problems when the control had a DataSource.
-
- - Fixed uninitialized data problem in UpdateDataSource event.
-
- - Fixed a caching bug that caused stale array reference after redim.
-
- ==============================================================================
-
- Release 1.2
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- NOTE: Envelop Engine 1.2 now requires Windows NT version 3.51,
- or Windows 95 to install and run.
-
- - Online help file has been upgraded to new Windows 95 style help file.
-
- - Implemented product uninstall support for Envelop Engine.
-
- - Interpreter performance has been enhanced by adding a member lookup cache,
- and by several smaller optimizations.
-
- - Preliminary implementation of new common controls objects: RichTextBox,
- ListView, TabStrip, ImageList, and support objects: ListItem, ColumnHeader,
- and TabStripTab.
-
- - Implemented new menu editor. Graphical, indented-list style editor,
- simplifies the menu editing process. Built as an interpretive object: MenuEdit.
-
- - Preliminary support for OCX controls.
-
- - Removed support for VBX controls. VBX support was limited to VBX 1.0 only, under
- Windows NT only. VBX support removed in favor of focusing on OCX support.
-
- - The Configure DataControl Wizard has new functionality to create, layout, and
- modify a set of controls on the form that correspond to fields in a database table.
- This is a preliminary implementation of this functionality that we will continue
- to refine to make DataControls and associated controls easier to work with.
-
- - Object references can now be passed as by-reference arguments. This change can
- cause new side effects for existing code, since the default prior to this release
- was to pass object references as ByVal, and specifying ByVal for object reference
- parameters was illegal. For example, suppose an object has the following methods:
-
- Sub doit(o As Object)
- o = Nothing
- End Sub
-
- Sub go
- Dim ref As Object
- ref = Me
- doit(ref)
- Debug.Print ref
- End Sub
-
- Prior to release 1.2, when go() was invoked, it would have printed Me (whoever
- I am) to the Debug window. As of release 1.2, the same method will print a
- blank line, since the object reference "ref" will be modified by the doit()
- method. If a new side effect is introduced, it can be corrected by modifying
- the parameter definition, as in:
-
- Sub doit(ByVal o As Object)
- o = Nothing
- End Sub
-
- which returns doit() to the state of having no effect on the "ref" argument.
- We decided the risk of new side effects in existing code was worth fixing
- the old behavior, since before the only way of getting an object from a
- method was by the return value. Now in-out or out-only parameters can be
- used to receive objects from a subroutine or function. In the Envelop code,
- approximately 10,000 lines of Basic, we had two undesirable side effects
- that required fixing because of this change.
-
- - A new mechanism is in place to help recover objects from a module that
- cannot load properly because prerequisite objects can't be found or no
- longer match the dependent objects in the module. This situation is known
- as a proxy-resolve failure, and can occur when a base object (a source
- for some derived, or copied object) has been modified outside the presence
- of the dependent object, or has been destroyed outside the presence of the
- dependent object, or simply is not yet loaded when the dependent is loaded.
- Now when a module experiences a proxy-resolve failure, a new object is created
- to meet the proxy-resolve needs of the dependent object, and the object is
- allowed to load as a child of the new proxy object. This can help to recover
- work that could have been lost under revisions prior to 1.2.
-
- - The window layout methods have been improved to scale the layout information
- so they work better for various display settings. Also, a "New" button was
- added to the Options|Window Layouts dialog to make it clearer to the user
- that new custom layouts can be created and saved. A toolbar button was added
- to the main toolbar to restore the default layout (on click) and display the
- window layouts dialog (on double-click).
-
- - If the Object Viewer has keyboard focus, and a module or project is the
- selected item in the current view, then the operation attempted on a DEL
- keypress is either a project close or module unload as appropriate. Prior
- to 1.2 the action on DEL key was always to attempt destroying the selected
- object when the Object Viewer received the DEL key.
-
- - Reduced dependencies on the database DLLs so that non-database apps should
- be able to ship with fewer runtime files required.
-
- - Changed which properties of a Window that the Update and UpdateDataSource
- methods interact with. Previously, the "Text" property was used when
- updating to/from the Windows DataSource. Now the "Caption" property
- is used for most objects, while the "Value" property is used for the CheckBox,
- Gauge, OptionButton, and ScrollBar objects, and the "ListIndex" property
- is used for the ListBox object.
-
- - For the enumerated type, OleDropState, switched the values of Leave and Enter (they
- were incorrectly transposed before).
-
- - Fixed problems with Envelop's help window being closed when other
- applications or other help windows were closed.
-
- - For ObjectTools, added the method, GetEnumStrings, which will return a
- string containing the strings for all the values of an enumerated type.
-
- - Fixed problems with empty 'Set' being written to .eto files for procedural properties.
-
-
- ==============================================================================
-
- Release 1.1
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Improved memory performance, including fixing a serious leak that under Win95
- was most noticeable when interacting with the help file.
-
- - Added startup dialog and options to allow easy configuration of Envelop's startup
- behavior (make automatic new project, browse to open a project, no project, etc.).
- The "out-of-the-box" behavior is still to make an automatic new project, but the user
- can now change this using the Options|Startup dialog.
-
- - Improved the DataControl configuration wizard:
- o don't have drag/drop set the object's DataSource.
- o have Add button set the DataSource
- o clear controls list before population
- o use full names when populating controls list
-
- - Multi-select support has been added to ListBox, FileListBox, and IndentedList.
-
- - Added support for: For Each x {In | CopiedFrom | EmbeddedIn}...Next x
- This language feature allows easy iteration of objects in a group, objects
- embedded in a host object, and objects copied from a prototype object.
-
- - Options|Window Layouts now saves visibility of Property, Method, and Debug windows.
-
- - Envelop's project and module file dialogs now retain the last directory visited,
- still without changing Envelop's current directory.
-
- - Added Center method on Form for centering Form in the middle of screen.
-
- - Added [Set]ItemText{Style|Color} methods to IndentedList. Allows color,
- bold, italic, and bold-italic in list item text.
-
- - Improved error reporting under Win95.
-
- - When the debugger is not present, or is not trapping system exceptions, the error
- box now also displays the object and method name responsible for the error.
-
- - Added event locale button on Method Editor for easy specification/navigation
- of event-handling methods located on an embedded object or its container.
-
- - Method editor now creates initial get/set methods for Procedural Properties.
-
- - Added a vertical sash to the Property Editor's list of properties, so the user
- can adjust the relative widths of the property name and value columns.
-
- - Added TextStyle and TextColor properties to PropertyEditor.
-
- - The Preload event is now supported simply by adding a Preload method to
- any object. Preload events are sent as soon as the object's module is loaded.
-
- - Under Win95, the OpenDialog and SaveAsDialog objects now use the Explorer-
- style common dialogs.
-
- - For Win95, Envelop now goes into taskbar properly when minimized.
-
- - Form.Caption is now kept in sync with object name on renames, when the caption
- is the same as the old object name.
-
- - New forms now take their initial position from Form, and Form is
- included in default layouts so new forms are in a nice initial place.
-
- - Upload Wizards are now shipped with the release and have been improved
- to allow you to retrieve the entire contents of a directory.
-
- - Fixed a bug with Text object's ParagraphDelimiterExpr property.
-
- - Fixed a bug where our gadget icons did not look right when user interface
- color scheme was changed.
-
- - Fixed problem with CreateDataSource method, list of data
- sources is now accurate.
-
- - Fixed bugs in processing of "Connect" string,
- also fixes other parsing related bugs. Affects ODBC object.
-
- - Fix problems with mouse capture not being released under Win95.
-
- - Fixed errors with line number reporting for exceptions.
-
- - Added GetSysColor and constants to User32.
-
- - Added SearchPath declare to Kernel32.
-
- - Published FullPathName and ShortPathName properties on Directory and File objects.
-
- - Added RunProgramGetStatus to SystemTools object.
-
- - Support for enhanced metafiles in printing and XferData Pictures.
-
- - Support for HintText event on button gadgets.
-
- - Improved the NewProjectForm with a resize method and auto-selection
- of the .EXE file to match the .EPJ file dir/name.
-
- - Fixed bugs involving setting certain properties within an object's
- Setup method.
-
- - Fixed a small bug in Name getting that caused the File object
- properties Path, Name, and Extension to not give the correct full path
- name back if the name part is a long name with multiple dots (.) in it.
-
-
- ==============================================================================
-
- Release 1.0.3
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Fixed a bug that caused a program error when closing projects with
- a certain common pattern of interdependencies.
-
- - Fixed reporting of line numbers when an error occurs in a method
- invoked from a Begin Code..End Code section of a text module.
-
- - Samples Browser now properly advances to partially-matched search string.
-
- - A couple of small fixes to the Wizard implementation objects.
-
- - The InstallButton has been revised to support a more robust component
- installation model.
-
- - The object operations: Copy, Abstract, and Save To Text now tell which
- object is being operated on.
-
- - The HostObject method was modified to not cause a program error when
- invoked with Nothing as an argument.
-
- - The IsPreload method now correctly returns True/False instead of 1/0.
-
-
- ==============================================================================
-
- Release 1.0.2
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Envelop now searches directories in the following order for modules
- when no explicit path information is given with the module load request:
- 1) The directory the application was loaded from.
- 2) Current directory.
- 3) 32-bit system directory (GetSystemDirectory).
- 4) 16-bit system directory (no API to get this).
- 5) Windows directory (GetWindowsDirectory).
- 6) Directories given in PATH.
- 7) Directories given in ENVELOP_PATH (if defined).
- As you add modules to projects, Envelop adds the directory containing
- the module to the ENVELOP_PATH (if it is not there already). In general,
- this makes it possible to find modules without explicit path information,
- and makes it easier to reorganize your projects by moving or renaming the
- directories that contain them. If the ONLY way to load the proper module
- is to keep explicit path information, then the full path to the module
- will be stored in the Envelop project file (.EPJ file). You can edit this
- file with any text editor if you must move the project or the module to a
- different location.
-
- - Envelop .EXE files are now written with NO explicit path information
- with regard to module locations. This makes it easier to install an
- Envelop application in a location different from where it was developed.
- It also means that for an application to load properly, all its modules
- must be findable via the standard module search sequence (see above).
-
- - Support has been implemented for the following standard screen resolutions:
- 1024x768, 800x600, and 640x480. You can also create your own layouts and
- save them, using the "Options|Window Layouts..." menu item from the Envelop
- main form. The screen layout support is implemented in a generic way that
- you can use in your own applications by using the following objects:
- ScreenLayoutSet, ScreenLayoutConfigForm, ScreenLayout, and WindowLayoutItem
- (all in module "tools"). These objects are not yet documented.
-
- - The following methods were implemented (mainly to support the screen
- layout implementation):
- o Screen.EnumWindows
- o ObjectTools.EnumObjectCopies
- o ObjectTools.EnumObjectEmbeds
- o ObjectTools.FindObjectFromWindow
- These methods are not yet documented; see the code that implements the
- screen layout support for examples of how to use them.
-
- - The objects HashStringString and HashStringObject were added. These
- objects are similar to the HashDictionary object (which is used to
- implement Envelop's context-sensitive help). Hash tables are an
- efficient way to search for an item using a "hash-function" over
- a string to quickly reduce the search to a small subset of the items
- in the table. The three different kinds of tables are all indexed
- by a string, but each stores a different kind of item as the value
- associated with the key string:
- o HashDictionary: key=string, value=long
- o HashStringString: key=string, value=string
- o HashStringObject: key=string, value=object
-
- - The management of message loops by modal forms and the debugger was
- improved to avoid inteference between them that could put the system
- into a confused state.
-
- - Prior to version 1.0.2, if a modal form was going to both hide and
- return a specific modal result, the sequence of function calls had
- to be "Hide" followed by "ModalResult(result)". Now either order of
- these function calls results in the proper behavior, i.e. the form is
- hidden and the result given to ModalResult is returned from ShowModal.
-
- - The following new samples were added:
- o bootcamp\basic\dbconect
- o bootcamp\advanced\dbsample
- o arsenal\parts\grid
-
- - Bugs were fixed in drawing filled shapes in certain Drawable controls,
- in the object list and hierarchy controls, in deleting the top-visible
- property from the Property Editor, in the Call Stack trace window, and
- in moving objects between modules.
-
- - Much more documentation has been added, including an expanded tour of the
- main windows in the Envelop environment, and more documentation of the
- samples provided with Envelop.
-
-
- ==============================================================================
-
- Release 1.0.1
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - The Envelop setup program now makes every attempt possible to get the
- Envelop program directory into the user's path. This helps avoid trouble
- due to a problem with OLE under Windows NT that causes an error during
- startup of Envelop. It also makes it easier to run Envelop applications
- created during tutorials, without having to further modify the user's
- environment.
-
- - The Finger and Help-Finger are now more careful about ignoring windows
- from other programs, which previously caused occasional errors.
-
- - Many improvements have been made to the samples (bootcamp and arsenal)
- and the Envelop Help file.
-
- - Fixes were put in to keep the Vbx and GL controls from causing program
- exceptions when used under Windows95.
-
- - The Ole control sample had a problem under Windows95 that has been fixed.
-
- - The handling has been improved for when the DLL for an Object can't be found.
-
- - Loading Help files from samples under Windows95 has been fixed.
-
- - Providing no arguments to a method that takes arguments is now handled correctly.
-
-
- ==============================================================================
-
- Release 1.0
-
- CHANGES SINCE PREVIOUS RELEASE:
-
- - Envelop now supports managing multiple object modules using a Project
- metaphor. Projects can be either application projects which are targeted
- toward developing a standalone EXE, or component library projects which
- are targeted toward developing a set of re-usable objects. On startup a
- new application project is automatically created with its main form ready
- for editing.
-
- - Unloading of modules required by other modules is now restricted. A module
- "B" requires module "A" when "B" contains objects that were copied from some
- object in "A". Object references between modules do not by themselves
- restrict unloading modules, but if a module "C" contains an object with a
- reference to some object in module "D", and "D" is unloaded, the reference
- in "C" becomes an empty reference (is set to "Nothing").
-
- - When an object is destroyed, all embedded objects of that type are now removed,
- the old method was to leave a "null" object in the embedded object's place.
-
- - Context sensitive help is now in place. The 'F1' key is recognized by all
- object editors (e.g. Method Editor, Property Editor, Object Viewer), and in
- various other places. The Help icon now acts like the Finger icon, to select
- a specific object interactively to get help on.
-
- - Embedding controls from the PropertyEditor onto the "edited" form is no longer
- a problem.
-
- - Event DblClick is now declared on the Ole control.
-
- - When Envelop starts up, the main window now has focus.
-
- - Thumb dragging a Scrollbar into a negative value is no longer a problem.
-
- - New HashDictionary object available, that associates a string to a number
-
- - File type is checked on FileName specified for a resource file in Bitmap,
- to avoid alarming (but harmless) system error message.
-
- - All problems relating to Text object and the first line of text, and
- end-of-line problems have been fixed.
-
- - Dynasets with DelimitedAscii or FixedAscii databases now behave properly
- when FirstLineAsFieldNames is True, under the Update method.
-
-