Iocomp Components Release Notes

Release: 3.0.1 Service Pack 1
Installer Build: 34
Release Date: March 13, 2003

This document is organized into the following sections...


Latest News

This and future releases will include our ActiveX, VCL, and CLX (Borland Cross-Platform Component Architecture) versions including full Pascal source code for our VCL and CLX versions. For installer related questions or bug reports, please submit a copy to support@iocomp.com or visit our website at http://www.iocomp.com/support.

Please note that the CLX version of our components are released, but may be missing some features due to differences between operating system platforms (such as Windows Metafile support, OPC support, etc.).  Currently the iRotationDisplay and the iKeyboard components are not yet fully supported under CLX.  A separate CLX component-only, self-extracting installer is available for use on the Linux platform to install our component products.


Revision History

ActiveX and VCL/CLX Version 3.0.1 Service Pack 1 Beta

Bug Fixes:

  1. Fixed problem in iPlot and iXYPlot with adding null data points and the ring buffer.  In previous versions if you had enabled the ring-buffer and were adding null data points to the channel, data would sometimes be corrupted.
  2. Fixed bug in iSwitchLED where the accelerator key(& placed before accelerator key), though it would still function, would not be shown with an underline but would show the "&" character instead.
  3. Fixed several issues with the CLX version of the Instrumentation and Plot Pack components.
  4. Minor help file fixes.
  5. Fixed Plot Pack LoadPropertiesFromFile method where Label objects were not properly loaded.  If you would load properties from a file, you would get a mis-positioned, extra label object than expected.
  6. Fixed memory leak in Plot Pack components which would occur only when the component was destroyed.
  7. Initial release of Version 3.x Linux ELF Installer.  Supports automatic compilation and installation of our components into the Kylix 1-3 Pascal and C++ Builder IDE environments.

New Features:

  1. Added Table support for Plot Pack Components.  Allows you to position custom tables anywhere around the DataView.  Allows unlimited number of rows and columns with individual formatting for each column.  Supports scrolling if the number of rows exceeds the display area.  Allows you to specify the text in each cell.
  2. Upgraded iAnalogOutput key-filter to support the current regional setting for the decimal separator character.
  3. Upgraded iLedMatrix indicator caption to support multiple lines of text.  Accepts line feed, carriage return, or both to indicate a break in the line.
  4. Added methods and properties for customizing the tick labels on the Plot Pack Axes.  Now supports a custom mode where you can add your own custom labels (specify the text) at specified locations.
  5. Added RecalcLayout to recalculate all coordinates of all Plot sub-objects without having to wait for the next repaint or having to manually call iPaintToDC to force an immediate repaint.
  6. Added TransferChannelData method to Plot components to allow transferring of data from one channel to another.  Used to allow easy transfer of basic (Only X, Y, null, and empty properties.  All other data point and channel properties are not transferred) data from one channel to another. {Appends Data.  Need to clear out destination channel for exact copy}.
  7. Upgraded Plot Pack Annotations to support individual clip to axis property.
  8. Upgraded LineX and LineY Plot Annotations to extend to the full extent of the DataView by utilizing the new Annotation-specific clip to axes property.
  9. Upgraded iPlot Plot Pack Channel to support High Low graphs/data points.  You must have the Channel Data Style set to Full Feature to utilize this feature. Added the following methods and properties...
    AddHighLow
    DataHigh
    DataLow
    DataOpen
    DataClose
    HighLowEnabled
    HighLowBarColor
    HighLowBarWidth
    HighLowOpenShow
    HighLowOpenColor
    HighLowOpenWidth
    HighLowOpenHeight
    HighLowCloseShow
    HighLowCloseColor
    HighLowCloseWidth
    HighLowCloseHeight
  10. Added ForceStacking property to Axes.  During normal layout, only touching ends of stacked axes would take the Stacking End Margin spacing into account.  By setting this property to True, then all axes will use the Stacking End Margins on all ends.  This was done to ensure that outer, stacked axes will have the same end margins as all axes in the same ZOrder.  If this property is set to False (the default), then the axes will behave as previously indicated.
  11. Added PasswordChar property to iEdit to support display of password characters.
  12. Added the following events to all visual ActiveX controls that were missing them...
    OnMouseDown
    OnMouseMove
    OnMouseUp
    OnKeyDown
    OnKeyPress
    OnKeyUp
  13. Added the following events to all visual VCL/CLX controls that were missing them...
    OnMouseDown
    OnMouseMove
    OnMouseUp
    OnKeyDown
    OnKeyPress
    OnKeyUp
    OnEnter
    OnExit
  14. Added Mouse Wheel Zooming support to the Plot Pack Axes.
  15. Added CTRL key support to the Plot Pack Axes and DataView as a NOT operator to switch between scrolling and zooming when clicking and dragging the axes.
  16. Added SHIFT key support to the Plot Pack.  If the MouseStyle (or WheelStyle) is not set to Both, then the SHIFT key will switch between the X-Axis or Y-Axis style.  If the MouseStyle (or WheelStyle) is set to Both, then the SHIFT key is ignored.  Simultaneous use of both the SHIFT key and CTRL key is supported.
  17. Plot Pack DataView upgraded to support mouse movements and mouse wheel movements to support scrolling and zooming of the axes.  This is similar to the zooming and scrolling feature in our older iStripChart control.  Added the following properties to the DataView...
    AxisControlEnabled (Default = False)
    AxisControlMouseStyle (X-Axis, Y-Axis, or Both, Default = Both)
    AxisControlWheelStyle (X-Axis, Y-Axis, or Both, Default = X-Axis)
  18. Upgraded Right-Clicking Plot Pack code to support right-clicking channel trace lines to bring up the channel pop-up menu.  Supports clicking anywhere on the trace line and within 10 pixels of the trace line.
  19. Added OnXAxisMinSpanChange and OnYAxisMinSpanChange events to iPlot and iXYPlot.

ActiveX and VCL/CLX Version 3.0.0 Service Pack 0

Bug Fixes:

  1. Fixed OptionSaveAllProperties property on Plot Pack components.  The property was previously ignored when saving properties to a file.
  2. Fixed ModeComboBox where if you selected an item and then deleted all items, the ItemIndex property would still point to the deleted item which would cause errors when accessed.
  3. Fixed tabbed-dialog bug in Visual C++ where the application would crash if one of our components was on the tabbed-dialog and you alt-tabbed to another application and then back to the Visual C++ application.
  4. Fixed Plot Pack bug where if you delete an Axis and then re-add the same type of Axis, the Channel's associated axis pointer would not reconnect to the new axis until the next repaint. This would result in functions such as ZoomToFit on the Axis not working correctly until after a control repaint. 
  5. Fixed Plot Pack bug where an extra margin would have been incorrectly added for any plot object placed in-between the DataView and an axis, and that object had its Visible property set to FALSE.
  6. Fixed iXYPlotX Plot Pack ActiveX bug where the Image List and Translations were not being streamed.
  7. Fixed Help File integration into Borland Delphi and Borland C++ Builder Versions 6 and higher.
  8. Fixed bug in Strip Chart where the Auto Scale would malfunction, shifting data out of view if the AutoScaleHysterisis property was non-zero and AutoScale was enabled.

Plot Pack New Features:

  1. Added the following properties to the Plot Pack Legend object to allow control of the Legend Column Captions...
    CaptionColumnTitle
    CaptionColumnXAxisTitle
    CaptionColumnYAxisTitle
    CaptionColumnXValue
    CaptionColumnYValue
    CaptionColumnYMax
    CaptionColumnYMin
    CaptionColumnYMean
  2. Added the following methods to the Plot Pack components to allow runtime clearing and adding images to the built-in image list:
    ImageListClear
    ImageListLoadFromResourceID
    ImageListLoadFromResourceName
  3. Added runtime-only property MouseDownHandle to the Object Canvas component to be used in conjunction with the following existing event handlers to allow manipulation of objects.
    OnMouseDownDisplay
    OnMouseMoveDisplay
    OnMouseUpDisplay
  4. Added Additional Plot Channel Data Style: ipdsFullFeature.  This new style enables extended feature enhancement options of the channel object.
  5. Added the following Plot Pack iPlotChannelCustom object (iPlot and iXYPlot) properties for manipulation of individual data points (when data style is set to ipdsFullFeature)...
    DataMarkerShowing
    DataMarkerSize
    DataMarkerPenColor
    DataMarkerPenStyle
    DataMarkerPenWidth
    DataMarkerBrushColor
    DataMarkerBrushStyle
    DataTraceLineColor
    DataTraceLineWidth
    DataTraceLineStyle
  6. Added the following Plot Pack iPlotChannel object (iPlot component only) properties for manipulation of individual data points (when data style is set to ipdsFullFeature)...
    DataBarVisible
    DataBarReference
    DataBarWidth
    DataBarPenColor
    DataBarPenWidth
    DataBarPenStyle
    DataBarBrushColor
    DataBarBrushStyle
  7. Updated Plot Pack channel fill routines to support digital channel option as well as cubic-spline,  polynomial, rational, and differential interpolation styles.
  8. Updated Plot Pack cursor to support cubic-spline, polynomial, and rational interpolation styles.  Data Cursors already supported digital and differential interpolation styles.
  9. Added Layer Ordering  support to all Plot Pack objects.  Currently only has an effect on objects that are displayed in the DataView area (e.g. channels, annotations, limits, Axes setup as Cartesian, etc,).  DataCursors are currently always  forced to the topmost layer and cannot be changed.  The highest layer number are drawn on top of lower layer numbers.  If the layer numbers are the same, then the Iocomp internal layering order is preserved (i.e. the old layering order is used from previous versions).  By default, all objects are set to a layer order of 100 for backwards compatibility.
  10. Stats page upgraded to clear itself when changing channel objects in the runtime property editor.  It would previously show the previous channel's information.  The page is not refreshed automatically since auto refresh may cause a performance decrease when refreshing information concerning very large datasets.
  11. Layout Viewer upgrade to support automatic resizing of objects when attempting to stack using drag and drop.  You can simply drag and drop a plot object on another of the same type to have them proportionally sized and stacked automatically. Previously you needed to manually size the objects before you could stack them in the Layout Viewer.
  12. Added PrinterName property to the Plot Pack components to specify which printer to use when using the built-in printing facilities.
  13. Upgraded Plot Pack Run-time Property Editor Channel Stats page speed.
  14. Added new OnDataCursorCustomizeHint event to the Plot Pack components.
  15. Added FlatButtons and SmallButtons properties to the Plot Pack components Toolbar object.  Provides smaller and/or flat-button-styled buttons in the built-in toolbar.
  16. Upgraded the Plot Pack Layout Viewer in design-time property editor with new right-click, context sensitive menu to provide add, delete, hide, and show functions to Layout Viewer Plot Objects.
  17. Plot Pack Data Cursor object upgraded to support pointing to all channels in addition to pointing to individual channels.  When pointing to all channels, the Data Cursor is hidden, and by default, all channel cursor data is displayed in the Legend.  Optionally you can turn off the display of the data in the legend and display the data in your own legend by reading the data directly from each channel.
  18. Added the following properties to the Plot Pack Data Cursor object...
    ChannelAllowAll - Allows the user to specify that the Data Cursor points to all channels using the popup menu on the Data Cursor.
    ChannelShowAllInLegend - Specifies whether the Legend is used to display the Data Cursor X and Y values when ALL channels have been selected by the Data Cursor.  The X and Y value columns will automatically be shown if the Legend object and the Data Cursor objects are visible and the Data Cursor's Channel reference is set to "All", even if the X and Y columns have been hidden.
  19. Added the following new properties to the Plot Pack Channel object for use with the Data Cursor "All" Channel mode...
    DataCursorXText - Read only property that obtains the text that would be displayed in the data cursor hint for the X-Value.
    DataCursorYText - Read only property that obtains the text that would be displayed in the data cursor hint for the YValue.
    DataCursorXValue - Read only property that obtains the numeric value that would be displayed in the data cursor hint for the X-Value.
    DataCursorYValue - Read only property that obtains the numeric value that would be displayed in the data cursor hint for the Y-Value.
    DataCursorStatus - Read only property that specifies whether the X and Y-Values are valid, null, or empty.
  20. Upgraded Plot Pack Legend to support horizontal and vertical orientation.  Upgraded Legend object to support multiple columns, automated column wrapping and automated scrolling.  New properties include...
    WrapColDesiredCount  - Specifies the number of legend columns to reserve for the legend.  If you specify a value of 3, then three columns will be reserved even if they are not filled with channel entries. This is useful when you will be varying the number of channels, but want to keep the legend at a certain size and specified number of columns.
    WrapColAutoCountEnabled  - Specifies whether the legend automatically adjusts the number of columns to take up the least amount of space within the control.  If increasing the number of columns decreases the "footprint" of the legend, then the legend will automatically increase the number of displayed columns.  After the maximum has been exceeded, then scroll bars will appear..
    WrapColAutoCountMax  - Specifies the maximum number of columns that should be allotted when WrapColAutoCountEnabled is set to TRUE.  This actual number of columns will be equal or less than this value depending on space requirements and the number and makeup of legend entries.  This property in effect causes the legend to display the scroll bars if the maximum number of columns is reached, and the number of channel legend entries exceeds the available space.
    WrapColSpacingMin  - Specifies the minimum amount of spacing between legend entries (not the spacing between the channel name, channel X-Value, channel Data Marker, etc. columns).  When WrapColSpacingAuto is FALSE, then this value is the fixed spacing between columns.  When WrapColSpacingAuto is TRUE, then the spacing will be adjusted to fully justify the legend entries within the bounds of the legend, but the spacing will never be less than the minimum spacing specified.
    WrapColSpacingAuto  - Specifies whether the spacing between the legend column entries is automatically adjusted by the legend.
    WrapRowDesiredCount  - Specifies the number of legend rows to reserve for the legend.  If you specify a value of 10, then three rows will be reserved even if they are not filled with channel entries.  This is useful when you will be varying the number of channels, but want to keep the legend at a certain size and specified number of rows.
    WrapRowAutoCountEnabled  - Specifies whether the legend automatically adjusts the number of rows to take up the least amount of space within the control.  If increasing the number of rows decreases the "footprint" of the legend, then the legend will automatically increase the number of displayed rows up to the maximum specified by WrapRowAutoCountMax.  After the maximum has been exceeded, then scroll bars will appear..
    WrapRowAutoCountMax  - Specifies the maximum number of rows that should be allotted when WrapRowAutoCountEnabled is set to TRUE.  This actual number of columns will be equal or less than this value depending on space requirements and the number and makeup of legend entries.  This property in effect causes the legend to display the scroll bars if the maximum number of rows is reached, and the number of channel legend entries exceeds the available space.
    WrapRowSpacingMin  - Specifies the minimum amount of spacing between legend entries.  When WrapRowSpacingAuto is FALSE, then this value is the fixed spacing between columns.  When WrapColSpacingAuto is TRUE, then the spacing will be adjusted to fully justify the legend entries within the bounds of the legend, but the spacing will never be less than the minimum spacing specified.
    WrapRowSpacingAuto  - Specifies whether the spacing between the legend entry rows is automatically adjusted by the legend.


    Important New Legend Properties Note and Discussion - Col is used in the property names to distinguish between the references to Column in other properties of the legend.  When we refer to the property ColumnSpacing or ColumnTitlesVisible, we are referring to the internal columns of each legend entry such as "Marker", "Line", "Title" , "X-Value", "Max", "Min", "Mean", etc..  The properties using "Col" refer to the multiple-column feature that we have just added where multiple columns of channels (and their associated displayed information) can be displayed instead of a single column in the legend.  For example, when a legend is horizontal, you will probably have an average of 5 columns of channels displayed. 

    This features has also been added in such a way as to be backwards compatible with previous versions of our Plot Pack components.  Therefore, the new properties above will default to emulate the behavior of the original legend.  However, to take full advantage of the "automated" nature of the new legend, we recommend that you set the following properties to the following values.  In a future service pack release of Version 3.x, we will set the defaults to these values, be can't right now due to backwards compatibility concerns...

    WrapColDesiredCount = 1
    WrapColAutoCountEnabled = True
    WrapColAutoCountMax = 3 (for Vertical Legends) or WrapColAutoCountMax = 100 (for Horizontal Legends)
    WrapColSpacingMin = 2
    WrapColSpacingAuto  = True
    WrapRowDesiredCount = 1
    WrapRowAutoCountEnabled = True
    WrapRowAutoCountMax = 100 (for Vertical Legends) or WrapRowAutoCountMax = 5 (for Horizontal Legends)
    WrapRowSpacingMin = 0.25
    WrapRowSpacingAuto = True
  21. Added new OPC event handler to all OPC-enabled components: OnBeforeNewOPCData.  This event passes the index of the OPC item and the variant data value by reference (pointer reference) so that you can modify or scale the value before it is passed to the component and before the standard event handlers are called.
  22. Added independent Cursor and Legend data point value formatting to the Plot Pack axis objects.  Each channel is associated with a Y-Axis and X-Axis.  Each axis is responsible for specifying the formatting of displayed data for values associated for that axis.  This goes for channel data displayed in other objects, such as in the cursor and/or legend objects.  By default, all objects display X and Y values formatted as shown in the respective axis.  For example, if the X-Axis is formatted as date/time "hh:nn:ss", then X-values displayed in the Data Cursor are displayed formatted the same way.  You can now override this default formatting, and specify that the formatting be different when displayed in either the Legend or Data Cursor Objects. The following new properties in the X and Y-Axis objects...
     
    CursorUseDefaultFormat
    CursorFormatStyle
    CursorDateTimeFormat
    CursorPrecisionStyle
    CursorPrecision
    CursorMinLength
    CursorMinLengthAutoAdjust
    LegendUseDefaultFormat
    LegendFormatStyle
    LegendDateTimeFormat
    LegendPrecisionStyle
    LegendPrecision
    LegendMinLength
    LegendMinLengthAutoAdjust

    The following properties serve as the "Default Formatting" for the Legend and Cursor Objects when the UseDefaultFormat properties are set to TRUE...

    LabelsPrecision
    LabelsPrecisionStyle
    LabelsFormatStyle
    DateTimeFormat
    LabelsMinLength
    LabelsMinLengthAutoAdjust
  23. Updated installer to support Delphi 7 VCL and CLX components.
  24. Upgraded Plot Pack to correctly display long labels in the X and Y-axes so that they are not "cropped" when near the edge of the component.  This has resulted in a change in the layout of the plot component objects, particularly the Legend and Label objects.  Now, the Label object and Legend object top/bottom/left/right margin properties are strictly interpreted.  This will result in the gap between the Legend and the Data View as well as Labels and the Data View shrinking to be exactly the margin specified by the top/bottom/left/right margin properties.

    Since the default top/bottom/left/right margins for the Legend are set at a default of one character, the margin between the Data View and the Legend will now be exactly one character.  Since the default top/bottom/left/right margins for the Label is set at a default of zero characters, the margin between the Data View and the label will now be exactly 0 characters (plus font specific kerning).  This means that with most fonts, there will be a kerning gap (extra space added below the baseline to accommodate characters that are generally drawn below the baseline such as "j" or "g"), but letters  that go below the kerning baseline will now touch the Data View.  To fix this, we recommend setting the margin nearest the Data View to 0.25 characters (or alternatively setting all margins for all labels to 0.25 characters).  This change should not affect most users in a negative way, but will slightly change the visual layout of some objects.
  25. iObjectCanvas now supports loading images into a built-in image list that can also stream into your form.  You can also load image lists from resources using name or ID.
  26. Added GetDisplayXToPixelsX and GetDisplayYToPixelsY to iObjectCanvas.  Allows conversion between the component's display units and pixels on the component.
  27. Added new iImageDisplay component.  Allows loading of multiple bitmap frames, and controllable animation framerate.
  28. Updated Plot Pack component backgrounds to support gradient colors.
  29. Added new iPipe component.  Includes 3d straight pipe and animation capabilities.
  30. Added new iPipeJoint component. To be used with the iPipe component.
  31. Added new iIntegerOutput component.  Similar to iAnalogOutput, but supports Integer only output.  Supports Integer, Hex, Binary, and Octal formatting styles.
  32. Added new iScope Component.  True Analog/Digital Oscilloscope component with built-in Trigger.
  33. New VCL/CLX, ActiveX WinHelp, and ActiveX HTML Help for MSDN (Pre January 2002 Editioin) Files including many corrections.
  34. Added new iLCDMatrix component.  Includes 5x7 built-in character font for displaying 5x7 dot-matrix display text.    Also supports loading external character sets of custom size.  Several additional 5x8 character sets are included.  An external font editor is available for download from our website.
  35. Added new iMotor component.


ActiveX and VCL/CLX Version 2.1.2 Service Pack 6

Bug Fixes:

  1. Fixed "Interface Not Supported" exception in Visual Basic.NET and C#.NET that occurred with the Plot Pack. 
  2. Fixed problem where popup dialogs and runtime property editors would block other threads from accessing the component while they were visible.  Unnecessary Lock and Unlocks by these dialogs were removed.
  3. Redesigned the Iocomp Theme Panel component in the Iocomp Design-Time property editors to fix a bug under Windows 95/98/ME operating systems when applying changes.  Nested panel components within the theme panel were causing conflicts with the Windows API combo boxes that were used.
  4. Redesigned the Iocomp Theme Panel auto-centering code for compatibility under CLX.
  5. Fixed bug in iModeComboBox VCL component where the OnChange and OnChangeUser events would not fire under Delphi 4-5 and C++ Builder 4-5.
  6. Fixed bug in Plot Pack Annotations when used with logarithmic axes.  The annotation would size logarithmically instead of linearly when doing manual sizing with the mouse at runtime.
  7. Fixed ActiveX compatibility issues with Microsoft Visual Studio.NET.  Components now successfully stream and function with managed VB.NET and C#.NET applications.  ActiveX components already were compatible with Visual C++.NET.  See the Iocomp ActiveX Release Notes for any issues with porting older Visual Basic 5/6 applications to VB.NET using our ActiveX components.
  8. Fixed absolute positioning bug in Internet Explorer.  Component would always be positioned at the origin (upper left-hand corner) of the web page if absolute positioning was used with our components.
  9. Fixed misspelling for default filename in the Plot Pack Save JPEG/BITMAP/Metafile dialog.
  10. Limited DateTime format dates to years between 1400 to 9000.  This resolves zooming errors that occurred when trying to zoom past these limits.
  11. Fixed multiple pointer streaming issue in the ActiveX Gauge Components.  If multiple pointers were setup at Design-Time, they would not be streamed correctly to the form. 
  12. Fixed problem with Plot Pack zooming when using Logarithmic scales.
  13. Fixed Plot Pack Differential Interpolation drawing algorithm problem.  The last data point should draw to infinity.  If the last data point went out of view, the infinity line would incorrectly disappear.
  14. Fixed problem where an additional pointer would be added to our gauge components every time you loaded the project in Visual Basic.
  15. Fixed Theme problem where width and height of preview component would be switched if the orientation of the component was opposite of the default setting.
  16. Fixed GetBytes JPEG memory leak and speed issues.
  17. Fixed recursive painting bug when using stacked axes in the Plot Pack.  This only became obvious with large, viewable data sets.
  18. Fixed OPCItem browser limitation of 256 computers when browsing a Windows computer domain.  The limit has been upgraded to support approximately 1000 computers per domain when browsing.
  19. Fixed bug during development under Windows 95a/b where the component would appear to be unlicensed.  This did not affect deployed applications under Windows 95a/b, only development.
  20. Fixed runtime property editor bug with plot pack when running under large fonts.  Form would not automatically scale properly to large fonts.
  21. Fixed memory leak in iKeyboard drawing algorithm.
  22. Corrected ActiveX sizing problem in RSView.
  23. Fixed iObjectCanvas OnClickObject event.  The event handler was not firing correctly.

New Features:

  1. Added to iPlotChannelCustom, DrawStartIndex and DrawStopIndex that inform you of the data point indexes that are currently visible in the Data View.
  2. Added OnBeforeLoadProperties and OnAfterLoadProperties events added to Plot Pack Components.
  3. Added Width, Height, Left, and Top properties for ActiveX containers that do not provide these properties by default.  These properties are specified in pixels.  If the container overrides these properties  then the container will be responsible for these properties.  For example, Visual Basic overrides these properties and replaces them with its own container properties.  Its container properties are specified in Twips by default and not in Pixels.
  4. Added UserCanAddRemoveChannels property.  This property controls whether the Add/Remove buttons are shown in the Runtime Property Editor.
  5. Added SaveAnnotationsToFile and LoadAnnotationsFromFile methods to the Plot Pack Components.  This method should be called after loading properties from a file since the loading of properties clears out the entire control.
  6. Added ZoomToFit context sensitive menu item and method to the X and Y-Axis Objects 
  7. Added OnBeforeZoomBox event to Plot Pack Components.  
    VCL and CLX Components: Passes two parameters by pointer that you can modify, ZoomRect and Cancel.  ZoomRect has the pixel coordinates of the zoom box that can be easily converted to Axes values.  Cancel allows you to cancel the Zoom Box if you wish.
    ActiveX Components: Passes five parameters by pointer that you can modify, Left, Right, Top, Bottom, and Cancel. The four coordinate parameters have the pixel coordinates of the zoom box that can be easily converted to Axes values.  Cancel allows you to cancel the Zoom Box if you wish.
  8. Added four new methods to Plot Pack Annotation Object: PositionXToPixels, PositionYToPixels, PixelsXToPosition, PixelsYToPosition for converting pixel coordinates to position values. 
  9. Added one new method to Plot Pack Annotation Object: UserCanSize which allows the application end-user to resize the rectangle annotation objects.
  10. Added two new styles to the Plot Pack Channel Data Marker Styles: VerticalLine and HorizontalLine.
  11. Updated Plot Pack Axes Tracking Style characteristics for SmoothScroll.  Before, this style would only scroll when the new value was greater than the max of the axis.  The new characteristic is to scroll when the new value is greater than the max or less than the min.
  12. Added new event handler to the Plot Pack: OnAnnotationCoordinatesChange and OnAnnotationCoordinatesChangeFinished events which allows you to handle changes of the X, Y, X2, Y2, Width, Height, or any other future position/size property of Annotation.  This event is generally used in conjunction with the UserCanMove and UserCanSize properties which allows your application end-users to move and size Annotation Objects.  The event will fire from user generated events as well as changes to the position/size of annotations by your code.
  13. Added Bar support to the iPlot component channel object.
  14. Added LabelsVisible property to the Axis Objects (X and Y-Axes) of the Plot Components.  This property allows you to hade the axes labels, showing only the axes tick marks
  15. Added the following Grid Line properties to the DataView object of the Plot Pack: 
    GridLineXMajorCustom
    GridLineXMajorColor 
    GridLineXMajorWidth 
    GridLineXMajorStyle 
    GridLineXMinorCustom
    GridLineXMinorColor 
    GridLineXMinorWidth 
    GridLineXMinorStyle 

    GridLineYMajorCustom
    GridLineYMajorColor 
    GridLineYMajorWidth 
    GridLineYMajorStyle 
    GridLineYMinorCustom
    GridLineYMinorColor 
    GridLineYMinorWidth 
    GridLineYMinorStyle 
  16. Added FocusHandle property to keyboard control.  Allows setting the window handle of the component that will receive keystrokes.
  17. All ActiveX components upgraded to include Width, Height, Enabled, and Visible properties.  Non-visible components (such as the timer components) do not contain these properties.  These properties are provided for ActiveX containers that do not already supply their own version of these properties.
  18. Added Image Annotation style.  Includes built-in image list for use with Annotations and other future uses.
  19. Added three built-in custom image lists that you can use with Image Annotations.  Images must be loaded at design-time.
  20. Upgraded Plot Pack Data Cursor to convert Carriage Return and Line Feed characters to a single space in the Data Cursor Tool Tip to avoid strange characters.
  21. Added new OPC methods to Instrumentation and Professional Pack Components. 
    OPCItemUpdateSuspend which allow deactivation of updates from the server.
    OPCItemUpdateResume which allow re-activation of updates from the server after suspension by using OPCItemUpdateSuspend.
    GetOPCItemData
    GetOPCItemTimeStamp
    GetOPCItemQuality
    SetOPCItemData
  22. Added new OPC event: OnOPCData which will notify you every time an update is received from the OPC Server.  The standard component events (such as OnPositionChange in the iKnob control) are only fired when an update that changes the current component property.
  23. Added to MarkersTurnOffLimit iPlotChannelCustom object.  This allows you to suppress the drawing of DataMarkers according to the limit set here.  If the number of DataMarkers to display is greater than this value, all DataMarkers for the channel will not be drawn.  This speeds up drawing operations when displaying large numbers of data points on the screen.
  24. Added CopyToClipBoardFormat property to Plot Pack.  Possible selections are Bitmap, Metafile, and JPEG.
  25. Added the following event handlers to the Plot Pack.  Each event passes four parameters: Index of the Object, Cancel Flag By Reference, ScreenX in Pixels, and ScreenY in Pixels.
    OnPopupMenuChannel
    OnPopupMenuXAxis
    OnPopupMenuYAxis
    OnPopupMenuToolBar
    OnPopupMenuLegend
    OnPopupMenuLimit
    OnPopupMenuAnnotation
  26. Added Cartesian Coordinate Axes support to the Plot Pack components.  Added three new properties to the Axis objects...
    CartesianStyle
    CartesianChildRefAxesName
    CartesianChildRefValue
  27. Updated Plot Pack Digital Channel to support FastDraw.
  28. Added new property to Axis object: GridLinesVisible.
  29. Upgraded CubicSpline and Interpolation Trace styles to support empty and null data points.  Empty data points will be skipped.  Null Data points will generate a break in the trace line.
  30. Added the following new properties and methods to the iPlotChannelCustom (channel object for all Plot Components)...

    DataPointSize - the number of bytes used by each data point added to the chart.
    MaxDataPoints - the maximum theoretical number of data points that you can fit into the chart.  For 32-bit Windows, this represents the maximum theoretical number of data points that will fit into the 2GBprocess memory limitation ( minus the appliction's memory footprint)  imposed by Windows.
    Capacity - the number of data points that have been 
    MemoryUsed - the currently allocated memory used by the data buffer.  This value is in bytes.

    DataStyle - specifies the features available to the data points.  The Compact Style uses 8 bytes per data point, and stores X and Y data point data with Single Precision.  This style loses features regarding individual data marker styles in exchange for a smaller memory footprint.  The Standard Style uses 24 bytes per data point, and stores X and Y data point data with Double Precision.  The Standard Style allows for use of the individual data point data marker styles.  The Full Feature Style has extended features that is open for future expansion
  31. iAnalogOutput, iAnalogDisplay, and iEdit have the following properties added...
    ErrorActive - When True, then the following three properties control the display of the error drawn on the control.
    ErrorFont
    ErrorText
    ErrorBackgroundColor
  32. Added GetOPCItemActive to the ActiveX components.
  33. Added AutoError to the OPC item.  For VCL components, access the OPC item object to access AutoError.  For ActiveX, use the GetOPCItemAutoError and SetOPCItemAutoError methods.  If AutoError is True, then if the quality of the OPC data received from the OPC Server is not good, then the ErrorActive property of the component will be set to True.  If the OPC Server data is good, then the ErrorActive property of the component will be set to False.  When the OPC item is connected to the server, and AutoError is set to True, the ErrorActive property is automatically set to True indicating that the component is in an invalid state.
  34. Optimized LoadDataFromFile method in the Plot Pack to be 500% faster than previous versions.
  35. Optimized Code for speed on DataAxis and FastDraw features of the Plot Pack.
  36. Added Compact Interval data type to Plot Pack.  This style allows for the storage of single-precision fixed x-interval data points resulting in the ability to store approximately 538 million data points total in the chart (this represents the 2GB limit of applications running under Windows.  This value depends on memory usage in other parts of your application, and the physical and virtual memory of your computer).
  37. Upgraded iEdit and iAnalogOutput to inherit from our own custom iEditCustom control.  Since these controls no longer inherit from the Windows API or QT API Edit-box control, they no longer have the bugs and inconsistencies that come along with the API controls.
  38. Upgraded iModeComboBox  control to inherit from our own custom combo box control.  Since this control no longer inherits from the Windows API or QT API combo-box control, it no longer has the bugs and inconsistencies that come along with the API control.
  39. Added new TextRectangle Annotation style to the Plot Pack components.  Allows the display of a text string inside of a sizeable rectangle.
  40. Added AddXYArray method to Plot Pack Channel object.  Allows the addition of 2-dimensional Variant Arrays to Channel that contain X and Y coordinate data.
  41. Limits upgraded to support streaming.
  42. Annotations now clip to axes.  Beneficial when you have stacked axes and you don't want annotations dragging or bleeding into other axis regions.
  43. Added PrintDocumentName property to Plot Pack components to specify the name of the document that is displayed on compatible printers when the chart is being printed.

ActiveX and VCL/CLX Version 2.1.0 Service Pack 5

Bug Fixes:

  1. Fixed Plot Pack problem where a call to ClearAllElements method of the Limit objects would not result in the component being repainted.
  2. Fixed OPC problem where the initial callback would sometimes be ignored during connection to an OPC server and would only affect static data on the OPC server.
  3. Fixed problem where the Legend Y-Value would incorrectly display the X-Value column data.
  4. Fixed ActiveX bug where license errors would occur if you were not logged in as Administrator on a Windows NT4/2000/XP workstation at Design-Time.  Does not affect Run-Time.
  5. Fixed iKeyboard problem where SecondRowMargin property was ignored during the automatic height calculations of individual keys.
  6. Fixed Plot Pack Interface memory leak.  When Plot Pack sub object interfaces were released, the connection point object was not released resulting in a memory leak.
  7. Fixed rounding error in iOdometer.  Values would sometimes be incorrectly rounded due to differences in floating point calculation results from different processor manufacturer and models.
  8. Fixed AddLimit property of gauge components.  Pointer Size and Pointer Margin properties were reversed.  No interface change, only correction of incorrect property assignment.
  9. Fixed Limit events that were not functional in gauge components
  10. Fixed OnPositionChange event that was not functional in gauge components.
  11. Fixed Data Cursor "Divide By Zero" error in Plot Pack which would occur with tightly packed data points (multiple data points that would fit into a single pixel).
  12. Fixed ActiveX ZOrder problem in Excel where the ZOrder would not be preserved from last save.
  13. Fixed transparency problems with iKnob, iSwitchLever, iCompass, iSlidingScale, and iSlidingCompass components that utilize gradients.
  14. Fixed resizing issues in RSView and Microsoft Word.  Components would change size when switching between design-time and run-time.
  15. Fixed AddLimit method in gauge components.  Pointer Size and Pointer Margin parameters were flipped.
  16. Fixed limit events in Gauge components; events were not firing.
  17. Fixed OnPositionChange event in Gauges, event was not firing.
  18. Fixed the over/under-range triangles in the Seven Segment components.  Would not display over/under-range triangles unless value was 1 above or below the max and min displayable range.
  19. Fixed ActiveX painting corruption in iThermometer, iLinearGauge, iLogGauge, iSlidingScale, and iSlidingCompass when switching between horizontal and vertical orientations.
  20. Fixed decay feature in iSpectrumDisplay component.  Decay had not been functioning since Service Pack 2.
  21. Fixed iOdometer visual rotation "blip" problem when TenthsDigitCount = 0.
  22. Fixed SavePropertiesToFile method in Plot Pack.  Would previously only save one cursor even if you had multiple cursors in the chart.
  23. Fixed OnPositionChange property.  Would not fire if changed by an OPC Server.
  24. Fixed HP VEE/Agilent VEE compatibility problem.  Plot Pack Mouse events were blocked by VEE during high CPU load.  Symptom: Axis would continue to move once mouse was released if there was a large CPU load.

New Features:

  1. Added iEdit component with OPC string support.
  2. Improved OPC browser panel.  Browsing for computers is now hierarchical according to domain.  Included look-ahead feature on OPC items to see if sub items exist below each item in the visible list.
  3. Plot Pack now supports OPC connections to channels objects.
  4. Keyboard upgraded to support Numeric Keypad style.
  5. Add SelectActive property to Plot Pack Toolbar interface.  This property allows you to tell if the select tool is active.
  6. Added OPC support to the iPanel, iPieChart, iPercentBar, iLedMatrix, and iSpectrumDisplay components.
  7. Updated Switch Rocker 3-way to write Value property to OPC Server.
  8. Updated iKeypad to ensure keys are not transparent when using the transparent background feature.
  9. Added CachedDrawing feature to Property Editor of iLedMatrix
  10. Upgraded iSlider and iKnob to only write to an OPC server after a change has finished (i.e. after the  mouse button has been released).
  11. Updated 7-Segment Analog to Round values instead of Trunc.  This will synchronize the behavior with our other double-value display components.  Clock components will continue to Trunc double values.
  12. Added two new Annotation Reference styles: iprtXChannelYDataView allowing the annotation's X coordinate to move with the channel and the Y coordinate to be fixed to the DataView and and iprtXDataViewYChannel, allowing for the annotation's X coordinate to be fixed to the DataView and the Y coordinate to move with the channel.

ActiveX and VCL/CLX Version 2.0.8 Service Pack 4

Bug Fixes:

  1. Fixed Internet Explorer error where the visible, width, and height properties would no longer function in VBScript.
  2. Fixed iSwitchLed and iThermometer property editor bugs under ActiveX which were preventing the property editors from allowing the user to hit the OK button or to navigate to development environment specific property editor tabs. 
  3. Fixed bug in Plot Pack Data Cursors where clicking on one cursor would cause all other data cursors to be assigned to the same channel.
  4. Fixed problem when using MoveWindow in Visual Basic to move component causes components to redraw incorrectly. Usually happened when component was moved off the form and then back onto the form. Components would appear to disappear in some situations.
  5. Several issues regarding resizing, moving, disappearing components, and IE display issues have been fixed in our ActiveX components.
  6. Increased compatibility of moving and resizing ActiveX components in ActiveX containers.
  7. Fixed Themes lockup bug in Visual Basic running under Windows 95/98/ME.
  8. Fixed OPC where some servers would callback to the component after the event handlers for the OPC connection were disconnected.
  9. Fixed problem where legend would not display existing channels if removed and then re-added.
  10. Fixed legend up/down button scrolling issue.
  11. Fixed problem where translations would not persist (stream out).
  12. Fixed problem in iAngularGauge where If SectionEnd is less than PositionMin then the entire section would be filled with that section's color.
  13. Fixed OPC Boolean property support. Now supports strings "TRUE" and "FALSE" (case insensitive) that come from OPC Servers.

New Features:

  1. Added Axis Linking Support in Plot Pack.
  2. Added FocusControl support to the iLabel component for VCL applications.
  3. Added GetBytesJPEG method for use in obtaining a JPEG image for use in Microsoft IIS server ASP web pages to all component except for iTimers, iThreadTimers, iAnalogOuput, and iModeCombo.
  4. Added multiple Label support to Plot Pack. Title properties depreciated in favor of multiple Label support, but are provided for backwards compatibility.
  5. Added multiple pointer support to iAngularGauge, iLinearGauge, iAngularLogGauge, and iLogGauge. Original position and other pointer specific properties provided for single-pointer applications and backwards compatibility.
  6. Added LoadPropertiesFromFile and SavePropertiesToFile methods to all components except for TiTimers and TiThreadTimers. Allows streaming of component properties to a text file for later retrieval.
  7. Added "High" and "Low" to Plot Pack Data Cursor to signify Digital High and Digital Low values in Digital Channels.
  8. Added LinkedCell to various components for use with this feature in Microsoft Excel.
  9. Added OnClickIndicator event to iLedMatrix. The row and column are passed in the event handler to indicate which indicator was clicked.
  10. Added new iTank, iValve, iModeComboBox, and iSwitchPanel components.
  11. Added CLX component versions of all of our components for use with Delphi 6 for Windows and Kylix 1-2 for Linux.
  12. Improved OPC property editor dialog to remember the previous Computer Name, OPC Server Name, and Update Rate for quicker setup of multiple items.
  13. Added Mouse Wheel support to the Knob, Slider, Switch Slider, and Switch Rotary components.  Uses the KeyPageStepSize property to respond to Mouse Wheel scrolls.
  14. Added OnMouseDownDisplay, OnMouseMoveDisplay, and OnMouseUpDisplay events to the Object Canvas to provide similar events to OnMouseDown, OnMouseMove, and OnMouseUp but providing the Cartesian coordinates of the Mouse instead of Pixel coordinates.
  15. Added GetPixelsXToDisplayX and GetPixelsYToDisplayY methods to provide a mechanism to convert between the 0,0 upper-left-hand corner pixel coordinates provided by the Windows API or QT API and the Object Canvas' 0,0 Cartesian Coordinates.
  16. Added FontColor property to ActiveX interface for the iModeComboBox component.
  17. Added CachedDrawing property to components that use background caching for improved performance. This property should be left on unless the ActiveX container doesn't properly support background caching (such as Microsoft Internet Explorer).
  18. Added Mouse Wheel support to iKnob, iSlider, iSwitchSlider, and iSwitchRotary.
  19. Added MouseWheelStepSize property to iKnob and iSlider.
  20. Added RunningMin, RunningMax, and RunningMean properties. These property values are only valid for continuous values. These values are invalid if you add Null or Empty data points to the channel. If you modify previous data points, these values will also become invalid, but you can force them to revalidate by calling the Get method variations of these properties: GetYMax, GetYMean, and GetYMin methods.
  21. Added ChannelNameMaxWidth property to specify the maximum width of the Channel Name column to allow word wrapping of long channel names.
  22. Added New Legend Columns. Use the ShowColumnYMax, ShowColumnYMin, ShowColumnYMean. These values display the running Max, Min, and Mean of the channel.
  23. Added PositionToPercent and PercentToPosition methods to Plot Pack Axis objects.
  24. Added OnClickDataPoint and OnClickAnnotation events to Plot Pack components.
  25. Added Cubic Spline, Polynomial (n-1), Rational, Differential, and Straight Line (older default) Interpolation curve fitting options to Plot Pack Channel Object.
  26. Added UserCanMove property to Plot Pack Annotation objects, allowing end-user to visually move annotations on the component.
  27. Added ShowSelectButton toolbar button to turn on and off the select cursor which allows users to click on data points and annotation objects.
  28. Added DigitBorderShow, DigitBorderColor, TenthsDigitCount, and ShowDecimalPoint properties to the iOdometer control.
  29. Upgraded ActiveX help file to Microsoft HTML-style help system. 
  30. Added AutoSelect property to the iAnalogOutput control.

ActiveX and VCL Version 2.0.6 Service Pack 3b

Bug Fixes:

  1. Fixed Streaming issue with Font properties on sub objects (e.g. Font property of Channel, axes, legend, etc.) when using Load Method of the plot component. Problem existed reading in font sub properties.
  2. Fixed LineX and LineY annotation styles would not correctly draw if ReferenceStyle was set to DataView.
  3. If the MinMaxUserCanMove property set to true, the Max pointer would not be moveable if the Min pointer was not visible in angular gauge.
  4. Fixed bug in SwitchLED resulting in CaptionMargin property having no effect when CaptionAlignment was set to OppositeSide.
  5. Fixed Plot Pack components where zoom box would match the axes title font color.
  6. Fixed LineX annotation bug in Plot Pack where Y and Y2 values would be swapped.
  7. Fixed iSevenSegmentClock issue where control would not properly fire the countdown event if the clock ran past midnight and would instead start counting up after reaching 0 and would not fire the event.
  8. Fixed iLEDRectangle where text caption would overlap the 3D border margins.
  9. Fixed Internet Explorer bug where scrolling our ActiveX controls out of view would cause unexpected resizing in all web pages or painting problems when scrolled past another frame.

New Features:

  1. ScaleMax and ScaleMin added to Spectrum Display.
  2. Knob upgraded to allow turning off keyboard support.
  3. Added DataEmpty property, AddXEmpty method to iPlot, AddEmpty method to iXYPlot, and FastDrawEnabled property.
  4. Added cursor keyboard support to Plot Pack components.
  5. Added FastDrawEnabled property to Plot Pack components. Speeds up drawing to screen with large data sets.
  6. Added Glyph support to iSwitchLED and border support.
  7. Integrated OPC client features into components. Please note that a nominal distribution fee applies if you utilize the OPC features of our components. OPC Features are not supported under CLX Applications for Delphi 6 and Kylix 1 for Linux. OPC or OLE for Process Control is a communications standard for communicating with factory floor automation hardware via the network.

ActiveX and VCL Version 2.0.4 Service Pack 2

Bug Fixes:

  1. Plot Pack: The index in the data array is offset by one if the log is started before no data has been added to the chart.
  2. Instrumentation: SwitchRocker3Way descendent for BackGroundColor property should have a capital "G".
  3. Instrumentation: Seven Segment Clock control displays incorrect hour values.
  4. If component loses focus before receiving a mouse-up event, then the component remains "stuck" believing that the mouse button is in a down state.
  5. Instrumentation: Odometer displays incorrect values.
  6. Plot: Cannot select channel at top of legend if scroll arrow up is enabled.
  7. Plot: When adding or removing plot objects, the component would not request a repaint.
  8. Instrumentation: Strip Chart would freeze in Internet Explorer if two strip charts (each in one window) were running in two IE windows running in the same process.
  9. Instrumentation: Upgrade ActiveX property editors to support a single ActiveX property editor tab to fix Theme Panel bug in Visual Basic.

New Features:

  1. Instrumentation: Add Auto Size capability to Angular Gauge
  2. Instrumentation: Add keyboard component with US support.
  3. Instrumentation: Upgrade Spectrum Display to allow setting a bar color per bar
  4. Instrumentation: Add comma support for international values in Seven Segment Character and Seven Segment Analog if decimal separator is defined as comma (",")
  5. Instrumentation: Add text alignment feature to Panel control
  6. Instrumentation: Upgrade LED Spiral to support pointer style
  7. Instrumentation: Add OnCustomizeTickLabel event to compass and dual compass
  8. Instrumentation: Add text alignment feature to Panel control
  9. Plot: Add peak to peak, time, and frequency dual cursor for measuring between points in a particular channel.
  10. Plot: Upgrade cursor to show null data points as well as empty data points
  11. Plot: Upgrade AutoLabels to support other 1-2-5-type rules on DateTime format
  12. Plot: Expand 1-2-5 rules.
  13. Plot: Add tag property to plot components for storing user data
  14. Plot: Add "Desired Increment" to scales to allow for greater control over AutoScale and 1-2-5 rule
  15. Plot: Update AutoLabel to support Date/Time (Julian Dates Only) and Price32nds (Bond Market Scale). These scales should scale property to be "Human Readable".
  16. Plot: Update Time Calculator to support Price32nds
  17. Plot: Extend Log10 scales to support AutoScale
  18. Plot: Upgrade to support multiple cursors, delta cursors, and inverse delta cursors.
  19. Plot: Upgrade to support unlimited limit lines.
  20. Plot: Upgrade to support zoom factor scaling for zoom toolbar buttons
  21. Plot: Allow control over popup menus and add enabled property to disable individual plot object UI
  22. Plot: Make annotations visible in Plot Components when X/Y Axes are reversed.
  23. Plot: Add tag property to plot components for storing user data
  24. Plot: Allow individual control of markers per data point in addition to per channel.
  25. Plot: Update save dialogs to support JPG, BMP, and EMF file formats
  26. Plot: Update AutoLabel to support Date/Time (Julian Dates Only) and Price32nds (Bond Market Scale).
  27. Plot: Update Time Calculator to support Price32nds.
  28. Plot: Add Data Array support to channel interface to allow addition of data using a one dimensional array.
  29. Plot: Allow four different angles of rotation for text annotations
  30. Plot: Add two new line annotation styles: LineX and LineY for drawing lines perpendicular to the X and Y Axis
  31. ALL: Update all USE statements in VCL source code to support Linux/Windows
  32. ALL: Add BMP, EMF, and JPG export capabilities for ASP web page and other export uses.
  33. Plot: Load Data file now supports loading either data saved with SaveData method or logging feature

ActiveX and VCL Version 2.0.2 Service Pack 1

  1. Updated Help Files
  2. Updated Plot Pack Manual PDF (available at http://www.iocomp.com/documentation

Plot Pack Updates

  1. Fixed memory leak when using Plot Pack component sub objects (ActiveX only).
  2. Fixed error in code where each plot component would create the runtime property editor when the component is created, and not destroy the runtime property editor after it was show in the component. The result would be that each plot component would consume large amounts of system resources. Under Windows 95/98 systems you could only use 2 plot components, and Windows NT/2000 systems you could only use 3-4 plot components depending on system resource use.
  3. Fixed problem in runtime property editor. Layout editor would not function properly if other properties in the runtime property editor were changed.
  4. Fixed Visual C++ bug where having more than one plot component on form causes Visual C++ to give errors when running application. Random access violations occur when you have opened the property editors.
  5. Fixed Datax, DataY, and DataNull properties. They previously had no effect.
  6. Added Save to Tab Delimited File support to Plot Components.
  7. Added automated logging per component and per channel.
  8. Added Mouse Events to Plot Component main interface.
  9. Added External Toolbar Support.
  10. Added BeginUpdate, EndUpdate, Print, CopytoClipboard, Save, GetSnapShotPicutre, RepaintAll, Lock, and Unlock methods added to Plot Pack.
  11. Added Date/Time calculator for property editor min and span properties.
  12. Added AddDataArray method for adding synchronous data from a one or two dimensional array.
  13. Added Digital Channel support.
  14. Added HideAllMenuItems property.
  15. Added Expand/Collapse to Scale Format Style.
  16. Added SetLimitLinesOnTop method.
  17. Added SetGridLinesOnTop method.
  18. Added support for PixelsToPosition method to support invisible axes.
  19. The following Data and Property streaming methods were added to support saving and loading of channel data and both channel and component properties. Added to both channel and main plot component interfaces.

    SaveDataToFile
    SavePropertiesToFile
    LoadDataFromFile
    LoadPropertiesFromFile

 

Instrumentation and Professional Component Updates

  1. iSwitchLed upgraded for word-wrap (New Property WordWrap)
  2. Spectrum display upgraded to support setting individual colors for each bar.
  3. Angular Gauges now support degree range between 0 and 360 (previously 0 to 355).
  4. Phone Pad upgraded to support individually changing captions for each button to a custom value.
  5. Added show property for each button in the Phone Pad component.
  6. Spectrum Display streaming problem in Visual Basic fixed. NOTE! The BarValue property has been removed from the ActiveX interface. If you were using this property before, use the SetBarValue method instead.
  7. Analog Output now responds to arrow keys instead of treating them as tab keys.
  8. The following Control and Warning Limit properties were added to iStripChart...
    GetChannelControlLimitUpperLineWidth
    SetChannelControlLimitUpperLineWidth
    GetChannelControlLimitLowerLineWidth
    SetChannelControlLimitLowerLineWidth
    GetChannelWarningLimitUpperLineWidth
    SetChannelWarningLimitUpperLineWidth
    GetChannelWarningLimitLowerLineWidth
    SetChannelWarningLimitLowerLineWidth
  9. Wordwrap property added to iSwitchLed
  10. Added SaveToBitmap method to iStripChart
  11. Added Focus method to iStripChart
  12. Fixed streaming problem with Switch Slider, Rotary Switch, LEDSpiral and the VB built-in.

ActiveX and VCL Version 2.0.0 Hot Fix #2

  1. Fixed ActiveX interface problem with the Plot Pack Channel Object. Affected Internet Explorer and HP/Agilent VEE Users Only.
  2. Fixed Anti-Alias code for sliding scale components which would not work correctly wish very small component sizes.
  3. Fixed Visual Basic lockup problem with nested Plot Pack property editors.
  4. Fixed memory leak in Dual Compass component.

ActiveX and VCL Version 2.0.0 Hot Fix #1

  1. Fixed missing FontColor property on the Plot Pack Annotation object.
  2. Fixed problem where changing Pen width of Plot Pack Annotation object would change pen width of x-axis elements.
  3. Fixed problem where changing Title Font through object inspector would cause an access violation in Delphi or C++ Builder when using VCL components.
  4. Fixed problem with VCL Property Editor Textbox Error where some lower case keys were being interpreted as control characters
  5. Fixed trace line algorithm problem causing artifacts to be drawn in Plot Pack Data View Area.
  6. Updated Plot Pack clipping code which resulted in incorrect clipping of some data points.
  7. Updated Plot Pack Fill routine upgraded to handle reverse XY axes
  8. Added New property to disable users from accessing the Plot Pack Run-Time Property Editors through right mouse clicks. PropertyName: UserCanEditObjects
  9. Fixed Intermittent assertion error on component creation in Microsoft Visual C++, due to the Control Window ID being changed. The problem is more apparent as more Iocomp ActiveX controls are used.
  10. Fixed error in Seven Segment Analog component where incorrect values would be displayed.
  11. Fixed error where changing Y-Axis Label separation would change X-Axis Label separation property in VCL Plot Component Property Editor.
  12. Fixed error if X-Axis in Plot Component was shown above DataView area, the chart title would be misaligned.
  13. Fixed situation here clicking on Font button in Plot Pack property editor under labels would freeze Visual Basic.

ActiveX and VCL Version 2.0.0

  1. Fixed problem in StripChart SetBufferSize that may not report an error if the buffer size can not be allocated.
  2. Fixed KeyUp problem in ActiveX for the SwitchRotary and SwitchSlider. Would still indicate that the Arrow key was down even thoug it had been released.
  3. Fix problem with iObjectCanvas that would cause Ellipse and Rectangle to disappear if zooming out to far.
  4. Fixed multiple OCX loading bug in Visual C++ under Windows 95/98 (Reflector Window Problem).
  5. Fixed bug in the iAnalogOutput that caused the Tab key to not move focus to the next control under Visual C++ applications
  6. OnChangeUser Event Handler Added to iAnalogOutput.
  7. OnPositionChangeUser Event Handler Added to iKnob.
  8. TickLabelAlignment property Added to iAngularGauge.
  9. OnPositionChangeUser Event Handler Added to iSlider.
  10. OnChangeUser Event Handler Added to iSwitchLed.
  11. OnChangeUser Event Handler Added to iSwitchToggle.
  12. OnPositionChangeUser Event Handler Added to iSwitchRotary.
  13. OnPositionChangeUser Event Handler Added to iSwitchSlider.
  14. OnValueXChangeUser Event Handler Added to iSwitchQuad.
  15. OnValueYChangeUser Event Handler Added to iSwitchQuad.
  16. OnChangeUser Event Handler Added to iSwitchLever.
  17. OnChangeUser Event Handler Added to iSwitchRocker.
  18. OnValueChangeUser Event Handler Added to iSwitchRocker3Way.
  19. Theme capability added to all Professional and Instrument Pack components.
  20. Fixed Theme Panel crash with Visual Basic 5/6 under Windows 95/98
  21. iSevenSegmentClock now supports hour values up to 99 hours. Maximum displayed value is 23 hours. Day and year support will be added in a future release.

New Components Added

Instrument Pack:

Professional Pack:


ActiveX and VCL Version 1.1.6 (Service Pack 7)

  1. Fixed iAngularGauge and iAngularLogGauge SectionColor fill bug.
  2. Fixed Mulitiple Iocomp OCX Dax error problem in VB.
  3. Fixed StripChart Grid Scrolling Drawing bug (1 line missing).
  4. Added AutoCenter property to iAngularGauge.
  5. Added CenterLabelWordWrap property to iLedRectangle.
  6. Added CenterLabelEndsMargin property to iLedRectangle.
  7. Added CenterLabelAlignment property to iLedRectangle.
  8. Added AutoSize to iLedSpiral.
  9. Added OuterMargin to iLedSpiral.
  10. Added RangeDegrees to iLedSpiral.
  11. Added StartDegrees to iLedSpiral.
  12. Added MouseControlStyle to iSwitchRotary.
  13. Added YAxisLabelWidthFixed Property to iStripChart.
  14. Added YAxisLabelWidth Property to iStripChart.
  15. Added YAxisReverseScale Property to iStripChart.
  16. Added SetBufferSize Method to iStripChart.
  17. Added AddData Method to iStripChart.
  18. Added AutoSize to iKnob.
  19. Added OuterMargin to iKnob.
  20. Added FrameUpdateRate to all components except iAnalogOutput and iTimers.
  21. Linked Cells now supported under Excel.
  22. Added Database Support to all components except (Pie Chart, Percent Bar, Timers, Strip Chart, Object Canvas, Panel, LED Matrix, Switch Quad, Switch Rocker 3-Way, Rotation Display, and Gradient).
  23. Fixed design-time drawing bug in Excel and Cimplicity.
  24. Fixed recursion problem in Cimplicity when double-clicking on component.
  25. Fixed component destruction bug in PowerBuilder.
  26. Fixed GetChannelMax and GetChannelMin bug which caused the last data point to be ignored.
  27. Updated Help Files.

ActiveX and VCL Version 1.1.4 (Service Pack 6)

  1. Fixed MinMaxPointerMargin property change error which resulted in the Scale not being redraw in its new position.
  2. Fixed iSwitchSlider and iSwitchRotary Position streaming error that would have limited it to a maximum value of 2.
  3. Fixed iSevenSegmentClock bug where the OnCountDownComplete event would unrepentantly fire and the timer would be disabled if the counter was enabled at runtime with the time set to 0 and the direction set to Up.
  4. Fixed drawing error in knob control that would occur with some NT video drivers.
  5. Fixed iAnalogOutput SetFocus and KillFocus problems in ActiveX.
  6. Upgraded iOdometer control to rotate all digits. WARNING: you may need to expand the width of the control to accomodate the new painting routines.
  7. Added BackGroundColor property to the SwitchQuad control.
  8. Added Transparent property to the following controls...
    iLinearGauge
    iAngularGauge
    iLogGauge
    iAngularLogGauge
    iKnob
    iSlider
    iThermometer
    iLedBar
    iLedSpiral
    iSwitchQuad
    iSwitchLever
    iSwitchRocker
    iSwitchRocker3Way
    iSwitchRotary
    iSwitchSlider
    iSevenSegmentCharacter
    iSevenSegmentAnalog
    iSevenSegmentBinary
    iSevenSegmentHexadecimal
    iSevenSegmentInteger
    iSevenSegmentClock
    iSevenSegmentClockSMPTE
    iLedRound
    iLedArrow
    iLedDiamond
    iLedMatrix
    iOdometer
    iPieChart
    iPercentBar
    iObjectCanvas
    iCompass
    iRotationDisplay
  9.  Added the following events to the iStripChart control...
    OnKeyPress
    OnKeyDown
    OnKeyUp
  10. Added BeginUpdate and EndUpdate methods to all controls except iAnalogOutput and iTimers.
  11. Added PrecisionStyle property to all Scale components.
  12. Added AutoScale to all Scale components implemented via the four following properties...
    AutoScaleEnabled
    AutoScaleDesiredTicks
    AutoScaleMaxTicks
    AutoScaleStyle
  13. Added the following properties to the iStripChart control...
    ChannelVisibleInLegend
    InterpolateMissingDataPoints
    YAxisShow
  14. Added OnCustomizeTickLabel to all Scale based components.
  15. Added limits to all scale based components and implement the following interfaces...
    Added LimitUpperValue Property
    Added LimitLowerValue Property
    Added LimitPointerSize Property
    Added LimitPointerMargin Property
    Added LimitUpperPointerColor Property
    Added LimitLowerPointerColor Property
    Added LimitShowUpperPointer Property
    Added LimitShowLowerPointer Property
    Added LimitDrawScaleSide Property
    Added LimitCount Property
    Added AddLimit Method
    Added RemoveLimit Method
    Added RemoveAllLimits Method
    Added OnPositionOverLimit Event
    Added OnPositionUnderLimit Event
  16. Added MouseControlStyle to iSlider control.
  17. Added Lock and Unlock methods to all controls (Except iTimers) to simplify Multiple Thread Management.
  18. Added AutoCenter property to iThermometer.
  19. Updated help files and fixed minor bugs and other issues in the ActiveX and VCL help files.

ActiveX and VCL Version 1.1.2 (Service Pack 5)

  1. iLedRectangle - Fixed Property Editor, CenterLabelFontInactiveColor incorrectly sets the CenterLabelFontActiveColor.
  2. Fixed iSevenSegmentClockSMPTE VCL property editor not enabling OK or Cancel button when Hour/Min/Sec property is updated.
  3. Fixed ActiveX printing problems.
  4. iSlider and iKnob modified to now change the indicator state in response to keyboard control.
  5. iAnalogOutput Additions
    Added BeepOnError property.
    Added UndoOnError property.
    Added FilterStyle property.
    Added OnBeforeChange event.
  6. Added ShowReflection property to iLedRound.
  7. Added ShowReflection property to iLedRectangle.
  8. Added IndicatorShowReflection property to iLedMatrix.
  9. Fixed BackGroundPicture streaming problem in VB for components with Background picture property.
  10. Added SegmentOffColor & AutoSegmentOffColor to all Seven Segmentscomponents.
  11. Added AutoInactiveColor & InactiveColor property to all LED components.
  12. Added ReverseScale property to the following components
    iLinearGauge
    iAngularGauge
    iLogGauge
    iAngularLogGauge
    iSlider
  13. Added HubColor property to the following components
    iAngularGauge
    iAngularLogGauge
  14. Strip Chart additions
    Added GetNow method
    Added Channel Warning Limit properties
    Added AutoScrollFirstStyle property
    Added Precision Style property
    Added DiscontinuousDataEnabled property
    SetChannelDataNull method.
  15. Seven Segment Clock additions
    Added CountDirection property
    Added CountTimerEnabled property
    Added OnCountDownComplete event
    Added SetTimeInSeconds method
    Added ResetToZero method
  16. Added new Compass Control to Professional Pack.

ActiveX and VCL Version 1.1.0 (Service Pack 4)

  1. Added support for Borland C++ Builder 5.
  2. Added PositionIndicatorStyle property to iSwitchSlider.
  3. Fixed TabStop problem with VCL components.
  4. Fixed VCL property Editor Tab Order.
  5. Fixed streaming bug where CurrentMin not being set correctly.
  6. Fixed streaming bug that incorrectly streamed in Position property if Position was greater than the PositionMax default.
  7. Added CaptionAlignment property to iSwitchLed.
  8. Added the following features to the iStripChart (See Help File for specifics)...

    Printing Comment Lines
    Channel Min/Max/Mean
    Label Channels
    Added CopyToClipBoard method
    Added SnapShotPicture property
    Added SaveToMetaFile method
    Added CursorHideAllOtherChannels property
    Added EnableDataDrawMinMax property
    Added AutoScaleMinAdjustEnabled property
    Added AutoScaleMaxAdjustEnalbed property
    Added XAxisShow property
    Added GetNextChannelColor method
    Added AddIndexTimeNow method
    Added AddIndexTimeElapsedNow method
    Added ResetElapsedStartTime method
    Added EnableDataDrawMinMax property
    Added write method for CursorIndex property


ActiveX and VCL Version 1.1.0 (Service Pack 3)

  1. Fixed runtime property editor lockup problem when opening color dialog.
  2. Fixed property editor display problem when system is using large fonts.
  3. Fixed iStripChart bitmap resource leak problem.
  4. Fixed iStripChart pen width problem when the last channel width is other than 1.
  5. Add the following features to the iStripChartX...
    Added PrinterOrientation property
    Added PrinterMarginLeft property
    Added PrinterMarginTop property
    Added PrinterMarginRight property
    Added PrinterMarginBottom property
    Added PrintChart method
    Added Printer Property Page
    Added MaxBufferSize property
    Added MinBufferSize property
    Added CursorIndex property
    Added OnCursorIndexChange event
    Added RestoreXYAxisOnPlotMode property
    Added ChannelVisible property

ActiveX (Only) Version 1.0.8

1. Added OnMouseDown, OnMouseMove, and OnMouseUp events to all components.

VCL (Only) Version 1.0.8

<None>


ActiveX and VCL Version 1.0.4 (Service Pack 2)

  1. Fixed iLinearGauge Font updating problem.
  2. Fixed MouseDown event firing in response to MouseUp Event in the following components...
    iKnob
    iSlider
    iSwitchLed
    iSwitchToggle
    iSwitchRotary
    iSwitchSlider
    iStripChart
  3. Fixed iSwitchLed Enable problem.
  4. Fixed iStripChart XAxisTitle display problem.
  5. Added GridBackGroundColor property to iStripChart.
  6. Added XAxisDateTimeEnabled & XAxisDateTimeFormatString Property.
  7. Added BackGroundPicture to the following components...
    iKnob
    iAngularGauge
    iLinearGauge
    iSlider
    iThermometer
    iLedSpiral
    iSwitchSlider
    iSwitchRotary
  8. Added the following properties to iSevenSegmentCharacter and added property page to support new properties...
    SegmentBits
    UseSegmentBits
    SegAOn
    SegBOn
    SegCOn
    SegDOn
    SegEOn
    SegFOn
    SegGOn

ActiveX (Only) Version 1.0.4

  1. Visual C++ Only : Property page values not updating when editing components (Fixed).
  2. Fixed Property Page tab order problems.
  3. Added ShowPropertyEditor to all components.

 

VCL (Only) Version 1.0.4

  1. StripChart Apply button not enabled for most property changes until after at least one channel is added (Fixed).

ActiveX and VCL Version 1.0.2 (Service Pack 1)

  1. Change iStripChart ZoomX and ZoomY methods to zoom based on a 100% reference. The previous code was zooming based on a 0% reference and required positive percentages to zoom out and negative percentages to zoom in. Now functions as intended. To zoom out 100%, specify 2.00. To zoom in 100%, specify 0.50.
  2. Fixing painting problem on iSwitchSlider and iSwitchRotary when modifying labels through code.
  3. Fixed access violation caused when using the OnPositionChange event handler. Removed code that could possible execute the event handler before other components had been created on the Form causing an access violation.
  4. Source code files are now distributed with VCL components.

ActiveX Only 1.0.2

  1. Removed all unused Properties and Methods that would not allow ActiveX components to properly install in Borland products.
  2. Removed Hidden attribute on all read only properties. Would cause the read only properties to be missing in the Visual C++ wrappers.

ActiveX and VCL Version 1.0.1 (Hot Fix #1)

  1. Updated Help Files with examples for all Methods and Events.

Other Fixes Not Listed


Installation 

ActiveX Users

  1. If you are upgrading from version 2.x, it is recommended to first install Version 2.x SP7, open, modify, and save your existing projects. This step will ensure that there are no compatibility problems with default component properties that are changed in this version. 
  2. Visual C++ users must regenerate wrappers for components in existing projects to utilize new features/methods.
  3. ActiveX CAB files that have been digitally signed by Iocomp Software are available for download from our website at http://www.iocomp.com/download.

VCL Users

  1. If you are upgrading from version 2.x, it is recommended to first install Version 2.x SP7, open, modify, and save your existing projects. This step will ensure that there are no compatibility problems with default component properties that are changed in this version.
  2. Rebuild Library/Package for changes to take effect. This installer will reinstall new package files and will automatically recompile the Library/Package for you.  If the automatic recompilation fails, you can manually recompile the packages.

CLX Users [Delphi 6/7 and C++ Builder 6 for Windows]

  1. Our VCL and CLX components are split into two different packages. The installer will automatically compile and install the packages for you. If the automatic compile and install fails, you will need to manually compile both packages to use both the VCL and CLX versions of our components in Delphi 6/7.

CLX Users [Kylix for Linux]

Installing with the Linux Installer

Quick Installation Instructions

  1. Install and setup Kylix on your system. Note : Please do not run Kylix while logged in as ROOT. There are known issues with doing anything in KDE/GNOME/KYLIX while logged in as ROOT. Either log in as a general user or log in as a user with root privileges when using Kylix.
  2. Open a shell and navigate to the folder where you downloaded our Linux installer.  Execute "./setup" file to execute the installer.
  3. Follow the wizard in the installer to install our CLX component source code. You will need the keycodes for your purchased product to complete the installation.
  4. Open Kylix and then open the Iocomp60.bpk package file located in the "Kylix1" folder where you installed our source files (Use the Kylix1 folder for both Kylix 1, 2, or 3).

    By default our source is installed in ...

    "{user home directory}/iocomp/product/Kylix1"

    example for user "TestUser"...

    "/home/TestUser/iocomp/product/Kylix1"

    ...or if you ran the installer as Root...

    "/usr/local/iocomp/product/Kylix1"
     
  5. Remove any items from the package that you did not have a keycode for during the installation. For example...

    Instrument Pack Only
    Remove iPlotPackPropertyEditorsReg.pas
    Remove iPlotPackReg.dcr
    Remove iPlotPackReg.pas
    Remove iProfessionalPropertyEditorsReg.pas
    Remove iProfessionalReg.dcr
    Remove iProfessionalReg.pas

    Professional Pack Only
    Remove iPlotPackPropertyEditorsReg.pas
    Remove iPlotPackReg.dcr
    Remove iPlotPackReg.pas

    Plot Pack Only
    Remove iInstrumentPackPropertyEditorsReg.pas
    Remove iInstrumentPackReg.dcr
    Remove iInstrumentPackReg.pas
    Remove iProfessionalPropertyEditorsReg.pas
    Remove iProfessionalReg.dcr
    Remove iProfessionalReg.pas
  6. Click on the "Install" button to compile and install our components into your pallet.
  7. Open your Tools/Environment Options menu, click on "Directories/Conditionals", and add to the Library Path a path to our source files.

    By default our source is installed in ...

         "{user home directory}/iocomp/product/Kylix1"

    ...or in...

         "/usr/local/iocomp/product/Kylix1"
    if you ran our installer as root.
  8. Installation is Complete!
  9. Please understand that this is a beta version of our components under CLX. Some features have been disabled or do not work properly as of yet. If you have any bug reports or problems, please contact Iocomp Support directly or fill out a bug report online.

See other Install Notes for specific compiler instructions.


Technical Support

For support, please contact us at support@iocomp.com or visit our web site at http://www.iocomp.com/support for telephone and other support options.


Copyright ©1998-2003 Iocomp Software Incorporated. Iocomp and the Iocomp Logo are registered trademarks of Iocomp Software Inc. Borland is a registered trademark of the Borland Corporation. Windows, Microsoft, and ActiveX are registered trademarks of the Microsoft Corporation. Linux is a trademark of Linus Torvalds. All other trademarks are registered by their respective owners.