Macro commands may be used either in macros or by sending the commands to DPlot via dynamic data exchange (DDE). Some commands are valid only in macros (noted by Macros Only). Commands sent to DPlot via DDE must be enclosed by square brackets [ ]. Macro commands should not include the brackets.
Command parameters shown in the descriptions below are placeholders for the actual values. Command parameters are either numeric values, equations that evaluate to numbers, or character strings. Character string parameters are always bound by double quotation marks. Equations must be preceded by an equals sign (=).
The pipe symbol (|) in the command syntax indicates that a parameter is optional, and should not be included in your macro unless otherwise noted.
All indices into arrays are 1-based, e.g. Curve1=1 refers to the first curve in a plot.
A 0x prefix for numbers in the descriptions below indicates hexadecimal notation; e.g. 0x0010 = 16.
JR/Viewer indicates that the command is supported by DPlot Jr or DPlot Viewer.
JR/Viewer indicates that the command is NOT supported by DPlot Jr or DPlot Viewer.
[MoveCurves("destination",index,move)] |
JR Viewer |
Moves (move=1) or copies (move=0) the index'th curve (or all curves for index=-1) from the reference document to the document with caption "destination" or, if the DocNum form is used, to the document with index DocNum. If destination is blank (or DocNum=0), the curve or curves are placed in a new document.
NOTE: For this command to work as expected with existing destination documents and the “destination” form, the destination document's caption must be known. DPlot will always generate a unique document caption, regardless of the use of the Caption command. For example, if your application uses the Caption command on two separate documents with the name set to "My New Plot" in both cases, DPlot will name the second document "My New Plot1". You can poll DPlot for a list of all document captions with this sequence of commands (Visual Basic):
Text1.LinkTopic = "DPlot|System"
Text1.LinkMode = 2
Text1.LinkItem = "Topics"
Text1.LinkRequest
Text1.LinkMode = 0
The Text1 text box will then be filled with a series of null-terminated strings. Two consecutive 0 bytes indicate the end of the string. The first and second strings will always be "XYPlot" and "System". The third and subsequent strings will be the captions of all open document windows. Given the list of all active documents, your application can then generate another caption for a new document that you know with certainty will be unique. You may then use the FileNewEx command to open a new document with that caption.
Alternatively, if the destination document was created via calls to DPLOTLIB functions, then the document index DocNum will have been returned by the function that created the document.
Please note:
Character string arguments require a bit of care, depending on your development environment. Character string arguments in all DPlot commands are always enclosed by double quotation marks. In some environments (Visual Basic and all flavors of C, for example), double quotation marks are also used to delineate all character strings (including the command itself). The following example will always cause a syntax error in Visual Basic:
ret = DPlot_Command(docnum,"[FileOpen("myfile.grf")]")
Instead, use:
ret = DPlot_Command(docnum,"[FileOpen(""myfile.grf"")]")
in C, C++, C# you'd accomplish the same thing with:
ret = DPlot_Command(docnum,"[FileOpen(\"myfile.grf\")]");
If a character string argument is a variable, as in (VB):
Dim arg as string
arg = "myfile.grf"
... then you can build the command in VB as:
ret = DPlot_Command(docnum,"[FileOpen(" & chr$(34) & arg & chr$(34) & ")]")
In all flavors of C, the same can be accomplished with
char arg[256];
char cmd[512];
strcpy(arg,"myfile.grf");
sprintf(cmd,"[FileOpen(\"%s\")]",arg);
ret = DPlot_Command(docnum,cmd);
This does not apply to the DPlot macro editor, in which each line is by definition a character string and does not require delineators, nor to FORTRAN and possibly other languages, in which the delineator for character strings is a single quote, e.g. '[FileOpen("...")]'
To embed a double quotation mark within a character string which is itself delineated by double quotation marks, use the Symbol font equivalent instead. For example, "Radius=6{\s²}" inches will be processed as
Radius=6"
Page url:
https://www.dplot.com/help/index.htm?movecurvescommand.htm