This interface provides access to the plot series objects.
| Kind | Name | ID | Description |
| IsRecording | 1 | Change TDataForm.IsRecordingSerie[] | |
| IsFunction | 2 | Change TSerie.IsFunction | |
| IsEmpty | 3 | Return TSerie.Empty | |
| ClearSelection | 4 | Invoke TSerie.ClearBlock() | |
| XColumn | 5 | Change TSerie.XColumn | |
| YColumn | 6 | Change TSerie.YColumn | |
| FirstLine | 7 | Change TSerie.FirstLine | |
| LastLine | 8 | Change TSerie.LastLine | |
| Select | 9 | Set serie block (container data range) | |
| XExpression | 10 | Change TSerie.XExpression | |
| YExpression | 11 | Change TSerie.YExpression | |
| Text | 12 | Change TSerie.Text | |
| Container | 13 | Change TSerie.Container | |
| AddPoint | 14 | Add and draw point without plot refresh | |
| GetPoint | 15 | Return X,Y coordinates with all calculations | |
| CopyToClipboard | 101 | Copies serie object to the clipboard | |
| PasteFromClipboard | 102 | Paste serie object from the clipboard | |
| CanPaste | 103 | True if clipboard has serie object | |
| XAxis | 104 | Change X axis (top or bottom) | |
| YAxis | 105 | Change Y axis (left or right) | |
| Min | 106 | Change TSerie.PMin | |
| Max | 107 | Change TSerie.PMax | |
| IsVisible | 108 | Control serie visibility | |
| PointVisible | 109 | Change points visibility | |
| LineVisible | 110 | Change line visibility | |
| PointType | 111 | Change points type | |
| PointSize | 112 | Change point size | |
| LineType | 113 | Change line type | |
| LineWidth | 114 | Change line width | |
| Color | -501 | Change pen color | |
| PointColor | 115 | Change brush color | |
| Document | 116 | Returns owner document object |
| property IsRecording: Boolean |
For DMDocument, this property indicates whether appropriate data window is in the "recording" state, that is, used for recording data from the measurement system (or for another real-time data streaming). Such window has a thick colored frame. Besides, "recording" data window is not only a visual feedback - it doesn't refresh plot when you set Container.Modified=true, and doesn't refresh Series Manager when you set Container.Modified=false (although worksheet updates its size). This feature should be used to eliminate flickers and significantly increase data streaming rates (and reduce CPU load). In addition, value of this property analyzed in the IDMApplication.RecordPoint() method.
For DMSerie, this property reflects the fact that this series is used to display accumulated data. When it is set to True, a little cross is displayed at the last point. Set IsRecording property to indicate that you are adding points into this series.
| property IsFunction: Boolean |
If this property is true, the serie is functional, that is, it can display curve given by symbolic expression rather than numeric data. X and Y expressions depend on "cx" parameter, ranged from Min to Max.
In DM2003, when you set IsRecording=True, XExpression automatically initialized with "cx" value, Min and Max are set to the X axis range, number of points, line and point visibility flags also initialized for compatibility with DM2000.
| r/o property IsEmpty: Boolean |
Read this property to determine whether given serie is empty. Empty series are not displayed. Serie treated as empty if any components of the data range are not defined: for example, X, YColumn is 0 or LastLine is -1.
Use ClearSelection method to make the serie empty.
| function ClearSelection: VOID |
This procedure simply set XCol=YCol=FirstLine=0, LastLine=-1. Serie become "empty" and not displayed.
| property XColumn: Long |
For DMSerie, XColumn is a part of the serie's data range. It must be greater than 1; for functional series, however, it is not used and may be zero.
For DMWorksheet, this property determines what column is treated as "X". Unlike in spreadsheet processors, many operations in DM2003 require a range of lines and position of X and/or Y columns. As well as with UI, you can set these values programmatically.
| property YColumn: Long |
For DMSerie, YColumn is a part of the serie's data range. It must be greater than 1; for functional series, however, it is not used and may be zero.
For DMWorksheet, this property determines what column is treated as "Y". Unlike in spreadsheet processors, many operations in DM2003 require a range of lines and position of X and/or Y columns. As well as with UI, you can set these values programmatically.
| property FirstLine: Long |
This property determines index of the first data element in the DMContainer object associated with given serie. If FirstLine is less than 0 or greater than LastLine, data range of the serie is invalid and serie is not displayed.
For functional series, LastLine-FirstLine residual determines the number of intervals.
| property LastLine: Long |
This property determines index of the last data element in the DMContainer object associated with given serie. If LastLine is less than 0 or less than FirstLine, data range of the serie is invalid and serie is not displayed.
For functional series, LastLine-FirstLine residual determines the number of intervals.
| function Select(XCol, YCol, First, Last): VOID |
For DMNotes object, this method should be used to select text in the editor. SelStart and SelEnd parameters are first and last character positions.
For DMPlot object, Select() changes numeric (double precision) coordinates of the plot selection area. This area may be visualized using SelectionVisible property and affects on some plot editing commands.
For DMWorksheet, this method defines integer coordinates of the worksheet selection. Left and Right ranges are (1..26), Top and Bottom are (0..Container.ItemCount-1).
For DMSerie, Select() has almost the same meaning as for DMWorksheet. Columns are ranged from 1 to 26, lines - from 0 to Container.ItemCount-1. However, XCol and YCol must represent valid data, that is, all items in the selected data range must have appropriate number of columns.
For DMLabel, this method allows you programmatically select label object. Notice that Select() has no effect until IDMPlot2.MouseMode<>pmmLabelEdit.
| property XExpression: BSTR |
Expressions allows you to transform your data "on-fly", and are of the most prominent features of DM2003 graphic engine. Besides, expressions are used in so-called "functional", or parameterized, series. See details about expression syntax and allowed arguments and function names.
| property YExpression: BSTR |
Expressions allows you to transform your data "on-fly", and are of the most prominent features of DM2003 graphic engine. Besides, expressions are used in so-called "functional", or parameterized, series. See details about expression syntax and allowed arguments and function names.
| property Text: BSTR |
For DMForms ActiveX controls (DMComboBox, DMExpressionComboBox, DMListBox, DMFloatEdit, DMSpinEdit) this property changes the text in the appropriate control.
For collection objects (DMListItems, DMStrings), this property represents the contents of the collection as a single block of text. Lines are separated by standard CRLF characters.
For DMNotes, this property also operates with the editor's data as a whole.
For DMSerie and DMLabel objects, Text is just a label.
For device driver ActiveX controls (HP4191X, B740X and E712X) this property should be used to read and write data from/to the device.
| property Container: IDispatch |
For DMDocument and DMSerie objects, Container property returns reference to the associated DMContainer object. Notice that for DMSerie object, this property is read/write, that is, you can assign to it container of any document.
For DMDigitizer, this property returns reference to the DMDigitizerContainer object, which is used only to store points coordinates.
| function CopyToClipboard: VOID |
For DMNotes, this method copies selected text on the clipboard as in any text editor.
For DMPlot, CopyToClipboard has a parameters. Mode parameter determine what data will be copied; possible values listed in the PlotCopyModes enumeration. UseTabs parameter defines what character will be used as separator between values: some programs can correctly paste values only if they are separated by tabstop character. Keep in mind that CopyToClipboard acts only on the data in the current plot serie, and only points whose coordinates are within the selection area are copied. If plot selection is not visible, all points or data elements are copied.
For both DMSerie and DMLabel, properties of the object are copied in the special binary format.
For DMWorksheet, it copies selected worksheet cells to the clipboard as a simple text block. UseTabs parameter also defines what character will be used as separator between values. It also puts selection data range as a serie object.
You can use system Clipboard Viewer utility to investigate what data formats are used at every case.
| function PasteFromClipboard(DataOnly): VOID |
For DMDigitizer, this method inserts into the digitizer control the picture from the clipboard.
For DMNotes, PasteFromClipboard operates like in any text editor.
For DMSerie, PasteFromClipboard has a parameter. If DataOnly=True, visual attributes like colors, point size etc. are not assigned. Keep in mind that this method can correctly paste only series copied from the same instance of DM, because it performs search to assign Container.
For DMLabel, this method is just a pair for CopyToClipboard.
For DMPlot, PasteFromClipboard has Mode parameter that determines what data will be pasted; possible values defined in the PlotCopyModes enumeration. Certainly, only series and labels (or both) may be pasted; new objects are created and initialized by data from the clipboard.
For DMWorksheet, this method also has a parameters. Text in the clipboard must contain lines of values separated by spaces, commas or tabstops. Data is pasted from topleft selected cell. If InsertLines is true, new lines will be added, else existing lines will be modified according to second parameter. If Overwrite mode specified, cell contents are replaced else data from clipboard will be inserted at selected position.
For all objects, this method does nothing if there's no suitable data on the clipboard. Use CanPaste method to determine whether clipboard has appropriate data formats.
| function CanPaste: Boolean |
CanPaste method returns True if clipboard has valid data for PasteFromClipboard method. Use it to monitor controls associated with "Paste" command.
| property XAxis: IDispatch |
For DMPlot, XAxis returns reference to the DMAxis object that represents bottom plot axis.
For DMSerie and DMLabel, XAxis property returns reference to the DMAxis object and allows you to change horizontal axis associated with given label or series (which is used to introduce coordinate system for rendering series points or label object).
dim Plt set Plt=Server.ActiveDocument.Plot Plt.CurrentSerie.XAxis=Plt.XAxis2 Plt.Labels(0).XAxis=Plt.XAxis2
| property YAxis: IDispatch |
For DMPlot, YAxis returns reference to the DMAxis object that represents left plot axis.
For DMSerie and DMLabel, YAxis property returns reference to the DMAxis object and allows you to change vertical axis associated with given label or series (which is used to introduce coordinate system for rendering series points or label object).
dim Plt set Plt=Server.ActiveDocument.Plot Plt.CurrentSerie.YAxis=Plt.YAxis2 Plt.Labels(0).YAxis=Plt.YAxis2
| property Min: Double |
For DMAxis, Min define minimal value of the axis range. Note: if you want to fix axis range you have to clear AutoScale flag. Also keep in mind that in DM2003 Min may be greater than Max.
For DMSerie, this property allows you to change minimal limit of the parameter ("cx") for parameterized (or functional) series.
For DMSpinEdit and DMFloatEdit ActiveX controls, it defines minimal possible value of the Value property.
| property Max: Double |
For DMAxis, Max defines maximal value of the axis range. Note: if you want to fix axis range you have to clear AutoScale flag. Also keep in mind that in DM2003 Min may be greater than Max.
For DMSerie, this property allows you to change maximal limit of the parameter ("cx") for parameterized (or functional) series.
For DMSpinEdit and DMFloatEdit ActiveX controls, it defines maximal possible value of the Value property.
| property IsVisible: Boolean |
IsVisible property determines whether appropriate object is visible on the screen. Note that for ActiveX controls embedded in the HTML page, you can also change Object.style.visibility property. Some controls like DMClientSocket, DMIEEE488Port and DMComPort are invisible by design and don't implement this property.
| property PointType: User_Defined |
This property determines point shape. Possible values listed in the PlotPointType enumeration.
| property LineType: User_Defined |
This property determines line type. Possible values listed in the PlotLineType enumeration.
| property Color: User_Defined |
This property should be used to change color of the selected object.
| r/o property Document: IDispatch |
Document property returns DMDocument object which is an owner of the given object. So that, you don't need to cycle through the object collections to determine the object's owner. Keep in mind that in DM, VCL objects may be destroyed while appropriate COM objects still alive since their lifecycle is governed by reference counting mechanism. Such COM objects with killed VCL owner become a "zombie" - they have no actual data, their methods do nothing and properties return empty data.
sub TestSerie
dim Serie
if Server.ActiveDocument is Nothing then
MsgBox "NULL document"
else
set Serie=Server.ActiveDocument.Plot.CurrentSerie
MsgBox Serie.Document.WindowCaption
end if
end sub
sub TestAxis
dim Axis
set Axis=Server.ActiveDocument.Plot.XAxis2
MsgBox Axis.Document.WindowCaption
end sub
sub TestContainer
dim Container
set Container=Server.ActiveDocument.Container
MsgBox Container.Document.WindowCaption
end sub
sub TestPlot
dim Plot
set Plot=Server.ActiveDocument.Plot
MsgBox Plot.Document.WindowCaption
end sub
sub TestWorksheet
dim Worksheet
set Worksheet=Server.ActiveDocument.Worksheet
MsgBox Worksheet.Document.WindowCaption
end sub
dim Worksheet1
set Worksheet1=Server.ActiveDocument.Worksheet
sub TestWorksheet1
MsgBox Worksheet1.Document.WindowCaption
end sub
dim Serie1
set Serie1=Server.ActiveDocument.Plot.CurrentSerie
sub TestSerie1
if Serie1.Document is Nothing then
MsgBox "NULL document"
else
MsgBox Serie1.Document.WindowCaption
end if
end sub