| Release: | .Net WinForms V3 SP4 Beta7 |
| Release Date: | 25 April 2008 |
This document is organized into the following sections...
The .Net WinForm V3 SP4 Beta7 is now available for download.
For installer or component related questions or bug reports, please submit a copy to support@iocomp.com or visit our website at http://www.iocomp.com/Support/BugReport.aspx.
Special Note: Previous V3 SP4 Beta installers incorrectly placed the assemblies in "3.08" folder below the "C:\Program Files\Iocomp\Product\.Net\WinForms\Instrumentation" and or the "C:\Program Files\Iocomp\Product\.Net\WinForms2005\Instrumentation" path. The actual sub-path should be "3.07" and has been corrected in this installer update. Delete the "3.08" path after running this installer to eliminated any potential for confusion.
Due to technical issues with the new layout manager code, the beta has been extended to beta 12. The new performance cache enhancements for the layout manager have been rewritten due to conflicts with the new dock style features. This is the last planned update for the SP3 WinForms (WF) version.
This is the last planned update for the SP3 WinForms (WF) version. The release should occur on 27 Oct. 2006 after the help topics are updated. The Compact Framework (CF) beta version will roll-over to the SP4 Beta before being released.
Added a SetSpan method with Hours, Minutes, Seconds, and Millisecond parameters to the ScaleRange and PlotAxis objects. Allows for ease in setting the Span in date-time units. Before, you would either need to use the built-in data-time calculator in the property editor or calculate these values in the Microsoft's DateTime format through code.
Added Compact Framework Beta for VS2003 and VS2005 to the installer. Sign-up for the CF Beta Newsgroup to get additional details, notes, and examples. Note : This beta version expires after 31 October 2006 and you will need to get additional updates with later expiration dates if you plan to continue using it after this expiration date.
The PlotAxis Zoom(Rectangle r) and Zoom(double factor) methods have been changed to public/virtual for overriding in your own descendents.
The PlotDataView DisableAllTracking method has been changed to protected/virtual for overriding in your own descendents.
Add the SaveDialogSetup event to the PlotToolBarAdapter class. The event passes a pointer to the SaveFileDialog instance in the event arguments. This event is called just after being initialized with the Iocomp defaults and just before the dialog is shown to the user. Use this event to customize the look of the save file dialog before it is presented to the user.
Added save-data and load-data buttons to the plot control property editor "File I/O" tab. They allow you to save or load data for all channels at runtime.
Upgraded the .Net installer to integrate the help into Borland's BDS2005 and BDS2006 development environment.
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.
Added the AddNullDataSet method to the Plot control main interface. Used for adding a single set of null data-points to all channels.
Added ControlKeyToggleEnabled property to the Axis object. Allows for disabling of the Ctrl-Key toggle for switching between the scroll and zoom modes.
Added CanFocus property to all plot sub-objects. Can be used to prevent a plot sub-object from taking the keyboard focus. If the Enabled property is still set to True, the plot sub-object will still respond to mouse events.
Added IgnoreDuplicateDecimalCharacter property to the EditDouble Control. When set to True, all duplicate decimal separator character key presses are ignored after the first decimal separator character is entered.
The PlotMarker Draw method has now been made protected and virtual for overriding in your own descendents for draw customization.
Upgrade channel statistics to support empties and nulls.
Added ShareDataCollection method, UnShareDataCollection method, and DataCollection property to all channels. By calling the ShareDataCollection method on a specific channel, you can have it use the DataCollection of another channel to help reduce the memory footprint of your application. Typically, this would be used when you have multiple plots that are on different tabs, forms, or etc which need to display the exact same data. When adding data to the channel that is being shared, the tracking for the channel will be called if enabled and the plot control will automatically be repainted. This is not the case for the channel(s) sharing the DataCollection, you may need to update the axis tracking if needed and call the invalidate method if the channel(s) are assigned to different plot controls.
Modified the TextFormatting property on the ScaleDisplay class to allow substitution of custom TextFormating classes. The TextFormatting property is of type TextFormatDoubleAll. The TextFormatDoubleAll class was previous marked as sealed and this restriction has been removed so you can create your own descendents. In your new TextFormatDoubleAll class descendents, override the GetText method to provide your own custom tick text formatting.
Upgraded the channel mouse hit testing code to use custom marker attribute size on channels that support it.
Added WidthStyle property to the PlotChannelBar. Allows you to specify if the Width property is in Value, Percent, or Pixel units.
Added Fill option to the plot Trace channel type.
Added support for split Linear &
Log10 scales to all controls that support scales. This feature would
typically be used on the Plot
control Y-Axis. To use this feature, set the Axis ScaleRange.ScaleType
property to SplitLinearLog10. Use the SplitStart property to
indicate at what value the scale is split between Linear and Log10. Use the
SplitPercent property to control what portion of the scale
is used for the Linear portion. When this feature is enabled, the user is
prevented from scrolling or zooming of the axis. Currently,
the plot data-cursors does not support reading data-points values that are
on a SplitLinearLog10 Y-Axis.
Major upgrade to the plot layout
code to allow for stacking data-views in any combination. For example,
allows you to have a 3x3
grid of data-views. You were previously limited to 1 data-view on the left
and right and an unlimited number in the center. You can now
have an unlimited number of the left, right, and vertically. Warning!!! This
upgrade to the layout code may affect your existing layout
if you had multiple data-views. You may need to reposition your layout
objects using the visual layout manager. If you are performing
layout through code, use the new StackingGroupIndex property on the
Data-View object to indicate its order from left-to-right across
the screen (Lower numbers to the left and higher numbers to the right).
The plot layout code now supports hiding of the axes using the Visible property and still using the axes as a reference for plotting channel data. Previously, if the axes was hidden, the actual coordinates of the axes was not calculated and could not be used as a reference for drawing channel data.
The plot Trace & TraceXY channel
types has a new property called DrawCustomDataPointAttributes. This property
is set to False by
default to speed up the drawing of the channel data and to maintain
high-speed performance when adding data at a high data-rate. Only
by setting this property to True will the channel draw custom attributes
applied to individual data-points. In the previous beta
update, any custom data-point attributes where drawn. With this new property
being default to False, custom data-point attributes will
not be shown until this property is set to True.
Added overloads of the ScaleDisplay AddTickMajor and AddTickMid methods that allow you to specify the text displayed by the tick when adding custom ticks. The previous non-overloaded methods only allowed you to specify the positioning Value property and the Text property would automatically be set for you using the current TextFormatting settings. You did have the option of using the returned tick pointer and setting the Text property afterwards, but these new overloads allow you to accomplish the same thing with one line of code.
Many new internal upgrades to improve the performance of the plot control when adding large number of data-points and also displaying them in the data-view.
Added Data-Point moving capability to the BiFill, Differential, Digital, Fill, and SweepInterval channels (Previously added to the Trace and TraceXY channels). Use the new UserCanMoveDataPoints property to enable or disable data-point moving. The channel must also be enabled, markers shown, and the Toolbar must be in the select mode (Markers are required to be shown to provide a hit target for the user to click).
Added DataPointMoved, DataPointClick, and DataPointDoubleClick events to all channels that support data-point moving (Note: UserCanMoveDataPoints does not need to be set to True for the DataPointClick and DataPointDoubleClick events to fire. But the channel must also be enabled, markers shown, and the Toolbar must be in the select mode)
Added DataPointMoveStyle to all channels that support data-point moving. Allows you to specify if the end-user can drag the data-point in the X, Y, or both dimensions.
Added the CursorSelectMode, CursorZoomBoxMode, and CursorDataCursorMode properties to allow customization of the mouse cursor shown on the data-view when in the respective mode.
Added ImageListCommon property to the main interface of the plot control. This image-list can be used for loading images that can be displayed in the plot Labels and Tables. The Label and TableCell object now have a ImageList, ImageIndex and ImageTransparent property. If the ImageList property is not set explicitly, then the ImageIndex will specify the index of the image to use from the image-list pointed to by the ImageListCommon property on the main interface of the plot control. You can change the ImageList property to point to an image-list other than the one pointed to by the ImageListCommon property.
Added UserCanMove option to all plot Limit objects. The limit must be enabled and the Toolbar must be in the select mode for the user to be able to move the limit.
Added multiple page printing
support to the plot control with the addition of the PrintPage event on the
PlotPrintAdapter. Attach to the event whenever you want to support printing
multiple pages. The event arguments has a PrintDocument, PageNumber, and
HasMorePages property. Use PageNumber to determine which page is going to be
rendered next. Set HasMorePages to True if you wish to print additional
pages. Use the PrintDocument property to make and changes to the printer
settings before the page is printed. Each time this event is fired, you can
make any changes to the plot control to customize the look of the page and
also set the Min and Span of the X-Axis to control which portion of the plot
data is printed on this page. If you wish to make settings changes that will
effect all pages, use the PrintBefore event on the PlotPrintAdapter. Use the
PrintAfter event on the PlotPrintAdapter to restore the plot back to the
previous configuration for screen display. For example, if the screen
display has a black background color and white foreground color and you wish
to invert these colors when printing, set the BackColor to Color.White and
the ForeColor to Color.White in the PrintBefore event handler. Then set
these colors back to their original value in the PrintAfter event handler to
restore the plot control for screen display.
Added MouseLeft, MouseRight, MouseMove, MouseUp, Click, DoubleClick, MouseWheel, KeyDown, KeyUp, KeyPress, LostFocus, GotFocus to SubClassBase which is the ancestor of all Iocomp sub-class objects. Even though these events are present on all Iocomp sub-objects, not all descendents implement them. In general, all plot sub-objects and classes like MatrixButton, MatrixLed, and Gauge-Pointers, and etc implement these events because they allow user input interaction.
Upgraded the MatrixButton (Includes Phone-Pad Buttons), MatrixLed collection editors to provide a more detailed description when making a selecting in list box. The description now includes the item type, Row & Col, and Text settings.
Added UserCanMoveDataPoints property to the Trace and TraceXY channel types. When this property is set to True, the channel is Enabled, and the Toolbar is in Select mode, the end-user can move data-points. For the Trace channel type, an individual data-point can not be moved before a preceding data-point or past a succeeding data-point. The TraceXY channel type does not have any restrictions on moving a data-point past another data-point. In the next couple of beta updates, more channel types with have this feature added.
Added BlinkerEnabled and BlinkerRate properties to the Led and LedArrow controls. When BlinkerEnabled is set to True, the LED's Value property will toggle at the BlinkerRate property value and flash the LED.
Added AutoUpdate property to the SevenSegmentClock control. When set to True, the control will updates its' display twice a second to the system clock value.
Added Update features to all controls. All controls now have a BeginUpdate and EndUpdate methods for manual control of painting. Also added UpdateFrameRate property to allow for automatic control of the Frame-Rate at which controls are repainted. Normally, as control attributes are changed or data is added, a repaint request is made. If you make several thousand changes per second, the control will attempt to repaint several thousand times a second. With the UpdateFrameRate property, you can specify the maximum number of times the control is repainted per second. The default and maximum value of the UpdateFrameRate property is set to 50 which is the maximum rate the human eye/brain can detect. The UpdateFrameRate property is of type double so you can specify frame rates less than 1. When UpdateFrameRate is set to 0.2, a new frame will be painted every 5 seconds (1/0.2).
Upgraded the PlotChannelTrace and PlotChannelTraceXY to support individual control of trace and marker attributes. Each data-point now has a Trace and Marker property. To change the attributes of a data-point trace-line, create a new PlotPen object and assign it to the Trace property of the data-point. You can then modify the data-point Trace sub-properties to change the attributes of specific trace-line. To change the attributes of a data-point marker, create a new PlotMarker object and assign it to the Marker property of the data-point. You can then modify the data-point Marker sub-properties to change the attributes of the specific marker. If you do not create a new object for the data-point Trace or Marker property and you modify their sub-properties, you will be modifying the attributes for all data-points that do not have individual Trace or Marker objects.
Added updates to code base to support compact framework support.
All Scale Components (Gauge and Plot controls)
Added ScaleType property to all ScaleRange classes. Supports Linear or Log10. Default value is Linear.
PLOT PACK
1) Added TextBox annotation. Full class name is PlotAnnotationTextBox. Similar to the Text annotation and adds a box around the text.
2) Added CustomizeHintText event to all plot Data-Cursors. Allows for customization of the hint text.
3) Added Axes control properties to the Data-View object. Supports the following properties....
AxesControlEnabled
AxesControlMouseStyle
AxesControlWheelStyle
AxesControlKeyboardStyle
Allows independent control of the axes based on the type of input. Can be set to none, XAxes, YAxes, or Both.
PLOT PACK - CHANNELS
1) Added FastDraw to the PlotChannelSweepInterval channel.
2) Added YMaxScale and YMinScale properties to the PlotChannelBase class.
PLOT PACK - DATAVIEWS
1) Added the BeforeZoomBox event to the DataView: This allows you to intercept zoom box events where you can cancel and
perform any operations or implement any features.
PLOT PACK - LIMITS
1) Added new PlotLimitPolyBand.
PLOT PACK - DATACURSORS
1) Added the MasterControlEnabled property to all plot data-cursors. This allows the data-cursors to stay synchronized with each other.
PLOT PACK - MISC
1) Added the GetInternalMouseEventArgs method to the main interface. This method is used for converting standard mouse event args to internal
coordinates used in the Plot control. Example: All pixel coordinates (PixelMin, PixelMax, etc.) are offset due to the Plot control's border and
outer margins. The GetInternalMouseEventArgs removes the offsets.
Interface Changes:
PLOT PACK - ALL CHANNELS
Added YMinScale and YMaxScale for determining the max position of the data shown on the scale. Currently useful for the Digital channels where the data does not match the scale display values.
PLOT PACK - PlotChannelImage
1) Updated to support decreasing of the ImageYSamples while preserving the last portion of the previous data.
2) Removed Data-Point storage capability to speed up performance.
PLOT PACK - PlotChannelDifferential
1) Added Trace Fast Draw.
MISC.
None.
Interface Changes:
PLOT PACK - ALL CHANNELS
1) Added RemoveAt and RemoveRange to all PlotChannel classes. Allows removal of a single data point or a range of data points.
PLOT PACK - PlotChannelImage
1) Added support to the PlotChannelImage for custom streaming. Allows streaming of channel’s custom data..
2) Renamed all properties and methods on PlotChannelImage where the property name had the word Pixel in it and replaced Pixel with Samples.
PLOT PACK - MISC.
1) Added LoadDataFromStream to the Plot Interface and the PlotChannelBase interface (all channels)
MISC.
1) Upgraded the ScaleRange class which is used with all components with scales (including the plot axes) to now support limits.
Limits allow you to limit the min and max of the scale and also the min and max of the span.
The limits can be controlled using the following properties:
MinLowerLimitValue
MaxUpperLimitValue
SpanLowerLimitValue
SpanUpperLimitValue
Each property has a corresponding enabled property to switch the limit on or off. This property is called:
MinLowerLimitEnabled
MaxUpperLimitEnabled
SpanLowerLimitEnabled
SpanUpperLimitEnabled
If these limits are not enabled, there are still internal limits. These internal limit values can be read by using the following properties:
MinLowerLimitActual
MaxUpperLimitActual
SpanLowerLimitActual
SpanUpperLimitActual
These properties are read only with the following internal values:
MinLowerLimitActual - 1.0 E+300
MaxUpperLimitActual +1.0 E+300
SpanLowerLimitActual +1.0 E -300 (This must be positive)
SpanUpperLimitActual +1.0 E +300 (This must be positive)
These Actual values will reflect the true limits. Example, if the
MinLowerLimitEnabled is set to true, the Actual will be equal to the Value
property.
If the enable is set to false, the Actual will return to the internal values
stated above.
Interface Changes:
PLOT PACK - FASTDRAW Feature - Channels supporting a Trace
1) Added FastDraw feature to the channels supporting the trace option. This is automatically enabled.
The FastDraw feature dramatically speeds up the drawing of all channels supporting traces.
PLOT PACK - MISC.
1) Added the ClippingStyle property to all plot objects showing up in the data view area. This property has values of DataView and Axes.
When DataView is selected, the objects clipping regions will reference the DataView. When set to Axes, the clipping region will be set to the axes referenced by the object.
Objects incorporating the ClippingStyle property:
DataCursors
Channels
Annotations
Limits
Interface Changes:
INSTRUMENTATION PROFESSIONAL PACK
1) Added a Style property to the Valve control. The Style property can have a Port2 or Port3 style for supporting 2 valve configurations.
PLOT PACK - DATA CURSOR
1) Several updates completed to make the data cursor more user friendly.
2) PlotChannelDigital support. The cursor will now display a true or false for the Y values.
3) The cursor now hides the y pointer line when in the ValueXY or ValueY mode on the PlotChannelDigital (digital channel)
For all other channels, when measuring the ValueY and the channel type being measured is not an XYChannel type,
a vertical x line will be shown displaying the Y value. This Y value is determined by interpolation.
PLOT PACK - MISC.
1) Updated the plot to change the mouse cursor style based on the object it is over and the mode the object is in
Interface Changes:
MISC. - Streaming
1) Added the SavePropertiesToFile method to all controls, collections, and all classes extending from SubClassBase (which is 99% of our classes)
2) Added the LoadPropertiesFromFile method to all controls, collections, and all classes extending from SubClassBase (which is 99% of our classes)
3) Added the SavePropertiesToStream method to all controls, collections, and all classes extending from SubClassBase (which is 99% of our classes)
4) Added the LoadPropertiesFromStream method to all controls, collections, and all classes extending from SubClassBase (which is 99% of our classes).
Interface Changes:
CHANNELS
1) Upgraded Bubble Channel to support non-consecutive data (XY type data). Set the RequireConsecutiveData to False to enable this option.
LEGENDS
1) Added PlotLegendChanneImage to support the PlotChannelImage. Shows a gradient with label based scale to indicate the values represented by the colors shown in the PlotChannelImage.
Interface Changes:
CHANNELS
1) Added PlotChannelTraceImage.
The new Channel type is called PlotChannelTraceImage. It will cache all previously drawn trace lines and markers as long as the display parameters are not changed.
If the display is scrolled, zoomed or resized, the cache will be dumped and redrawn. It is designed to allow the user to scroll or zoom the view if you wish.
The performance is very good while working in cache mode. If the cache needs to be dumped and redrawn due to the user scrolling or zooming, the temporary load on
the processor is not noticeable.
Interface Changes:
CHANNELS
1) Added RingBufferCount property.
Added RingBufferCount property to PlotChannelBase which is the ancestor of all channels. Allows you to specify the size of the ring buffer in data-points.
To disable the ring-buffer feature, set this property to 0. (This property should not be modified on the Sweep-Interval channel type)
TOOLBAR
1) Added code to Print-Preview so if no printers are installed, the user is given the option to install one.
PLOTLIMITS
1) Added HitRegionSize property to the PlotLimitLineX, PlotLimitLineY. The property allows you to adjust the size of the region on both sides of the line.
The region is used for hit testing when the user tries to click on the limit line with the mouse.
DATACURSORS
1) Added HitRegionSize property to the all plot data-cursors. The property allows you to adjust the size of the region on both sides of the pointer lines.
The region is used for hit testing when the user tries to click on the pointer with the mouse.
LEGENDS
1) The Legend has been updated to allow selecting and focusing of channels. The legend will now draw a focus rectangle around the channel if it has the focus.
If you are using a PlotDataCursorChannel and the DataCursor has focus and you click the channel in the legend, the DataCursor will switch to the channel being clicked.
Interface Changes:
For support, please contact us at support@iocomp.com or visit our web site at http://www.iocomp.com/support for telephone and other support options.
Copyright ©1998-2007 Iocomp Software Incorporated. Iocomp and the Iocomp Logo are registered trademarks of Iocomp Software Inc. Borland is a registered trademark of the Borland Corporation. Windows, Microsoft, and ActiveX are registered trademarks of the Microsoft Corporation. All other trademarks are registered by their respective owners.