Instrumentation Components Release Notes

Release: 5.0.2 - V5 SP1 Installer 86 Build: Release 12 Nov 2015 Date:

This document is organized into the following sections...

 Revision History  Installation  OPC  Technical Support

Revision History

ActiveX and VCL/CLX Version 5.0.2 Service Pack 1

Bug Fixes:

1. Fixed issues with Embarcadaro XE2 and above 64-Bit compilation and source path issues.

New Features:

1. Added support for Embarcadero Rad Studio 10 Seattle ( & ++ Builder). 2. Added new Win32 & Win64 Folders for VCL binary files. These new folders are sub-directories of the common source directory for the specific developemnt environment.

ActiveX and VCL/CLX Version 5.0.0 Service Pack 0

Bug Fixes: 1. iThreadTimer ActiveX property editor crashing issue fixed. Would occur when setting any timer Enabled property to True and clicking the Ok or Apply button.

New Features:

1. Added support for Embarcadero XE7 (Delphi & C++ Builder). 2. Added support for Embarcadero XE8 (Delphi & C++ Builder). 3. Added full support for 32-Bit and 64-Bit application development... o All Embarcadero Development Environments starting with XE2. o Includes 32-Bit and 64-Bit OCX Builds. o Includes 32-Bit and 64-Bit OPC Distribution Builds (iOPC5_32.dll & iOPC5_64.dll) o Supports 64-Bit Debugging on any Microsoft 64-Bit OS. 4. Upgraded iPlot control drawing routines for increased performance.

ActiveX and VCL/CLX Version 4.1.0 Service Pack 5

Bug Fixes:

1. None.

New Features:

1. Upgraded controls to support Embarcadero XE6 (Delphi + C++ Builder).

ActiveX and VCL/CLX Version 4.0.8 Service Pack 4

Bug Fixes:

1. Fixed mouse increment/decrement issue on the iSwitchQuad control. You would not be able to change the ValueX or ValueY property value while the CTRL or SHIFT key was being held down. 2. Fixed plot channel YMean calculation bug. The GetYMean function would always return 0. 3. Fixed GetYInterpolated function return value issue. The return value is a boolean indicating if the returned value is valid or not. For interpolated values, the boolean return value was always correct. For the case where no interpolation was necessary because the target x-value match the x-value of an actual data-point and the data-point y-value was null, the returned value was incorrectly reported as valid. Because the plot control data-cursor utilizes the GetYInterpolated function, these fix also corrects the same issue with the data-cursor.

New Features:

1. Upgraded controls to support Embarcadero XE2 (Delphi + C++ Builder). 2. Upgraded controls to support Embarcadero XE3 (Delphi + C++ Builder). 3. Upgraded controls to support Embarcadero XE4 (Delphi + C++ Builder). 4. Upgraded controls to support Embarcadero XE5 (Delphi + C++ Builder). 5. Upgraded design-time licensing manager to support development on 64-Bit operating systems.

ActiveX and VCL/CLX Version 4.0.6 Service Pack 3

Bug Fixes:

1. Fixed iKeyBoard control SavePropertiesToFile issue. The control was not saving out the settings for individual buttons. 2. Fixed various Unicode issues with using the Plot Control's SavePropertiesToFile and LoadPropertiesFromFile methods.

New Features:

1. Added Transparent Support to iRotationDisplay rotated images. 2. Upgraded plot control channel running statistics to support nulls and empties. 3. Upgraded All Instrumentation Products to support C++ Builder XE. 4. Upgraded All Instrumentation Products to support Delphi XE. 5. Upgraded All Instrumentation Products to support RAD Studio XE.

ActiveX and VCL/CLX Version 4.0.4 Service Pack 2

Bug Fixes:

1. Fixed LoadPropertiesFromFile bug which would misinterpret carriage- return/line-feed characters. The result would be multi-line text being corrupted into single-line text strings. 2. Fixed iSwitchSlider Unicode display bug. 3. Fixed iSwitchRotary Unicode display bug. 4. Fixed data-cursor y-value issue when the channel was in Differential mode and the Snap-To-Data-Point option was enabled. The data-cursor would display the value for the previous data-point. 5. Fixed double key-press bug. Affected control's which support increasing or decreasing their value through key presses. For example, pressing the up-arrow key on the SwitchSlider or SwitchRotary would cause the value to increase by 2 steps. (Note: This bug would not occur on Vista or Windows 7). 6. Added ClipToAxes property to the Plot/XYPlot control ActiveX iPlotLimitX interface. This property has always existed, was always accessible through the property editor, but was missing on the ActiveX version iPlotLimitX COM interface (Was not an issue with the VCL version).

New Features:

1. Added support for Delphi 2010. 2. Added support for C++ Builder 2010. 3. Added Support for RAD Studio 2010. 4. Upgraded all ActiveX controls to support Unicode. 5. Upgraded all property editors to display Unicode strings.

ActiveX and VCL Version 4.0.2 Service Pack 1

Bug Fixes:

1. Fixed bug on the Plot control DataCursor which would occur when multiple x- axis where stacked end-to-end and the x-axis was in data-time mode. There would be a small error when the data-cursor calculated the x-value to display in the hint box. 2. Fixed AutoFrameRate issue which would result in the last frame not always being painted. Previously, when data collection was suspended, it was necessary to call the invalidate method to ensure the last frame was always painted. With this fix, you no longer need to call the Invalidate method.

New Features:

1. Added PointerFillEnabled and PointerFillColor properties to the iSwitchSlider control. 2. Added the OnTimeBaseSecDivChange event to the iScope control. 3. Added the OnMouseDownObject, OnMouseUpObject, OnMouseMoveObject, and OnDblClickObject events to the iObjectCanvas control. These events will fire when the specific mouse effect occurs on a object within the control. The event parameters includes the handle for the specific object causing the event to fire. 4. Added Support for CodeGear Delphi & C++ Builder 2009. 5. Added CustomizeLabelEventText property to the PlotAxis object. This new property is used in conjunction with the OnXAxisCustomizeLabel event. It is only necessary to use this property in VBScript and JavaScript applications because HTML does not support passing text by reference. So in these types of applications, do not use the ALabel parameter passed in the event to modify the label text, and instead use this new property.

ActiveX and VCL/CLX Version 4.0.0 Service Pack 0

Bug Fixes:

1. None.

New Features:

1. Added Support For 's Turbo Delphi. 2. Added Support For Borland's Turbo C++. 3. Added Support For Borland's RAD Studio 2007. 4. Added Support for Borland's Delphi 2007. 5. Added Support For Borland's C++ Builder 2007. 6. Added PointerFillEnabled and PointerFillColor properties to the iSlider control. 7. Added the following events to the iPlot and iXYPlot controls... o OnGetMouseCursorChannel o OnGetMouseCursorXAxis o OnGetMouseCursorYAxis o OnGetMouseCursorDataCursor o OnGetMouseCursorDataView o OnGetMouseCursorLegend o OnGetMouseCursorLimit o OnGetMouseCursorTable o OnGetMouseCursorAnnotation

ActiveX and VCL/CLX Version 3.1.0 Service Pack 5

Bug Fixes:

1. Fixed property editor lockup issues in ActiveX containers when using the Color, Font, and etc dialogs. 2. Fixed scrolling issue with the plot legend. Would occur when the plot control was first resized such that not all legend items could be displayed and the scroll bars appeared. Then the user would need to scroll the list down one or more items. When the plot control was then resized large enough to fit all legend items, the list would still be scrolled and the scroll buttons would disappear. 3. Added missing WordWrap checkbox in the iLabel property editor. 4. Fixed the Plot axis Master-UI-Input issue that caused other axes to not respond to mouse-wheel movements. 5. Fixed Plot Annotation bug that would occur when the X-Axis was in DateTime mode. There was an error in the span pixels calculation for the width of the annotation. 6. Fixed PlotAnnotation OuterMargin being ignored when the style property is set to ipasTextBox and multi-line text is displayed. 7. Fixed issue with the plot control axis labeling where when in the Prefix mode, the 0.0 value tick label would show up as 2.78f (0.000000000000278) due to floating point storage/rounding issues. The new code detects this rounding issue and displays a hard-coded "0.0" string. 8. Fixed bug on the iXYPlot control data-cursor that would result in small inaccuracies with the returned X&Y values. 9. Fixed bug with Instrumentation controls that support saving strings properties to file and contained multi-line text. The symptoms would be when reloading the properties, multi-line string properties would only load the first line and all other lines would be dropped. 10. Fixed OnPositionOverMax and OnPositionUnderMin event not firing on Position/Scale type components. 11. Fixed resource leak in iLedRound control. Would result in a HRGN object being leaked each time the Led was drawn. 12. Fixed ALT key trapping problem on all controls in the ActiveX version.

New Features:

1. Added SpanMinimum, MaxMargin, and MinMargin properties to the axes Tracking features. Use SpanMinimum to limit the minimum value for the Span. Use the MaxMargin and MinMargin properties to provide a margin above or below the data. These properties are also used when performing a ZoomToFit operation. 2. Added the ResetStartTimeOnFirstDataPoint property to the iPlotChannel object. This property is useful if you are adding data with an elapsed time using the AddYElapsedTime or AddYElapsedSeconds methods and you want the first data-point to start at zero. 3. Added AllowOutOfOrderXValues and DrawOutOfOrderXValues properties to the Plot control Channel type (iPlotChannel for VCL and iPlotChannelX for ActiveX). The iPlotChannel is designed assuming that the X-Values are incremental. This allows for high-speed drawing of the channel data using the y = f(x) formula. For a default plot control setup, you will not receive an error if you add data-points with an out-of-order X-Value. Set the AllowOutOfOrderXValues property to False so that an exception is raised when an out-of-order X-Value is added. If you need to have out-of-order x- values, set the DrawOutOfOrderXValues property to True, but you will loose the high-speed drawing optimization capability. 4. Added the following events to the Plot control...

OnMouseWheelXAxis OnMouseWheelYAxis OnMouseWheelDataView OnMouseWheelLegend OnMouseWheelChannel OnMouseWheelLimit OnMouseWheelDataCursor OnMouseWheelAnnotation

5. Added a CanFocus property to the follow plot sub-objects...

XAxis YAxis DataView Legend Channel Limit DataCursor Annotation

6. Added ClickRectLeft, ClickRectRight, ClickRectTop, and ClickRectBottom properties to the iPlotAnnotation object (All properties are in pixels). These properties where added to allow you to determine the extents of annotations like the Text and TextBox which have their extents determined by the Text, Font, and etc. attributes. These new properties are not calculated until the plot is repainted. If you need to position another object based on these property values immediately, you will need to call the ReCalcLayout method to force a recalculation of all pixel based property values. 7. Added UseCachedInerpolatedData property to the plot control iPlotDataCursor object. This property is used to speed up calls to the GetInterpolatedYValue method. When this property is set to False, each call to the GetInterpolatedYValue method requires a ReCalcLayout method call. If you are in a loop calling GetInterpolatedYValue many times, performance can suffer significantly. Typically, this scenario applies when using a curve fitting interpolation style like Cubic-Spline, Polynomial, and etc. where you want to iterate over the visible data to get the displayed interpolated values. For this case, set UseCachedInerpolatedData to True, make any other display settings, and then call the ReCalcLayout method once before looping and calling GetInterpolatedYValue. Note: You are restricted to visible data when using this technique. 8. Added Scalar and Offset properties to all opc-items. Used for scaling and or applying an offset correction to an opc-item's data. On new opc-data from the opc-server, the data is multiplied by the scalar before the offset is applied. This feature is only support on opc data that is of type real or integer. The scalar and offset is not applied to data with types like Boolean, String, and etc. The PlotChannel adds an OPCScalar and OPCOffset property that is used for the y- value. The XYPlotChannel adds an OPCScalar, OPCOffset, OPCScalar2 and OPCOffset2 property. The OPCItemName, OPCScalar, OPCOffset are used for the x-value and the OPCItem2Name, OPCScalar2, OPCOffset2 are used for the Y-value. 9. Added options to allow showing and customization of data-points hints to the user. Set the channel ShowDataPointHints property to True to allow a hint box to be shown next to the data-point. The plot must also be the select mode and the data-point markers must also be visible for this option to be enabled. By default, the x&y value for the data-point will be shown and will be formatted using the respective axes labeling formatting. To provide your own formatting, use the OnDataPointCustomizeHint event and change the AText parameter to the desired text you want displayed. 10. Added OnMouseDownDataPoint, OnMouseMoveDataPoint, and OnMouseUpDataPoint events to the plot channel objects. These events will only fire when the channel is enabled, the plot is in the select mode, and data- point markers are shown on the channel. 11. Added Image property to the Plot Annotation object. When this property is set to a non null value, the ImageIndex and ImageListIndex properties are ignored even if they point to a valid image in one of the three different imagelists. Note: The Style of the annotation must also be set to "ipasImage" for the image to be displayed. The lower left pixel of the image is used to set the transparent color of the image. If you do not want the image to be transparent, make sure to set this pixel to a color that does not match any other color in the image. You can also use the new ImageLoadFromFile method to load the image directly from a file. Also added an ImageClear method to make it easy to clear out the image in many different ActiveX development environments. 12. Added None to the TiPlotAxesControlStyle which is used by the PlotDataView AxesControlMouseStyle and AxesControlWheelStyle properties. These new enumeration allows you to independently turn of the DataView Mouse and Wheel axes control. 13. Added ability to load the iSwitchLed Glyph property image inside of the Instrumentation design-time property editor. 14. Added ability to load the iRotationDisplay Picture property image inside of the Instrumentation design-time property editor. 15. Added property ShowDisabledState to the iSwitchRotary, iSwitchSlider, iSlider, and iKnob control. This property allows you to control whether the control draws itself in a disabled state when the Enabled property is set to False. This feature is helpful when you have background colors that do not contrast will be disabled text and borders that are drawn using black and gray colors. 16. Added Image rotation capability to the iObjectCanvas control. Use the GetObjectImageRotation and SetObjectImageRotation methods on the iObjectCanvas to Get or Set the rotation of the image object. 17. Added new PlotAnnotation style called ipasRectangle2. The ipasRectangle2 style uses the X, Y, X2, and Y2, properties of the annotation instead of the X, Y, Width, and Height like on the ipasRectangle style. The main reason for this addition is to eliminated the wobble in the annotation when resizing it. The wobble occurs due to aliasing of the mouse movements along with dividing it evenly into the new Width and or Height value. 18. Added a new property to the PlotAnnotation and PlotLimit called SelectModeOnlyInteraction. This property is set to true by default meaning that the plot object will not be mouse interactive will the plot data-view is not in the select mode. Setting this property to a false will cause the object to be interactive in any data-view mode (Select, Zoom-box, or Data-Cursor). The main benefit of this property is to allow these objects to generate mouse-move events regardless of the mode of the data-view. 19. Upgrade the AngularGauge to hide the last tick label when the ArcRangeDegrees is set to 360 degrees. Before this upgrade, you would have the Min label overlapped by the Max label. Only the Min label will now be shown. 20. Added 2 additional color sections to the iLedBar and iLedSpiral controls. There are 4 new properties called SectionColor4, SectionColor5, SectionEnd3, and SectionEnd4. The SectionCount property upper limit has been changed from 3 to 5 to support the two addition color sections. 21. Added VK_APPS key support to plot object pop-up menu support. The pop-up menu will now pop-up when hitting the menu-list keyboard key. 22. Addded OnAnnotationMoveUser event to the plot controls. This event will fire anytime the user moves an annotation and the index of the annotation is passed in the event handler parameters. 23. Addded OnAnnotationResizeUser event to the plot controls. This event will fire anytime the user moves an annotation and the index of the annotation is passed in the event handler parameters. 24. Added the following properties, methods, and events which were present on the Plot control main VCL interface, but were missing on the ActiveX interface...

Properties : PrinterPaperHeightCentimeter, PrinterPaperHeightInches, PrinterPaperHeightPixels, PrinterPaperWidthCentimeters, PrinterPaperWidthInches, PrinterPaperWidthPixels, PrintXStart, PrintXStop.

Methods : PreviewChart, PrintAdjustXSpanToMinutesPerMillimeter, PrintSizeToFillPage.

Events : OnBeforePrintPage

25. Add CloseAllServerConnections method to the iOPCManager component. This method allows you to force all OPCServer connections to close. This method is useful when the DCOM connection to the OPC server has been lost and you wish to terminate all connections from the iOPCManger's point of view. After this method has been called, re-add your opc-items, or call the Activate method on the existing opc-items have the connect re-established. 26. Added TextLineAlignment property to the plot annotation sub-object. This property allows you to specify how multiple lines of text are aligned horizontally in the annotation. Applies to the Text and TextBox style of annotation. 27. Added the ability for the user to zoom-box while in the scroll/zoom mode by using the right mouse button. Before, the user had to switch the plot control into the zoom-box mode to be able zoom into a specific area using the left mouse button. The user can now perform a zoom-box operation using the right mouse button while in the scroll/zoom mode. The left mouse button is still used to scroll/zoom as before. The user must move the mouse more than 5 pixels in either direction to initiate the zoom-box operation. If the user moves the mouse less then 5 pixels in either direction while the mouse is down, then releases the mouse, the pop-up menu will still appear as before. 28. Added the AxesControlAllowInSelectMode property to the Plot Data-View object. This property allows scrolling and zooming of the plot control while in the Select mode (Also assuming the AxesControlEnabled property is set to True). Before, you had to turn off the select mode to be able to scroll or zoom the view (Also assuming the Zoom-Box mode has not selected). The new right- click zoom-box mode is supported by this option. 29. Added Visible, BackGroundColor, FontColor, and UseControlFontColor properties to the Keyboard control button properties. With these properties, you can hide or customize the look of a specific keyboard button. 30. Added support for adding 2 or more OPC-Items using the same property name on the control. Typically, this option would be used to control 2 different digital signal's on the OPC-Server. 31. Added OPCItem2Name, OPCScalar2, and OPCOffset2 properties to the Plot control channel object. These properties give you the ability to have a separate OPC item for the X and Y value for each data-point and also to scale and offset the value. Normally, the OPCItemName property is used to specify the OPC- Item for the Y-Value and the X-Value is generated based on the OPCXValueSource property setting. When having the X & Y value sourced from an OPC-Item, use the OPCItemName property to specify the OPC-Item for the data-point X-Value and use the OPCItem2Name property to specify the OPC-Item for the data-point Y-Value. 32. Added ability for the Plot control Label object to support images. Use the ImageListIndex and ImageIndex property to use an image from one of the 3 internal ImageList's in the plot control. Or use the Image property or ImageLoadFromFile method to load an image through code dynamically. Use the ImageClear method to dynamically clear the image. The image will be centered horizontally using the Alignment property of the label. The MarginLeft property is used if the Alignment is set to iahLeft. The MarginRight property is used if the Alignment is set to iahRight. Both the MarginLeft and MarginRight properties are ignored if the Alignment is set to iahCneter.

ActiveX and VCL/CLX Version 3.0.8 Service Pack 4

Bug Fixes:

1. Fixed property editor bug that would cause lockups in several different development environments when click on Color, Font, Picture, and etc. dialogs. 2. Fixed tabbing problems with the ActiveX controls in Visual C++. 3. Fixed OPC Item browsing bug where an Access Violation would occur when trying to browse more than 512 items in a given branch. 4. Fixed Plot data-cursor bug where delta cursors would always report 0 for the measured value. 5. Fixed XYPlot data-cursor bug where the data-cursor would always measure the first channel regardless of what channel was selected. 6. Fixed drawing error bug in the iPhonePad and iKeyBoard control where some buttons would draw using the disabled control even if they were not disabled.

New Features: iLinearGauge

 Added GetPointersFocused and SetPointersFocused methods. iLable

 Added WordWrap property for multi-line support. iPlot and iXYPlot  Added OnAddChannel event.  Added OnAddXAxis event.  Added OnAddYAxis event.  Added OnAddDataCursor event.  Added OnAddDataView event.  Added OnAddLegend event.  Added OnAddLimit event.  Added OnAddTable event.  Added OnAddAnnotation event.  Added OnRemoveChannel event.  Added OnRemoveXAxis event.  Added OnRemoveYAxis event.  Added OnRemoveDataCursor event.  Added OnRemoveDataView event.  Added OnRemoveLegend event.  Added OnRemoveLimit event.  Added OnRemoveTable event.  Added OnRemoveAnnotation event.

ActiveX and VCL/CLX Version 3.0.6 Service Pack 3

Bug Fixes:

1. Fixed bug in PieChart and PercentBar where slices less than 1% would not draw. 2. Fixed name conflict problem with Visual C++ wrapper generator. The ItemCount property would conflict with the GetItemCount method. changed GetItemCount method name to Get__ItemCount (note: Get is followed by a double underscore). 3. Fixed hit test code for all plot objects. Plot objects on the bottom would respond to the hit-test first. Plot objects on top now respond to the hit-test first. 4. Fixed Zoom-To-fit bug on the PlotAxis class. When the channels assigned to the axes had no data, calling the ZoomToFit method on the axis would cause the Span to be set to zero. The ZoomToFit method has been changed to not modify the Span in this case. 5. Fixed X-Axis label formatting bug that caused the application/process to lock up. when the Data-Time mode was enabled on the axis and the increment in labels was in days, months, or years, for some cases, the label generation code would enter an endless loop causing the application/process to lock up. 6. Fixed clipping problem when printing the plot control with a gradient background. 7. Fixed bugs on Plot Data-Cursor that would result in a null being displayed if the pointer was exactly over the first or last data-point in a channel. 8. Fixed Zoom-To-Fit bug on the axes that would occur when all data-points had the same value. Would result in the application/process locking up. 9. AnalogOutput would always display a "." character for the decimal separator. No Fixed to use the International settings on the . 10. Fixed iPaintToDC method on all controls to use the correct X & Y offset. 11. Fixed data-cursor problems in displaying the correct values when the axes were configured for logarithmic display.

Distribution Changes:

The "iOPC.dll" has now been renamed to "iOPC2.dll". The new "iOPC2.dll" has interface changes to make it compatible with our .Net components/controls. Version 3 SP3 for ActiveX & VCL and Version 3 SP2 for .Net must now use the new iOPC2.dll during development and distribution. If you have OPC applications developed with our ActiveX or VCL controls prior to Version 3 SP3, you must still distribute them with the older "iOPC.dll". It is recommended that both dll's be distributed to the System32 directory on the client machine and they can coexist together.

New Features: iAngularGauge

 Added a new property: FaceBevelSize  Added a new property: FaceBevelStyle  Added a new property: FaceColor  Added a new property: FaceStyle  Added a new property: Hub3D  Added a new property: ShowFace iEditCustom  Added a new property: AcceptOnLostFocus iGaugeComponent  Added a new method: SetPointersPositionNoEvent iKnob  Added a new property: Color iLedBar  Added a new property: FillReferenceEnabled  Added a new property: FillReferenceValue iLinearGauge  Added a new property: AllowFocus  Added a new property: KeyArrowStepSize  Added a new property: KeyPageStepSize  Added a new property: MouseWheelStepSize  Added a new property: PixelsMax  Added a new property: PixelsMin iOPCItem  Added a new method: GetDataNow  Added a new property: UpdateSuspended iPositionComponent  Added a new property: MinMaxStyle3D iSlider

1. Added a new property: PixelsMax 2. Added a new property: PixelsMin iSwitchLed

1. Added a new property: MomentaryStyle iSwitchRotary

1. Added a new property: FaceBevelSize 2. Added a new property: FaceBevelStyle 3. Added a new property: FaceColor 4. Added a new property: FaceStyle 5. Added a new property: OuterMargin 6. Added a new property: PointerFaceBevelSize 7. Added a new property: PointerFaceBevelStyle 8. Added a new property: PointerFaceColor 9. Added a new property: ShowFace 10. Added a new property: ShowPointerFace iThermometer

1. Added a new property: IndicatorUserCanMove 2. Added a new property: PixelsMax 3. Added a new property: PixelsMin iAngularLogGauge

1. Added a new property: AutoSize 2. Added a new property: FaceBevelSize 3. Added a new property: FaceBevelStyle 4. Added a new property: FaceColor 5. Added a new property: FaceStyle 6. Added a new property: Hub3D 7. Added a new property: OuterMargin 8. Added a new property: ShowFace iLogGauge

1. Added a new property: PixelsMax 2. Added a new property: PixelsMin iTank

1. Added a new property: AutoTankShadowColor 2. Added a new property: TankShow iPlotAnnotation

1. Added a new property: OuterMargin 2. Added a new property: PolyPointAdd 3. Added a new property: PolyPointsClear 4. Added a new property: PolyPointsCount 5. Added a new property: PolyPointX 6. Added a new property: PolyPointY 7. Added a new property: ReferencePositionX 8. Added a new property: ReferencePositionY 9. Added a new property: ReferenceSizeX 10. Added a new property: ReferenceSizeY iPlotAxis

1. Added a new property: TrackingIncrementStyle iPlotChannel

1. Added a new method: CalcIndex iPlotChannelCustom

1. Added a new property: ClipToAxes 2. Added a new property: UserCanMoveDataPointsStyle 3. Added a new property: UserCanMoveDataPoints iPlotComponent

1. Added a new method: AnnotationDefaultReference iPlotCustom

1. Added a new property: AnnotationDefaultReferencePositionX 2. Added a new property: AnnotationDefaultReferencePositionY 3. Added a new property: AnnotationDefaultReferenceSizeX 4. Added a new property: AnnotationDefaultReferenceSizeY 5. Added a new method: RefreshLayoutManager iPlotDataCursor

1. Added a new method: GetInterpolatedYValue 2. Added a new property: SnapToDataPoint iPlotLegend

1. Added a new property: LineColumnHeight 2. Added a new property: LineColumnWidth iPlotObject

1. Added a new method: DoEditMenuItemClick 2. Added a new method: HitTest 3. Added a new property: UserCanEdit iPlotTable

1. Added a new property: RowDisplayStartIndex iScopeTimeBase

1. Added a new method: AddSecPerDiv 2. Added a new method: RemoveAllSecPerDiv iXYPlotChannel

1. Added a new property: OPCItem2Name

Additional New Features: General iAngularGauge, iLinearGauge, iLogGauge, iAngularLogGauge, iSlider, iThermometer, iSwitchRotary, and iSwitchSlider controls now show their scales disabled when the Enabled property is set to False.

Plot Control 1) All text based Plot Annotations have been upgraded to support text alignment and text rotation. 2) Improved speed for property and data-file loading. 3) Added all US and International printing paper sizes.

ActiveX and VCL/CLX Version 3.0.4 Service Pack 2

Bug Fixes:

1. Fixed Plot Pack Table bug which would incorrectly size the height of horizontal tables. 2. Fixed Plot Pack axis tracking bug introduced in Version 3.0.2 SP1 which would prevent correct tracking when the tracking style was set to Expand/Collapse. 3. Fixed bug in table sizing if located on top or bottom of the DataView. 4. Fixed bug in the iPlotAxis Zoom-To-Fit feature that was using non-visible points to determine the new min and span. 5. Fixed bug in all components that would prevent a window shutdown while the components were running. 6. Fixed bug in Plot Pack Property editor regarding the addition of labels through the layout manager. The incorrect label would be loaded when selecting "Edit..." through the layout manager. 7. Fixed LoadPropertiesFromFile and Save PropertiesFromFile where the RingBuffer property would be 0 regardless of your current setting or the setting stored from the SavePropertiesFromFile method when loading the properties when the channel is set to the FullFeature data style. 8. Fixed bug in iEdit, iAnalogOutput, and iIntegerOutput components that caused the text displayed to be truncated when the text was wider than the width of the control. You would be unable to scroll back to edit the text that was not in view. 9. Fixed DataView gridline bug when using non solid lines. Colored lines would sometimes be drawn between the dots or dashes. 10. Fixed Plot Pack runtime property editor bug where radio group titles would not be translated. 11. Fixed bug with ActiveX property editors under the Citect SCADA development environment where the property editor would lockup when clicking on buttons when there was a list box on the same property editor tab. 12. Fixed ActiveX bug where SetWindowPos() call in Visual C++ would generate an exception. 13. Fixed bug in iObjectCanvas where overlapped objects would be misidentified in the OnClickObject event. The lowest ZOrder object would be identified in the OnClickObject event as being clicked, even though an object with a higher ZOrder that overlapped the object. 14. Fixed Plot Pack Data Cursor bug where a hidden hint would still be "clickable", interfering with selection of the DataCursor line.

New Features:

1. Upgraded Plot Component Compact Interval Data Style to support Ring Buffer. 2. Upgraded Plot Component Compact Interval Data Style to support relocating the origin X-Value of the Data Set by modifying the DataX[0] property of the channel. The DataX value of the first data point (i.e. DataX[0]) dictates the origin of the data set for that channel when using the Compact Interval Data Style, since the interval between each data point is fixed to save memory space. Modifying DataX[0], however, doesn't change the fixed interval set after adding the first two data points. To change the interval, clear the channel and re-add all channel data. 3. Improved Plot Pack draw performance for multiple Y-Axes. 4. Added DataFile Column Separator property to allow for text tabs or commas. 5. Added DataFile Format property to allow for Text or Compact Interval (optimized for the Compact Interval Data Type) formatted files. 6. Added OnResize to the TiPlot and TiXYPlot VCL Event Handlers. 7. Added A3, A4, and A5 paper size support to the built-in Plot pack printing feature. 8. Added ability to change Compact Interval start reference after data has already been added to the channel by setting the X-Value of the first data point. 9. Added ChannelNameColorStyle to the iPlotLegend object. Allows the channel name text that is displayed to track other object colors. Possible values are Font, Channel Color, X-Axis Font Color, or Y-Axis Font Color. 10. Added PointerColor and PointerHighlightColor properties to the iSwitchRotary and the iSwitchSlider components. 11. Added GetPointersVisible and SetPointersVisible to all Gauge Components. 12. Added to the Plot components two new properties: LastPropertiesFileName, LastDataFileName and three additional events: OnAfterSaveProperties, OnAfterLoadData, and OnAfterSaveData. Using these new three events in addition to the existing event: OnAfterLoadProperties, you can be notified when the user has saved/loaded data or property files. The two new properties are useful for determining the filename used during the load or save operation. 13. Updated iImageDisplay to not draw the image as "disabled" when the Enabled property is set to FALSE. 14. Updated iPlotAxis to include a new ZoomToFitFast method, and a new TrackingStyle called ExpandCollapseFast. The older ZoomToFit and ExpandCollapse features would iterate through the entire data set to find the high and low point of the data when scaling. The new Fast methods use the RunningXMax, RunningXMin, RunningYMin, and/or RunningYMin methods of the channel object which cache the historical Max/Min values, thereby greatly speeding up the ZoomToFit and ExpandCollapse features. Warning: do not use this new feature if you modify historical data unless you manually call the appropriate GetXMax/GetXMin or GetYMax/GetYMin functions to force an update of the corresponding running totals. (e.g. if you modify the Y-value of a previous data point, you must call GetYMax and GetYMin to update the "RunningYMax" and "RunningYMin" for the new "Fast" features to work correctly. ). 15. Updated iPlotLegend with two new properties: ViewStartIndex and ViewStopIndex. These properties are useful when needing to know the topmost and bottommost indexes of the visible channels in the Legend. For example, if you have 100 channels in the chart, and the Legend is currently showing channel 52-60, then ViewStartIndex=51 and ViewStopIndex=59. 16. Added Transparent and Stretch properties and features to the iImageDisplay component. 17. Added Stretch property to iRotationDisplay component. 18. Upgraded iSwitchPanel AutoSize to take the height into consideration in addition to the width when adjusting the KnobRadius property. 19. Added OnClickPointer event hander to the iAngularGauge, iLinearGauge, iAngularLogGauge, and iLogGauge components. (Not currently supported under CLX). 20. Added PointerBitmap property and ispsBitmap enumeration to the PointerStyle property of the iSlider and iSwitchSlider components. 21. Added SetValueNoEvent method, ValueMax property, and ValueMin property to the iIntegerOutput component. 22. Updated Precision property on the iAnalogDisplay and iAnalogOutput components to support -1 to indicate the "G" formatting style. The "G" formatting style will format numbers as the shortest possible string. It will display the value either as a whole number or exponent, whichever is shortest. If the precision is unknown at design-time this will ensure that all digits to the right of the decimal place are shown. 23. Added OnAfterOpenEditor and OnAfterCloseEditor event handlers to the Plot Pack components to notify when the run-time property editor is opened and closed. 24. Added an Arc object to the iObjectCanvas component. The following methods have been added to support this new object type... AddArc SetObjectAngles SetObjectStartAngle SetObjectStopAngle GetObjectStartAngle GetObjectStopAngle 25. Plot Pack iPlotChannel object was updated to support a new interpolation style: Differential Terminated. This style is the same as the Differential interpolation style, except there is no line drawn from the last data point out to infinity. 26. Added RotationDesiredSpacing property to the iSwitchRotary component. Supports 22.5, 45, or 90 degree specification. The desired portion means that it will only use the angle specified if the "number of positions" * "desired angle" <= "360 degrees". 27. Added Candlestick option to the iPlot Channel High-Low feature. Below is a list of new properties added to support this new feature... HighLowStyle HighLowShadowColor HighLowBullishColor HighLowBearishColor 28. Upgraded iCompass and iDualCompass to allow changing of the direction captions. Added the following properties... NCaption SCaption ECaption WCaption NECaption NWCaption SECaption SWCaption 29. Upgraded Plot Pack Axes labeling to support rotated text. Can be set to 0, 90, 180, and 270 degree rotation. 30. Upgraded iObjectCanvas component to support polygons. Below are the following methods added to support this feature... AddPolygon ObjectAddPolyPoint ObjectClearPolyPoints 31. Added Print Preview support to the Plot Pack printing feature. 32. Added Plot Pack OnBeforeDataCursorUpdate event. Allows customization of formatting or other customization before the actual strings are generated for display on the cursor. 33. Added PNG image support to all components: SaveImageToPNG and GetBytesPNG methods. Plot pack save dialog updated to support PNG. 34. Added JPEG image support to CLX components under Linux. 35. Added Plot Pack printing support for CLX components under Linux. 36. Added new iOPCManager non-visual component for use in conjunction with our OPC-enabled components. Allows combining of OPC connections to servers through a common connection. Previously, each individual component would make its own connection to the OPC server and its own group. The new iOPCManager along with the new iOPC.dll improves performance by utilizing Shared Server Connections and now adds support fro adding groups that can be shared among OPC Items of our components. The iOPCManager component has a visual property editor for adding/removing groups as well as properties and methods that can be used to modify groups at runtime. Two new events, OnAfterGroupUpdate and OnBeforeGroupUpdate provide notification of updates that occur among the OPC Items utilizing a particular group. 37. Added multi-line support to the Plot Pack Data Cursor Hint. Use chr(13) for manual line breaks. 38. Added the following to OPCItems... ActivateSuspend method GroupName property 39. Added OPC DeleteItem method for deleting individual OPC Items at runtime. 40. Added new TextBox style (differs from TextRectangle) to Plot Pack annotations. 41. Added 24 new event handlers to plot pack. MouseDown MouseMove MouseUp ...events for all 8 Plot Objects: Channels, X-Axes, Y-Axes, Tables, DataView, DataCursors, Legend, and Annotations. 42. Added transparency support to Tank. 43. Added three new styles to Tank: Cutout2, Large Window, and Custom. 44. Tank Custom cutout style uses two new methods: CustomPointsAdd, CustomPointsClear. Use CustomPointsAdd to add at least three points to make a closed polygon. Added points are in the range of 0-100, representing percentage (%) of the width and height of the component. It is recommended to restrict points between 10-90% when the tank is shown. 45. Added vertical and horizontal orientation to Tank. 46. Added scale reverse to Tank. 47. Added OPCActivateSuspend, OPCActive, OPCUpdateSuspend, and OPCUpdateResume to the iPlot and iXYPlot component Channel objects. 48. Added HitTest method to all Plot Pack sub-objects (channel, y-axis, x-axis, annotation, label, etc.). Allows you to test each sub-object and determine if an x/y coordinate exists within the sub-object or not. 49. Added Theme support to the CLX version of the components under both Windows and Linux.

ActiveX and VCL/CLX Version 3.0.2 Service Pack 1

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. Help file corrections. Fixed VCL/CLX help file integration issue with Delphi and C++ Builder where event help topics would not come up properly in the object inspector when you press F1. 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 miss positioned, extra label object than expected. 6. Fixed memory leak in Plot Pack components which would occur only when the component was destroyed. 7. Fixed border style bug in iPanel component. The border style property would not properly stream this style property. 8. Fixed font size issues with the CLX component property editors under Linux.

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. 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. 20. Updated help files for all new properties, methods, and events. 21. Improved HTML help file and Linux HTML help file by removing non- converted "See Also" links and removing unnecessary double-line breaks.

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 Instrumentation 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 Edition) 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 .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 Instrumentation Theme Panel component in the Instrumentation 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 Instrumentation 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 .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 Instrumentation 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 GetBytesJPEG 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 applications' 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 Data, Axis, 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 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 iModeComboBox. 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 iSwitchLed 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.Instrumentation.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 Instrumentation 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 though 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:

o iLabel Component

Professional Pack:

o iSpectrumDisplay Component o iPhonePad Component o iDualCompass Component o iSlidingScale Component o iSlidingCompass Component o iThreadTimers Component

ActiveX and VCL Version 1.1.6 (Service Pack 7)

1. Fixed iAngularGauge and iAngularLogGauge SectionColor fill bug. 2. Fixed Multiple Instrumentation 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 Simplicity. 24. Fixed recursion problem in Simplicity 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 accommodate 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 Segments components. 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

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.

Installation ActiveX Users

1. If you are upgrading from version 2.x, it is recommended to first install Version 2.x SP7 (or higher), 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 Instrumentation Software are available for download from our website at http://www.Instrumentation.com/download.

VCL Users

1. If you are upgrading from version 2.x, it is recommended to first install Version 2.x SP7 (or higher), 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 or C++ Builder 6.

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. All components are automatically installed into the IDE. Installation is Complete! 5. Help Files are in the form of a local website, located inside the Instrumentation Components folder you chose during installation. Use your favorite web browser to view them. 6. If you have any bug reports or problems, please contact Instrumentation Support directly or fill out a bug report online.

OPC

OPC deployment licensing is now enforced by our installer. If you previously purchased an OPC Deployment license, and have not entered the OPC Deployment License into the keycode manager during installation, you will need to do the following to properly install the OPC Features...

1. Re-run our installer from the Add/Remove Control Panel 2. Select "Modify", click the NEXT button, and then enter your OPC Distribution keycode where requested. 3. Continue and complete the installation, asking questions as needed. 4. You do not have to re-compile your Delphi or C++ Builder packages to install OPC. If you did not purchase an OPC Deployment license and are using the OPC features of our components, you will be able to use the OPC features in "evaluation-mode" which will allow you 10 minutes of OPC communication per run of your application. This will be indicated by the appearance of "Evaluation" in the OPC property page tab of our component custom property editors.

A new "iOPC.dll" file will be installed in your Window's System32 folder. This file contains the OPC features of our components. You can determine if the iOPC.dll is the Full or Evaluation version by right-clicking and viewing the Version Properties of the file. The "Description" will contain the words "Instrumentation OPC DLL (Evaluation)" if you are using the Evaluation Version. This file must be distributed along with your application and any required OPC core dll's.

Note: Version Service Pack 3 and above must use the iOPC2.dll in order for the controls to properly use the OPC connectivity features of our controls.

Please refer to the OPC Install Notes located in the Instrumentation Product Directory. An "OPC Distributables" folder has been provided in the Instrumentation Product Directory with all files that will need to be distributed to your clients. Also see the OPC Foundation's website for official distribution packages for the required OPC core files.

Technical Support

For support, please contact us at [email protected] or visit our web site at http://www.softwaretoolbox for telephone and other support options.