Product History:


v1.0.00.428
Upload date:
March 28 2001

  Runtime Package  

Bugs fixed:

The plugin About property was not being initialized in constructor method.

The LoadPlugin manager method was not checking the following situation:
The OnAfterLoad and OnAnyPluginAfterLoad events are usually triggered in loop after a plugin is loaded, since any of the already loaded plugins can have such event assigned, and the manager can do it as well.   Well, if one of the defined event handlers decide to unload the just loaded plugin (see the Example 0001), all subsequent calls to the other handlers in the loop would parse an invalid plugin object.   This possibility is checked now, so the loop is break if the plugin is unloaded by one of the triggered event handlers, as explained.
Included in TroubleShooting 0001.

The lkUser enumerated item was missing in many locations:
  • TatsLog.FCountUserMsgs private property.

  • TatsLog.Create() constructor.

  • TatsLog.LogIt() method.

  • TatsLog.GetCount() method.

  • TatsLog.SetCount() method.


  • New units:

    New unit atsSPIruPin.

    New properties:

    New DCI published property LicenseCount, which indicates how many users are licensed to use the product.

    New DCI published property SpiVersion, self-explained.

    New constants:

    New error constant errPluginSpiVersionCouldNotBeObtained.

    New error constant errPluginSpiVersionMismatch.

    New error constant errPluginUnloadedByEventHandler, whose code was taken from the supressed errInvalidPropertyValue one.

    Other changes:

    Serial Key validation:
    Now, only the Major and Minor versions are involved in the serial key validation process.   This allows the use of the same serial key for any product release/build version numbers, so the user only needs to purchase an upgrade pack when the Major or Minor versions changes.
    See chapter Serial Keys.

    Version X Packing numbers:
    The concept of Packing Number has been deprecated.
    Now, both fields (from Windows perspective) File Version and Product Version reflect the SPI Product Version in its (design-time and runtime) packages.
    See chapter Version Numbering.

    Some identifiers have been renamed:

      Item Type     Old Name     New Name  
      constant     errNoEventAssignedForSetupInPlugin     errNoEventAssignedForSetup  
      constant     errPluginRegistrationFunctionNotFound     errPluginExportedFunctionNotFound  
      class     TatsCommand     TCommand  
      class     TatsCommands     TCommands  
      class     TatsCommandParam     TCommandParam  
      class     TatsCommandParams     TCommandParams  
      class     TatsDCI     TDCI  
      class     TatsLog     TLog  
      class     TatsMenuMerging     TMenuMerging  
      type     TatsPluginRegistrationFunction     TPluginRegistrationFunction  
      type     TatsSpiMethodResult     TSpiMethodResult  

    Some event types have changed its header:

      Event Type     Old Definition     New Definition  
      TEventOnAfterLoad     (Plugin:TComponent)     (Plugin:TatsSpi)  
      TEventOnAnyPluginAfterLoad     (Plugin:TComponent)     (Plugin:TatsSpi)  
      TEventOnAfterUnload     (PluginPtr:TComponent; FileName:String)     (PluginPtr:TatsSpi; FileName:String)  
      TEventOnAnyPluginAfterUnload     (PluginPtr:TComponent; FileName:String)     (PluginPtr:TatsSpi; FileName:String)  
      TEventOnBeforeUnload     (Plugin:TComponent)     (Plugin:TatsSpi)  
      TEventOnAnyPluginBeforeUnload     (Plugin:TComponent)     (Plugin:TatsSpi)  

      Design-time Package  

    About Box (for both manager and plugin components) now shows the new License Count information (if License Category is other than lcTrialVersion).

      Spiw (SmartPlugin Wizard)  

    New features:

    Frames creation functionality added.

    Other changes:

    The name of the new atsSPIruPin unit is now inserted in the uses clause of plugin generated source.

      Setup Application  

    New behaviors:

    Because of the new serial key validation algorithm, the product serial key now is modified only if it does not exist yet for the version being installed, so it is never overwritten.

    The initialization file AthraSoft.ini is not used anymore.   From now on, the licensing information is stored in Windows Registry.


    v0.9.13.380
    Upload date:
    March 11 2001

      Runtime Package  

    Bugs fixed:

    DCI (Developer Contextual Information) data was not been automatically created after plugin is generated.   This problem used to produce an errPluginCheckSumError error if user compiled a new component (plugin) without making changes to any property value before pressing CTRL-S in order to save it to the stream.   It should be correct now.

    New properties:

    New public property TatsSpi.Cmds[index], which returns a TCommand object, depending on the index passed to it.
    Not to be confused with the published property Commands, which returns a TCommands collection object.

    New public property TCommand.Pams[index], which returns a TCommandParam object, depending on the index passed to it.
    Not to be confused with the published property Params, which returns a TCommandParams collection object.

    New public property TatsSpi.CommandCount, an alias for TCollection(Commands).Items.Count.

    New public property TCommand.ParamCount, an alias for TCollection(Params).Items.Count.

    New published properties TatsSpi.PropsToMonitor and TatsSpiMan.PropsToMonitor, used to specify which properties will have their changes monitored by manager.
    See new event TEventOnPropertyModified for additional information.

    New published property PluginExtension (manager) and its respective error code errInvalidPluginExtension = $E02E.
    [Thanks to Douglas Olson]

    New published property PluginsTopLevelMenu (manager), to predefine (on host application) which top-level menu item will be used as target menu whenever a merge takes place.

    New methods:

    Created overload versions for various methods with a new parameter: AlertOnError:Boolean = False.   Setting this flag on, the same methods will show user the error message (in case of error), simplifying the code.

    New events:

    New events TatsSpiMan.OnPropertyModified and TatsSpi.OnPropertyModified.   Now this one must be use instead of these deprecated ones:
    • TEventOnPropertyModifiedLoadOptions
    • TEventOnPropertyModifiedLogItemsToLog
    • TEventOnPropertyModifiedPluginFolder
    Other changes:

    Version X Packing numbers:
    Now, the (design-time and runtime) packages show the version number on field File Version, instead of field Product Version.   That's because the "File Version" is more visible when user right-clicks a bpl file under Windows Explorer.

    Thus, the packing numbers is now located at field Product Version, instead of File Version.   It consists of the whole product packing (with winzip) in the format: "year-month-day-upload".

    Some methods (for internal use) had their visibility changed from public to protected:
    • TatsSpi.Initialize
    • TatsSpi.Finalize
    • TatsSpiMan.CheckIf_NoPluginsLoaded
    • TatsSpiMan.CheckIf_InvalidPluginIndex
    • TatsSpiMan.CheckIf_PluginNotInitializedYet
    • TatsSpiMan.CheckIf_PluginCouldNotBeAccessed
    • TatsSpiMan.CheckIf_NoCommandsDefinedForPlugin
    • TatsSpiMan.CheckIf_InvalidCommandIndex
    • TatsSpiMan.CheckIf_CommandCouldNotBeAccessed
    • TatsSpiMan.CheckIf_DesigntimeOnlyProperty

    Published property Version (plugin) is now initialized with "1.0", rather than an empty string as before.

    Plugin persistent class MenuMerging completely rewritten.

    Error code constant errPluginInstancesExceedLimit renamed to errPluginInstancesExceededLimit.

    Parameter Sender in plugin OnInitialize event has been supressed, since it's useless in that context.

      Spiw (SmartPlugin Wizard)  

    Comments Started In, Finished In and Time Total now is more accurated:
       Started In is the exact date/time that wizard form shows up.
       Finished In is the exact date/time that wizard generates the sources.
       Time Total is (obviously) the time difference between both.
    Example:
      STARTED IN    02/25/2001 18:08
      FINISHED IN   02/25/2001 18:23
      TIME TOTAL    00:15 hs

      Sample Projects  

    Deployment:

    Sample projects ".DOF" and ".CFG" files were distributed containing an unecessary reference to a mysterious "Atrah5" package.   Such package is not needed when compiling the sample sources.
    [Thanks to Angel Figueroa and to Jerry Shaw]

    Other changes:

    More samples added.

    Directories has been restructered.
    See chapter Samples Directory Structure.


    v0.9.12.350
    Upload date:
    February 12 2001

    First beta public release.
    Previous versions have been kept in alpha (non-published) stage.