Username: Password:

System Scripting Reference



Overview

The system routines are native DreamFactory commands and functions that can be used with any node.

The routines are grouped by name and function, use the navigation buttons below to examine the system routines available.

Project Messages: projectidle, projectopen, projectclose, projectenter, projectexit, projectactive

Mouse Messages: mousedown, mouseup, mousemove, mouseenter, mouseexit, mousedoubleclick, mousewheel, mousedrop

Keyboard Messages: keydown, keyup, keyrepeat, keycommand, keydata, keyenter, keyexit

Node Messages: nodeopen, nodeclose, nodeshow, nodehide, noderesize, nodestart, nodestop, nodemove, nodechange, nodeactive, nodeselect

Network Messages: webtransferdone, servertransaction

 

Commands and Functions


applicationlaunch

applicationlaunch(executable name $, document name $)

Launches an application with the given name. The second argument is a document name.

If the application name is empty, DreamFactory attempts to find an application for the specified document.

If the document name is empty, the application is launched with a new document.

On Windows, the document name can be command line arguments or a document name.





arrayavg, arraymax, arraymin, arraysum

average #.# = arrayavg(number 1 #.#, number 2 #.#, ?)
max #.# = arraymax(number 1 #.#, number 2 #.#, ?)
min #.# = arraymin(number 1 #.#, number 2 #.#, ?)
sum #.# = arraysum(number 1 #.#, number 2 #.#, ?)

These routines are various math array operations that take any number of arguments. Example:

global x = arraysum(1, 2, 3)




binaryfileread, binaryfilewrite, binaryfilewritefx

binary data $ = binaryfileread(file name $)
binaryfilewrite(file name $, binary data $)
did it TF = binaryfilewritefx(file name $, binary data $)

These routines convert files into binary data and binary data into files. There is no translation of carriage returns or line feeds.

If the file name is "" the user is asked to get or put a file manually, a scripting error is generated if they cancel.

Binaryfilewritefx returns true if the file was saved or false if the file was not saved.

Binaryfileread optionally takes a second argument which is a special value to return if the dialog is canceled.

If the file name is a simple file type like "doc" then the user is asked to get or put a file of that type manually.

You can also use these special type names for more complex selections: pictures, textfiles, charfiles, xmlfiles, allfiles, htmlfiles, sounds, and movies.
See: textfileread, textfilewrite, fileselectednameget, fileselectednameset




bitset, bitshift, bittest

number # = bitset(number #, bit #, set TF)
number # = bitshift(number #, shift #)
bit is set TF = bittest(number #, bit #)

Various bit operation functions. The bit # should be between 1 and 32, the shift is positive to shift right, and negative to shift left.



broadcastget, broadcastset

broadcast messages TF = broadcastget()
broadcastset(broadcast messages TF)

Get or set the ability to broadcast automatic messages to nodes.

This is normally true, but can be turned off to stop recursion in handlers triggered by automatic messages.

Automatic messages include: nodeopen, nodeclose, nodeshow, nodehide, noderesize, nodestart, nodestop, nodemove, nodechange, nodeactive, and nodeselect.





bufferdouble, buffersingle, bufferstate, bufferstop

bufferdouble(width #, height #, bitdepth #)
buffersingle(width #, height #, bitdepth #)
number of buffers # = bufferstate()
bufferstop()

These functions flip the monitor into different DirectX modes in Windows, and does a focused screen on the Macintosh.

You should check bufferstate for the results of buffersingle or bufferdouble, for example, the Mac doesn't double buffer.




clipboardformats, clipboardget, clipboardset

has format TF = clipboardformats(clipboard format $)
clipboard text $ = clipboardget()
clipboardset(clipboard text $)

Clipboardget, and clipboardset get and set the text clipboard.

Clipboardformats returns true if the format is on the clipboard. Formats include: text, pict, and node.

Various plugins can read and write the "pict" format and must be called to do so as appropriate.

The "node" format is information from nodecopy.





coercetoboolean, coercetofloat, coercetolong, coercetostring

boolean TF = coercetoboolean(any argument ?)
float #.# = coercetofloat(any argument ?)
long # = coercetolong(any argument ?)
string $ = coercetostring(any argument ?)

Coerce any argument into the given type if possible.

Returns 0, "", 0.0, or false respectively if not possible.
See: typeof




cursorhide, cursorset, cursorshow

cursorhide()
cursorset(name $)
cursorshow()

Check resourse files for predefined cursors.

Currently available: arrow, cross, eyedropper, gather, ibeam, magnify, touch, watch.

As well as: fist, godown, goleft, goright, gostraight, goup, hand, sight.

And also: resizetop, resizebot, resizehor, resizever, resizeany.


debugger

debugger()

Debugger brings up the debugger window.


dialogcertificate

dialogcertificate()

This command shows the DreamFactory Developer Certificate for the current project.

DreamFactory developers can use this command to verify that they have a working certificate.

DreamFactory customers can use this command to identify the developer that created the project file.

This information is displayed during project download, and during any security request.


dialogcolor

selected color $ = dialogcolor(initial color $)

Dialogcolor is a quick and easy standard dialog to select or create a color.

This routine takes an existing color as a starting point.

The newly created color is returned, or "" if the user cancelled.


dialoghelp

dialoghelp(help dialog prompt $)

Dialoghelp invokes the DreamFactory dialog help system.


dialoglist

answer $ = dialoglist(title $, message $, items $)

Dialoglist is a quick and easy standard dialog to allow the user to select from a list of items.

The items should be comma or carriage return delimited.

The selected item is returned, or "" if the user cancelled.


dialogmenu

answer $ = dialogmenu(hor #, ver #, items $)

Dialogmenu displays a pop-up menu at the given location.

The routine takes a comma or carriage return delimited list of menu items as input.

The list may specify "(check)item text" or "(disable)item text" or "-" for a divider.

The selected item is returned, or "" if the user cancelled. Example:

myanswer = dialogmenu(hor, ver, "(check)Item 1, (disable)Item 2, -, Item 3")




dialogopenfile, dialogopenfolder, dialogsavefile

path name $ = dialogopenfile(title $, file type $, write file TF)
path name $ = dialogopenfolder(title $)
path name $ = dialogsavefile(title $, file type $, prompt $)

These routines return file and folder paths to manually selected files, or "" if the user cancelled.

The project can use the returned file or folder path to conduct file operations, but you must have the appropriate security permissions to do so.

Dialogsavefile and dialogopenfile take a simple file type to save or open, or you can use these special type names for more complex selections: pictures, textfiles, charfiles, xmlfiles, allfiles, htmlfiles, sounds, and movies. Example:

dialogopenfile("Please select a web page.", "html", false)



dialogpassword, dialogusername

password string $ = dialogpassword(title $, message $)
username and password string $ = dialogusername(title $, message $, username $)

Dialogpassword is a quick and easy standard dialog to enter a secure password.

The routine returns the password or "" if canceled.

Dialogusername is a quick and easy standard dialog to enter a secure username and password.

The routine returns the username and password in a structure or "" if canceled.


dialogpolicy

dialogpolicy()

This command allows you to specify how much access DreamFactory projects have to your client desktop and networks.

Web sites can be included under various security zones, and each zone can specify project permissions.

The security policy can be locked for enterprise deployment.
See: projectpermissionset, projectpermissionget


dialogshow

dialogshow(title $, message $)

Dialogshow is a quick and easy standard dialog that displays a modal message. Example:

dialogshow("My Title", "Here is the message.")


dialogtext

entered string $ = dialogtext(title $, message $, prompt $)

Dialogtext is a quick and easy standard dialog for text entry.

The routine returns the entered text or "" if canceled.

Dialogtext optionally takes a fourth argument which is a special value to return if the dialog is canceled.



dialogyesno, dialogyesnocancel

yes or no $ = dialogyesno(title $, question $)
yes, no, or cancel $ = dialogyesnocancel(title $, question $)

Dialogyesno is a quick and easy standard dialog to ask a yes or no question.

The routine returns "yes" or "no".

Dialogyesnocancel also includes a cancel button and will return "yes", "no", or "cancel".



dispatchmessage, dispatchmessagefx

dispatchmessage(node name $, message $)
result ? = dispatchmessagefx(node name $, message $)

These routines take the name of a node and a message string. Dispatchmessagefx returns a result.

The node name may also be "project" or "library" followed by a library number.

This is useful for server transactions between DreamFactory clients, and for browser-based "DFMessage" commands. Example:

dispatchmessage("library4", "mycommand(44)")


dreamfactorypath

folder path $ = dreamfactorypath()

Dreamfactorypath returns the path to the "pouch" folder, called "DreamFactory".

This is where the plugins, scripts, help, downloads, and strings folders are located.
See: projectpath


dreamfactoryruntime

runtime only version TF = dreamfactoryruntime()

Returns true if DreamFactory is running in the runtime only version.

In this version projectruntimeset will fail to turn off runtime and begin authoring.

This version is used for mobile devices like PocketPC and Palm.
See: projectruntimeset, projectruntimeget


dreamfactoryupdate

dreamfactoryupdate()

This command will download and run the installation package for the browser based control or stand-alone application version of DreamFactory.

Before calling this command be sure that the current project version is greater than the installed version, and that the desired remote version is available.

If the download and launch are successful, dreamfactoryupdate will quit the current project and close DreamFactory.
See: dreamfactoryversion, projectversion


dreamfactoryversion

version $ = dreamfactoryversion()

Dreamfactoryversion returns the version number of the currently installed DreamFactory virtual machine.

This function optionally takes the arguments "short", "medium", or "long" for different version formats.

The argument "host" will return the company name of the current installation's hosted provider.

The argument "remote" will return the current version available from the hosted provider.
See: projectversion, pluginversion


erroraction

erroraction(action $)

Erroraction takes the following arguments: clear, handle, and create. Clear clears the current error if any.

Handle brings up the DreamFactory error dialog if there is an error, or does nothing otherwise.

Create creates a user error with two additional arguments for messages. The current error if any is lost.

No arguments handles the current error, or if there is none, creates a user error.
See: errormodeget, errormodeset, errorstatus



errormodeget, errormodeset

errors allowed TF = errormodeget()
errormodeset(errors allowed TF)

Get or set the error mode.

If true, errors are handled immediately with the DreamFactory error dialog that alows them to be ignored, handled, etc.

If false, errors are logged but ignored. The errorstatus and erroraction routines allow the detection and response to errors.

The errormode is always initialized to true when the project is first opened.
See: erroraction, errorstatus


errorstatus

argument ? = errorstatus(status $)

Errorstatus takes the following arguments: comment1, comment2, object, line, number, and description.

Object is the node that triggered the error. Line is the line of the script, and description is the DreamFactory text.

Number returns the DreamFactory internal error code. The comments are from the DreamFactory dialog for errors.

No arguments returns true if there is an error or false otherwise.
See: errormodeget, errormodeset, erroraction


filecopy

filecopy(source file name $, destination file name $)

Copy a file from anywhere to anywhere, subject to security restrictions.

This command copies both forks of Macintosh resource files and preserves file attributes.






filecountnames, fileindextoname, folderbuildnames, foldercountnames, folderindextoname

total files # = filecountnames()
file name $ = fileindextoname(index #)
folderbuildnames(path name $)
total folders # = foldercountnames()
folder name $ = folderindextoname(index #)

Call folderbuildnames to examine a directory, or with "" for all currently mounted volumes.

The other functions will provide the names of all the files and folders.





filedelete, fileexists, folderdiskspace, folderexists

filedelete(file name $)
exists TF = fileexists(file name $)
free space # = folderdiskspace(path name $)
exists TF = folderexists(path name $)

These commands and functions return information or perform operations on files or folders.



filelockedget, filelockedset

locked TF = filelockedget(file name $)
filelockedset(file name $, locked TF)

Get or set the locked state of a file.

These routines only work on files that are currently closed.

If a DreamFactory project is locked, the project can be opened multiple times but cannot be changed.
See: projectlockedget, projectlockedset


filemodificationdate

date $ = filemodificationdate(file name $)

Filemodificationdate returns the modification date for the given file.
See: webmodificationdate



filenativetopath, filepathtonative

path name $ = filenativetopath(native path name $)
native path name $ = filepathtonative(path name $)

These routines translate DreamFactory file paths to native file paths and back.

For example, the DreamFactory path "main:myfolder:what.txt" might equal "c:\myfolder\what.txt" on Windows.

These routines are only useful in rare circumstances. DreamFactory commands and functions use DreamFactory paths to describe files.



fileselectednameget, fileselectednameset

file name $ = fileselectednameget()
fileselectednameset(file name $)

Fileselectednameget returns the name of the last manually selected file.

This is useful when binaryfileread, binaryfilewrite, textfileread, or textfilewrite use a dialog to select a file and you need to know the file name.

Use fileselectednameset to specify the default name when a file is saved.
See: textfileread, binaryfileread, textfilewrite, binaryfilewrite


filesize

size # = filesize(file name $)

Filesize returns the size in bytes of the given file.


filestatus

status $ = filestatus(file name $)

Returns locked, open, error, or OK.

Error means that the file is a directory or does not exist.

Open means the file is currently open for writing and cannot be reopened.

Locked means the file itself is locked, or resides on a locked or protected volume.



fileunzip, filezip

fileunzip(zip file name $, path name $)
filezip(file name list $, zip file name $)

Zip and unzip multiple files and folders. Compatible with PKZip on Windows, and Stuffit on the Mac.

The Macintosh version will use "MacBinary" format to save and restore Macintosh resource forks if necessary.


flushevents

flushevents()

Kill all pending events. This is useful to flush pending mousedown or keydown events.



foldercreate, folderdelete

foldercreate(path name $)
folderdelete(path name $)

Create or delete a folder.




fontcountnames, fontindextoname, fontindextosize

total project fonts # = fontcountnames()
project font name $ = fontindextoname(index #)
project font size # = fontindextosize(index #)

These functions index through all the fonts in the current project, returning the name and size.




fontcountsystemnames, fontindextosystemname, fontsystemsizeavail

total system fonts # = fontcountsystemnames()
system font name $ = fontindextosystemname(index #)
available TF = fontsystemsizeavail(system font name $, system font size #)

These functions index through all the fonts in the current system.

Use fontsystemsizeavail to determine if a given system font size is available.



fontcreate, fontdelete

fontcreate(system font name $, system font size #, use grayscale TF)
fontdelete(project font name $, project font size #)

Fontcreate imports the specified system font into the project, creating a project font.

The grayscale flag creates an anti-aliased font instead of black and white if possible.

Fontdelete removes a font from the current project.
See: fontcountnames, fontindextoname, fontindextosize


fontmetrix

metrix # = fontmetrix(project font name $, project font size #, string $, param $)

This routine returns information about the specified font.

The parameter is "width", "height", "ascent", "depth", or "memory".

The string must be specified for calculating the width information.

In place of "width" you can use a font style which returns the pixel width of styled text.

Depth will be 8 for a grayscale font, or 1 for black and white.

Memory is the amount of diskspace the font takes up. Grayscale fonts take up more space.



framerateget, framerateset

milliseconds per frame # = framerateget()
framerateset(milliseconds per frame #)

Get or set the milliseconds per frame used by the update and updatefx commands.

For example, if you set the frame rate to 50, DreamFactory will be running at 20 frames per second.

Very high frame rates should be reserved for special situations because this will consume large amounts of processor time.

The framerate value is automatically limited to a minimum of 5 and a maximum of 1000.
See: update, updatefx





globaltolocalhor, globaltolocalver, localtoglobalhor, localtoglobalver

hor # = globaltolocalhor(node name $, hor #)
ver # = globaltolocalver(node name $, ver #)
hor # = localtoglobalhor(node name $, hor #)
ver # = localtoglobalver(node name $, ver #)

Translate a point in a node to the screen and back.



keyabortget, keyabortset

key aborts TF = keyabortget()
keyabortset(key aborts TF)

Holding down and releasing the escape key will generate a key abort for stuck programming loops.

The keyaborts flag is always initialized to true when the project is first opened.

Turn keyaborts off for final delivery of your project.






keycontrol, keyescape, keyshift, keyspace, keytest

control TF = keycontrol()
escape TF = keyescape()
shift TF = keyshift()
space TF = keyspace()
is down TF = keytest(key name $)

Querry the immediate state of the keyboard.

Both keycontrol and keyshift can take the optional argument "event" which returns the state of the keyboard when the event was posted.

This is useful for testing for control-keyboard events. The control key is the control or command key on the Macintosh.




keyfocusget, keyfocusnow, keyfocusset

node name $ = keyfocusget()
keyfocusnow()
keyfocusset(node name $)

Keyfocusset takes a node name to receive the keyboard focus, or the empty string to remove the focus from all nodes.

Keyfocusget returns the node name with the current focus, or the empty string if there is no node with keyboard focus.

The node with keyboard focus receives all keyboard events: keydown, keyup, keyrepeat, keycommand, and keydata.

The keyfocusnow command changes the system keyboard focus to point to the desktop window.
See: keyenter, keyexit



librarycommentget, librarycommentset

comment $ = librarycommentget(library #)
librarycommentset(library #, comment $)

Get or set a string of documentation about the library.

This user definable string sticks to the library forever.




librarycount, librarydelete, libraryinsert

total libraries # = librarycount()
librarydelete(library #)
libraryinsert(after index #)

Count, insert, and delete library scripts.

The initial library scripts come from the scripts folder when the project is created.

DreamFactory depends on libraries 1 through 4, do not change them. Insert new libraries above 4.



librarymessage, librarymessagefx

librarymessage(library #, message CODE)
result = librarymessagefx(library #, message CODE)

Send a message to a command or function in a library script.

This is rarely necessary, because libraries are at the bottom of the hierarchy anyway.
See: libraryscriptedit




libraryscriptedit, libraryscriptget, libraryscriptset

libraryscriptedit(library #)
text $ = libraryscriptget(library #)
libraryscriptset(library #, text $)

Edit a library script, or get and set the script from a string.

The library scripts are a special set of scripts below the root node.

The library scripts will receive any message that other scripts have not handled.



machinebounds, machinedepth

bounds $ = machinebounds()
depth # = machinedepth()

Machinebounds returns the boundary rectangle of the current hardware device. This will be larger than the desktop bounds.

Machinedepth returns the current color depth in bits per pixel, usually 16 or 32.


machineclicktime

maximum double click speed in milliseconds # = machineclicktime()

Returns the maximum number of milliseconds the user has set on this machine to designate a double click.

Clicks that occur faster than this can be assumed to be double clicks.






machinedate, machinedatetoseconds, machineseconds, machinesecondstodate, machinesecondstogmt

date $ = machinedate()
seconds # = machinedatetoseconds(date $)
seconds # = machineseconds()
date $ = machinesecondstodate(seconds #)
date $ = machinesecondstogmt(seconds #)

Machinedate returns a date string for the current time.

The data string is just the year, month, day, hour, minute, and second separated by commas.

Machineseconds returns the number of seconds that have elapsed since 1970.

Machinedatetoseconds and machinesecondstodate convert between date strings and seconds.

Machinesecondstogmt returns Greenwich Mean Time, while machinesecondstodate returns the local data and time.



machineduration, machinetime

milliseconds elapsed # = machineduration(old machine time #, new machine time #)
machine time # = machinetime()

Machinetime returns a machine time value, which is used as an input argument to machineduration.

Machineduration will return the number of milliseconds that has elapsed between an older and newer machine time value.

Do not use a machine time value directly for other purposes.

Machinetime can take the optional argument "event" which returns the machine time when the last event was posted.




machinespeed, machinesystem, machinetype

speed $ = machinespeed()
system $ = machinesystem()
type $ = machinetype()

Machinetype returns "Windows" or "Macintosh."

On Macintosh, machinespeed returns: PPC followed by 601, 603, 604, 603e, 603ev, 750, 604e, 604ev, G4, or G47450

On Windows, machinespeed returns: Intel, MIPS, Alpha, or PPC followed by the vendor specific processor level.

On Macintosh, machinesystem returns: OS 9 or OS 10

On Windows, machinesystem returns: Win 95, Win 98, Win ME, Win NT, Win XP, or Win 2000















mathabs, mathatan, mathcos, mathexp, mathexp2, mathlog, mathlog2, mathmod, mathpow, mathround, mathsin, mathsqrt, mathtan, mathtrunc

abs x # = mathabs(x #.#)
atan x # = mathatan(x #.#)
cos x # = mathcos(x #.#)
exp x # = mathexp(x #.#)
exp2 x # = mathexp2(x #.#)
log x # = mathlog(x #.#)
log2 x # = mathlog2(x #.#)
mod # = mathmod(numer #.#, denom #.#)
pow # = mathpow(x #.#, y #.#)
round x # = mathround(x #.#)
sin x # = mathsin(x #.#)
sqrt x # = mathsqrt(x #.#)
tan x # = mathtan(x #.#)
trunc x # = mathtrunc(x #.#)

Various math transendental functions.


mathrandom

number # = mathrandom(range #)

Random number generator.






memoryavail, memoryfree, memoryheap, memorystack, memorysystem

is avail TF = memoryavail(wanted #)
raw free memory # = memoryfree()
total heap memory # = memoryheap()
total bytes left on stack = memorystack()
total RAM = memorysystem()

Memoryheap returns the total size of the DreamFactory heap memory.

Memoryavail tries to clear up the specified amount of memory from the heap, will toss cached objects if necessary.

Memoryfree returns the current free size of the DreamFactory heap memory. Memoryavail will clear up more.

Memorysystem returns the total amount of installed RAM on the current machine.

Memorystack returns the bytes left on the stack.



memorycheckget, memorycheckset

check memory TF = memcheckget(system $)
memcheckset(system $, check memory TF)

Use these functions to turn off the memory checking for variables, plugins, or sounds and allow extrordinary allocation sizes.

These values are always initialized to true when the project is first opened.

Use these functions at your own risk.





messageboxdelayget, messageboxdelayset, messageboxtargetget, messageboxtargetset

milliseconds per message # = messageboxdelayget()
messageboxdelayset(milliseconds per message #)
node name $ = messageboxtargetget()
messageboxtargetset(node name $)

The message target will direct message box input to a node.

Messageboxtargetset with zero arguments targets the node at the current mouse position.

The delay controls how fast the message box prints the next message.
See: messageboxdisplay, messageboxevaluate



messageboxdisplay, messageboxevaluate

messageboxdisplay(any argument ?)
result $ = messageboxevaluate(message $)

This command will print one argument of any type in the message box output.

Zero arguments will hide the box.

Two arguments will print the second argument in the input position.

The messageboxevaluate function is just like typing input in the message box.
See: messageboxdelayset, messageboxtargetset, messageboxdelayget, messageboxtargetget


mousebutton

currently down TF = mousebutton()

Returns true if the physical mouse button is currently down.

Optionally takes the argument "left", "middle" or "right" for different mouse buttons.
See: mousestilldown, mousewasdown




mousehor, mouseread, mousever

mousehor # = mousehor()
mouseread()
mousever # = mousever()

Mouseread grabs the current mouse location, then mousehor and mousever read that value.


mousestilldown

still down TF = mousestilldown()

True if the mouse is still down since the last mousedown event was sent.

Optionally takes the argument "left", "middle" or "right" for different mouse buttons.
See: mousebutton, mousewasdown


mousewasdown

was down TF = mousewasdown()

True if the mouse has been clicked since the last mousedown event was sent.

Optionally takes the argument "left", "middle" or "right" for different mouse buttons.

This function is useful for testing the mouse button in a loop without missing clicks.
See: mousebutton, mousestilldown



nodeattach, nodeattachfx

nodeattach(node name $, father node name $)
new node name $ = nodeattachfx(node name $, father node name $)

These functions attach a node to another node in the same project.

Errors are returned if the connection is recursive or if the parent node already has a child with that name.

Nodeattachfx returns the fully specified path name of the newly attached child node.



nodebringtofront, nodesendtoback

nodebringtofront(node name $)
nodesendtoback(node name $)

Moves a node to the front or back of the node's brothers visually.
See: nodeshuffleforward, nodeshufflebackward





nodebrotherback, nodebrotherfront, nodebrothernext, nodebrotherprev

back node name $ = nodebrotherback(node name $)
front node name $ = nodebrotherfront(node name $)
next node name $ = nodebrothernext(node name $)
prev node name $ = nodebrotherprev(node name $)

These functions return the first, previous, next, and last brothers of the given node, or empty if there is no such brother.

This is useful for indexing through nodes.
See: nodebrotherget


nodebrotherget

next brother node name $ = nodebrotherget(node name $)

Nodebrotherget returns the next node brother, or if there is not one, the first brother.

This is useful for looking at the brother nodes in a circlular list.
See: nodebrotherback, nodebrotherfront, nodebrothernext, nodebrotherprev



nodechildget, nodefatherget

child node name $ = nodechildget(node name $)
father node name $ = nodefatherget(node name $)

Nodechildget will return the child and nodefatherget will return the father of the given node.



nodeclipopenget, nodeclipopenset

clip open TF = nodeclipopenget(node name $)
nodeclipopenset(node name $, clip open TF)

Get or set the clipopen property. If true, the node is not clipped by any parent node.

This is useful in the rare case that a node needs a different clipping state than other children.



nodecommentget, nodecommentset

comment $ = nodecommentget(node name $)
nodecommentset(node name $, comment $)

Get or set a string of documentation about the node.

This user definable string sticks to the node forever.
See: nodeuserdataget, nodeuserdataset, noderefset, noderefget


nodecopy

nodecopy(node name $)

Nodecopy copies a node and all children to the clipboard file.

The clipboard file is called "clipfile" in the downloads folder.

Optionally nodecopy will take a second argument which is the name of a custom clipboard file.
See: nodedelete, nodepaste, nodepastefx



nodecountchildren, nodeindextochild

children # = nodecountchildren(node name $)
child node name $ = nodeindextochild(node name $, child index #)

Nodecountchildren will return the total number of children for a father node.

Nodeindextochild will return the long node name of one of the children by number.



nodecreate, nodecreatefx

nodecreate(father node name $, plugin $, new short name $)
child node name $ = nodecreatefx(father node name $, plugin $, new short name $)

Create a single node with the given plugin attached to the specified father node.

If the new short name is "" a unique name is assigned.

The fully specified name of the newly created child node is returned by nodecreatefx.
See: nodenew, nodenewfx, nodedelete


nodedelete

nodedelete(node name $)

The delete command will permanently delete a node and all children.
See: nodecopy, nodepaste, nodepastefx



nodeexistsget, nodepluginget

exists TF = nodeexistsget(node name $)
plugin name $ = nodepluginget(node name $)

These functions return a node's plugin name, or test if a node is in the current project.



nodefindchild, nodefindplugin

child node name $ = nodefindchild(father node name $, short name $)
child node name $ = nodefindplugin(father node name $, plugin name $)

Nodefindchild takes a father node name and a short child name and returns the long name of that child or empty if there is no such child.

Nodefindplugin takes a father node name and a short plugin name and returns the long name of the child with that plugin or empty if there is no such child.

If there are more than one children with the given plugin, then nodefindplugin returns the first child with the given plugin.


nodefirst

first node name $ = nodefirst()

Nodefirst will return the first node name, which is always the root node.


nodefontusage

font usage $ = nodefontusage(node name $)

This function returns an XML structure documenting the font usage of the given node.


nodehashandler

has handler TF = nodehashandler(node name $, handler name $)

Returns true if the specified handler is in the node. This test is very fast for system messages.


nodehittest

node name $ = nodehittest(hor #, ver #)

Returns the name of the topmost node that contains the point.

Used by the project script to send out the mousedown message.

Optionally takes zero arguments for the current mouse position.



nodeidtoname, nodenametoid

node name $ = nodeidtoname(node id #)
id # = nodenametoid(node name $)

Convert back and forth between the nodeid and nodename.

Node ids stick to the node until it is destroyed.




nodelongnameget, nodenameget, nodenameset

long name $ = nodelongnameget(node name $)
short name $ = nodenameget(node name $)
nodenameset(node name $, short name $)

Get or set the name of a node.

Nodenameget returns the short version of the nodename, nodelongnameget returns the fully specified name.



nodemessage, nodemessagefx

nodemessage(node name $, message CODE)
result = nodemessagefx(node name $, message CODE)

Send CODE messages to commands or functions in individual nodes. Example:

local arg = nodemessagefx("distantnode", distantfunction(3, myvar, "whatever"))



nodenew, nodenewfx

nodenewfx(father node name $, plugin $)
child node name $ = nodenewfx(father node name $, plugin $)

Create a single node with the given plugin attached to the specified father node.

The fully specified name of the newly created child node is returned by nodenewfx.
See: nodecreate, nodecreatefx, nodedelete



nodeoutlineget, nodeoutlineset

outline TF = nodeoutlineget(node name $)
nodeoutlineset(node name $, outline TF)

Get or set the node outline flag, which is used by the manager palette to remember node outlining information.

This flag should not be used for other purposes.



nodepaste, nodepastefx

nodepaste(father node name $, new short name $)
child node name $ = nodepastefx(father node name $, new short name $)

Nodepaste and nodepastefx will paste a node and all children from the clipboard file onto the father node.

If the new short name is "" the name of the node on the clipboard is used.

The fully specified name of the newly pasted child node is returned by nodepastefx.

Optionally nodepaste and nodepastefx will take a third argument which is the name of a custom clipboard file.
See: nodedelete, nodecopy



nodepicture, nodepicturefx

nodepicture(node name $, file name $)
did it TF = nodepicturefx(node name $, file name $)

Create a picture of the given node and all children.

Nodepicture depends on the Print_Information security permission.

If the file name is "" the user is asked to save the picture manually, a scripting error is generated if they cancel.

Nodepicturefx returns true if the picture was saved or false if there was an error.



nodeprint, nodeprintfx

nodeprint(node name $, layout $)
did it TF = nodeprintfx(node name $, layout $)

Print the given node and all children.

The layout parameters include: left, center, scale, or pages.

The left and center options position the node on a single clipped page.

The scale option scales the node on a single page. The pages option will print multiple pages if necessary.

All printing occurs at 72 pixels per inch, so for example, an 8 X 10 page would be 576 X 720 pixels.

Nodeprint brings up the printing properties dialog, a scripting error is generated if they cancel.

Nodeprintfx returns true if the node was printed or false if the node was not printed.



noderefget, noderefset

ref # = noderefget(node name $)
noderefset(node name $, ref #)

Get or set the node ref, which is a user definable number that sticks to the node forever.
See: nodeuserdataget, nodeuserdataset, nodecommentget, nodecommentset




nodescriptedit, nodescriptget, nodescriptset

nodescriptedit(node name $)
text $ = nodescriptget(node name $)
nodescriptset(node name $, text $)

Edit a node script, or get and set the script from a string.



nodeshufflebackward, nodeshuffleforward

nodeshufflebackward(node name $)
nodeshuffleforward(node name $)

Moves a node forward or back one position relative to brother nodes.
See: nodesendtoback, nodebringtofront


nodesizeget

size in bytes # = nodesizeget(node name $)

Returns the size of the node data and script.



nodeuserdataget, nodeuserdataset

user data $ = nodeuserdataget(node name $)
nodeuserdataset(node name $, user data $)

Get or set a string of user defined data about the node.

This user definable string sticks to the node forever.
See: nodecommentget, nodecommentset, noderefset, noderefget



nodevisibleget, nodevisibleset

visible TF = nodevisibleget(node name $)
nodevisibleset(node name $, visible TF)

Nodevisibleget will return the visible flag for a node.

Nodevisibleset will hide or show a node and all of the visible children attached to it.

All the ancestors of a node marked visible must also be visible for the node to actually appear.



plugincountnames, pluginindextoname

count # = plugincountnames()
plugin name $ = pluginindextoname(index #)

Cycle through the currently installed plugins.



plugincountroutines, pluginindextoroutine

total # = plugincountroutines(plugin name $)
routine name $ = pluginindextoroutine(plugin name $, detail $, index #)

These functions return information about commands and functions in the plugins, or enter "system" for system routines.

The level of detail should be: high, medium, low, or help.

Medium detail is designed for runtime parsing of arguments.

The detail level help returns the help file information about the given plugin or system routine.



pluginexists, pluginloaded

exists TF = pluginexists(plugin name $)
loaded TF = pluginloaded(plugin name $)

Pluginexists tests if the given plugin is in the plugin folder.

Pluginloaded tests if the plugin is in the folder and available for use.



pluginstatusget, pluginstatusset

status $ = pluginstatusget(plugin name $)
pluginstatusset(plugin name $, status $)

Projects can prohibit the usage of a particular plugin, or declare their dependance on the latest version.

If the plugin status is set to "disabled" then attempts to use commands or functions in that plugin will cause a scripting error.

If the plugin status is set to "enabled" then new versions of the plugin are automatically downloaded with the project file.

The initial status of a plugin is set to "unknown", which allows scripting but does not trigger downloads.


pluginversion

version $ = pluginversion(plugin name $)

This routine returns the version of the given plugin.
See: projectversion, dreamfactoryversion



profilestart, profilestop

profilestart(counter #)
milisecs time # = profilestop(counter #)

Used for keeping track of any duration in milliseconds.

Call profilestart to remember a start time, then profilestop will return the elapsed time in milliseconds.

There are up to 10 timer slots available, be sure to use the same counter for each profilestart / profilestop pair.


projectclosefile

projectclosefile(project name $)

Projectclosefile will close the given project, the project must be currently open.
See: projectopenfile, projectcreatefile



projectcountnames, projectindextoname

total # = projectcountnames()
project name $ = projectindextoname(index #)

Cycle through the currently open projects.



projectcreatefile, projectcreatefilefx

projectcreatefile(project name $)
did it TF = projectcreatefilefx(project name $)

Projectcreatefile creates and opens a new project.

If the project name is "" the user is asked to create a file manually, a scripting error is generated if they cancel.

Projectcreatefilefx returns true if the file was created or false if the file was not created.
See: projectopenfile, projectclosefile


projectexists

exists TF = projectexists(project name $)

Returns true if the given project is currently open.



projectlockedget, projectlockedset

locked TF = projectlockedget()
projectlockedset(locked TF)

These routines allow you to lock a project so that the file cannot be changed.

This is a password protected project attribute, the physical file can be locked with filelockedget and filelockedset.

Projectlockedget always returns true if the physical file is locked, so check this attribute before creating new objects or importing media.
See: projectpasswordget, projectpasswordset, filelockedget, filelockedset



projectmessage, projectmessagefx

projectmessage(message CODE)
result = projectmessagefx(message CODE)

Send a message to a command or function in the project script.
See: projectscriptedit



projectopenfile, projectopenfilefx

projectopenfile(project name $)
did it TF = projectopenfilefx(project name $)

Projectopenfile opens an existing project.

If the project name is "" the user is asked to select a file manually, a scripting error is generated if they cancel.

Projectopenfile will exit all handlers if the new project is marked with the private security setting.

Projectopenfilefx returns true if the file was opened or false if the file was not opened.
See: projectprivacyget, projectprivacyset, projectclosefile



projectpasswordget, projectpasswordset

security level $ = projectpasswordget()
projectpasswordset(security level $)

This command sets a password for the project. The password level is discussed below.

Level "open" requires a password to open the project, or anything below.

Level "locked" requires a password to lock/unlock the project for changes, or anything below.

Level "runtime" requires a password to activate/deactivate project editing and scripting, or anything below.

Level "privacy" requires a password to enable/disable project data sharing.

Level "none" removes all password protection, this is the lowest security level.
See: projectlockedget, projectlockedset, projectruntimeset, projectruntimeget, projectprivacyget, projectprivacyset


projectpath

folder path $ = projectpath()

Projectpath returns the path to the current project.

This path is the security sandbox for private file operations, which are safe to conduct in this area.
See: dreamfactorypath



projectpermissionget, projectpermissionset

permission $ = projectpermissionget(permission name $)
projectpermissionset(permission name $, permission $)

Use projectpermissionget to test security permissions in the current project. The function returns: grant, prompt, or deny.

Projectpermissionget also accepts the argument "security_zone" to determine the current project's securty zone.

Use projectpermissionset to change various project permissions.

If the second argument is "grant" projectpermissionset will trigger a permissions request for the end user.

If the second argument is "prompt" projectpermissionset will set the given permission to prompt.

If the second argument is "deny" projectpermissionset will set the given permission to deny.

Once a permission has been set to "deny" it can only be changed manually from the securty dialog.

General Permissions: Use_Clipboard, Print_Information, Launch_Application, Run_Micro-Server

Internet Permissions: FTP_Originating_Host, HTTP_Originating_Host, SOAP_Originating_Host, FTP_Internet, HTTP_Internet, SOAP_Internet

File Permissions: Write_Sandbox_File, Read_Sandbox_File, Write_System_File, Read_System_File, Write_Manual_File, Read_Manual_File

Registry Permissions: Write_Sandbox_Registry, Read_Sandbox_Registry, Write_System_Registry, Read_System_Registry
See: dialogpolicy



projectprivacyget, projectprivacyset

privacy mode TF = projectprivacyget()
projectprivacyset(privacy mode TF)

Projectprivacyset prevents other projects from looking at the private project's data or variables.

Opening or viewing a private project causes all handlers to exit, denying the current project access.
See: projectpasswordset, projectpasswordget, projectopenfile, projectviewset, projectviewget



projectruntimeget, projectruntimeset

runtime mode TF = projectruntimeget()
projectruntimeset(runtime mode TF)

In runtime mode scripts can't be edited, and the debugger and messagebox will not come up. The menu bar is also hidden.

Set projectruntime to true when your project is ready for delivery. You might implement a switch to go back and author as desired.
See: projectpasswordset, projectpasswordget



projectsaveasfile, projectsaveasfilefx

projectsaveasfile(project name $)
did it TF = projectsaveasfilefx(project name $)

Projectsaveasfile saves a copy of the given project to a different file selected by the user.

This is useful for making a quick backup copy of an open project.

If the project name is "" the user is asked to select a file manually, a scripting error is generated if they cancel.

Projectsaveasfilefx returns true if the file was saved or false if the file was not saved.


projectsavefile

projectsavefile(project name $)

Projectsavefile updates the given project file with any saved changes. Use this before zipping, copying, or uploading a running project.

Closing a project also updates the project file, but projectsavefile can be used while the project is open.




projectscriptedit, projectscriptget, projectscriptset

projectscriptedit()
text $ = projectscriptget()
projectscriptset(text $)

Edit the project script, or get and set the script from a string.

The project script is a special script above the hierarchy of nodes.

The project script receives and sends out various important system messages like mousedown and keydown.


projectversion

version $ = projectversion()

Projectversion returns the version number of the current project.
See: dreamfactoryversion, pluginversion



projectviewget, projectviewset

project name $ = projectviewget()
projectviewset(project name $)

Get or set the project you are currently viewing. Multiple projects can be opened and fliped between.

Projectviewset will exit all handlers if the new project is private.
See: projectprivacyget, projectprivacyset



projectzipfile, projectzipfilefx

projectzipfile(project name $)
did it TF = projectzipfilefx(project name $)

Projectzipfile prepares the given project for web deployment. The file name is unchanged, but the contents of the project are zipped.

This command must be used on a project file that is currently closed. When you open a zipped project, the file is automatically unzipped.

If the project name is "" the user is asked to select a file manually, a scripting error is generated if they cancel.

Projectzipfilefx returns true if the file was zipped or false if the file was not zipped.


quit

quit()

Quit current DreamFactory session.

This command will close the DreamFactory stand-alone application or current web browser.
See: webbrowseractive





registrynumberget, registrynumberset, registrystringget, registrystringset

number # = registrynumberget(key name $, value name $)
registrynumberset(key name $, value name $, number #)
string $ = registrystringget(key name $, value name $)
registrystringset(key name $, value name $, string $)

Get or set numbers and strings out of the Windows System Registry or Macintosh Preferences File.

To access the private registry sandbox, the key names must be constructed in a particular manner.

For example, a browser-based project might use the key name: "DreamFactory\Sandbox\DreamFactory.Com\MyKey".

Information is stored in the Windows Registry at: HKEY_CURRENT_USER\Software\


serveraddress

local IP Address $ = serveraddress()

Serveraddress returns the IP address of the current machine in string-dotted format.

Sometimes the server must be running for this to work.


serverbody

body $ = serverbody(transaction ID #)

Given a server transaction ID, serverbody returns the body of the message.


serverheader

serverheader(transaction ID #, extra header $, good TF)

Given a server transaction ID, serverheader sets extra header information for the result.

Use the good flag to signal a successful transaction or a server error. Example:

serverheader(transid, "Content-Type: text/xml", true)




serverstart, serverstartfx, serverstop

serverstart(port #, max clients #, node name $)
did it TF = serverstartfx(port #, max clients #, node name $)
serverstop()

Serverstart begins operation of the DreamFactory micro-server.

If the port number is zero, the default HTTP port is used, usually port 80.

Max clients is the maximum expected number of simultaneous cilents.

The node name specifies the script to receive the servertransaction system message.



stringchartonumber, stringnumbertochar

unicode # = stringchartonumber(character $)
character $ = stringnumbertochar(unicode #)

Convert the first character in a string to the unicode numeric equivalant and vica-versa.

The first 127 unicode character values are the sames as the ASCII character codes, the control characters are less than 32.

Many control character are available as reserved words: tab, cr, lf, quote, space, comma, slash, backslash, and colon.


stringformatfloat

string $ = stringformatfloat(float #.#, trailing zeros #)

Formats the floating point value with the given number of zeros after the decimal.

Use -1 for full precision with trimmed zeros, or zero for no decimals.

This function takes an optional third argument which is a currency symbol or the word "commas."

In this case the string is formatted for the given currency or simply with commas added.


stringhandler

handler $ = stringhandler(string $, old name $, new name $)

Grab a code / endcode handler out of any script. Usefull for assembling scripts at runtime.

If the new name is empty, stringhandler returns the entire script with the old handler removed.



stringitemget, stringitemset

total items # = stringitemget(string $, delim $)
new string $ = stringitemset(string $, delim $, total items #)

Stringitemget returns the number of items in an item delimited string, or the string size if the delimiter is "".

Stringitemset sets the number of items in an item delimited string, or the string size if the delimiter is "". New items or spaces are added as necessary to the end of the string.



stringlistget, stringlistset

sub string $ = stringlistget(string $, delim $, item #)
new string $ = stringlistset(string $, delim $, item #, insert $)

Get or set an item in a delimited string. If the delimeter is "", then this will get or set individual characters.




textfileread, textfilewrite, textfilewritefx

string $ = textfileread(file name $)
textfilewrite(file name $, text $)
did it TF = textfilewritefx(file name $, text $)

These routines convert text files into strings and strings into text files. Carriage returns and line feeds are properly translated.

If the file name is "" the user is asked to get or put a file manually, a scripting error is generated if they cancel.

Textfilewritefx returns true if the file was saved or false if the file was not saved.

Textfileread optionally takes a second argument which is a special value to return if the dialog is canceled.

If the file name is a simple file type like "html" then the user is asked to get or put a file of that type manually.

You can also use these special type names for more complex selections: textfiles, charfiles, xmlfiles, and htmlfiles.
See: binaryfileread, binaryfilewrite, fileselectednameget, fileselectednameset








threadcountnames, threadexists, threadindextoname, threadpauseget, threadpauseset, threadstart, threadstop

count # = threadcountnames()
thread exists TF = threadexists(node name $)
node name $ = threadindextoname(index #)
pause TF = threadpauseget(node name $)
threadpauseset(node name $, pause TF)
threadstart(node name $, message CODE, time #)
threadstop(node name $)

Threadstart sends a specified message to a node during the Update command.

A negative final argument specifies a millisecond delay, use a positive argument to delay for that many frames.

Threads automatically expire unless reset, usually the receiving handler will call Threadstart again.
See: framerateget, framerateset, update


typeof

type $ = typeof(any argument ?)

Returns "string", "binary", "float", "long", or "boolean".
See: coercetolong, coercetostring, coercetofloat, coercetoboolean


update

update()

Update is usually called from the project script projectidle handler and from inside animated loops.

This command must be called for any change to occur on the screen.

Update also fires threads, webtransferdone, and servertransaction system messages.

This is the heartbeat function for DreamFactory, the framerate determines how long the update takes.
See: updatefx, framerateget, framerateset


updatefx

updatefx(effect name $, duration in milliseconds #, node name $)

This is like update, except a visual effect is specified. If the node name is "", the entire screen is used.

The effects are: dissolve, venetian, checkerboard, randomrows, randomcols, barndoorclose, barndooropen, irisclose, irisopen.

And: scrolldown, scrollup, scrollright, scrollleft, wipedown, wipeup, wiperight, wipeleft, turnright, turnleft, turnup, turndown.
See: update, framerateget, framerateset



variablecountnames, variableindextoname

count # = variablecountnames(type $)
variable name $ = variableindextoname(index #, type $)

These functions cycle through the variables by name. Type is: local, regional, or global.






variablecreate, variabledelete, variableexists, variableget, variableset

variablecreate(var name $, type $)
variabledelete(var name $, type $)
exists TF = variableexists(var name $, type $)
value ? = variableget(var name $, type $)
variableset(var name $, type $, value ?)

The equivalent of creating, assigning, reading, and dumping local, regional, or global vaiables.

This is useful because you can create variable names dynamically at runtime.

You may also use a node name instead of a type, which returns "regional" information for that node. Example:

variablecreate("var" @ 3, "global")


webbrowseractive

running in browser TF = webbrowseractive()

Return true if DreamFactory is running in the browser.

The commands webbrowserevent and webbrowsergoto only do something if webbrowseractive is true.


webbrowserevent

webbrowserevent(message sent to browser $)

Sends a message to the Internet Explorer, Netscape, Mozilla, or Firefox browser page.

The message is received by the DFEvent function written in either JavaScript or VB Script on the HTML page containing the DreamFactory control.

The Internet Explorer browser can only receive VB Script events, you can call JavaScript code from the VB Script event handler if necessary.

The Netscape, Mozilla, and Firefox browsers can only receive JavaScript events, and do not support the VB Script language.


webbrowsergoto

webbrowsergoto(url to link to $, in a new window TF)

Jumps to a new url. If the new window parameter is true, a new instance of the browser is opened.

If the new window parameter is false, DreamFactory is closed and the browser goes to the new url.

The new window parameter optionally takes a browser frame target: _top, _self, _blank.



webdownloadimmediate, webuploadimmediate

text data $ = webdownloadimmediate(url name $, name $, param $)
text data $ = webuploadimmediate(url name $, name $, param $, text data $)

Upload or download text data and grab the result immediately.

If a FTP URL is specified, name is the username and param is the password.

If a HTTP URL is specified, name is the operation (like "GET" or "POST") and param is extra header information.

This is in contrast to webdownloadstart and webuploadstart which write data to a file and work in the background.
See: webdownloadstart, webuploadstart



webdownloadproject, webdownloadprojectfx

webdownloadproject(url name $, name $, param $, file dest $)
did it TF = webdownloadprojectfx(url name $, name $, param $, file dest $)

Webdownloadproject downloads and opens a new project.

If no file destination is specified, one is automatically calculated, this is usually the case in the browser-based version.

If a FTP URL is specified, name is the username and param is the password.

If a HTTP URL is specified, name is the operation (like "GET" or "POST") and param is extra header information.



webdownloadstart, webuploadstart

webdownloadstart(url name $, name $, param $, dst file $, node name $)
webuploadstart(url name $, name $, param $, src file $, node name $)

These commands initiate a transfer to a HTTP or FTP URL.

If a FTP URL is specified, name is the username and param is the password.

If a HTTP URL is specified, name is the operation (like "GET" or "POST") and param is extra header information.

When finished, the system message webtransferdone is sent to the specified node with the result of the transaction.

This is useful for conducting web services transactions or file upload and download in the background.


webhtmlparameters

parameters $ = webhtmlparameters()

This routine returns any parameters that follow the "htmldata" tag on the HTML page containing the DreamFactory control.

This is useful when you would like to pass additional information from the HTML page to your DreamFactory project.
See: weburlparameters, webbrowserevent


weblasterrorcode

error code # = weblasterrorcode()

This routine returns the HTTP error code from the most recent web transaction.

For example, a code of 200 signals a success and 500 signals a failure.

Webuploadimmediate and webdownloadimmediate set the last error code.

This routine can also be called from the webtransferdone system message handler after webuploadstart or webdownloadstart have terminated.
See: weblastresponseheader


weblastresponseheader

response header $ = weblastresponseheader()

This routine returns the HTTP response header from the most recent web transaction.

Webuploadimmediate and webdownloadimmediate set the last response header text.

This routine can also be called from the webtransferdone system message handler after webuploadstart or webdownloadstart have terminated.
See: weblasterrorcode


webmodificationdate

date $ = webmodificationdate(url name $, name $, param $)

Will return a date string on any internet file. This is useful for triggering file updates.

If the returned date string has all items set to zero, then the file server did not provide a modification date for the requested file.

If a FTP URL is specified, name is the username and param is the password.

If a HTTP URL is specified, name is the operation (like "GET" or "POST") and param is extra header information.
See: filemodificationdate



webofflineget, webofflineset

running offline TF = webofflineget()
webofflineset(running offline TF)

Get or set the offline browsing mode. If offline browsing is turned on, all web opperations generate a scripting error.

On Windows, this is a global flag also available from the file menu in the web browser.

On Macintosh, this is a local flag that only limits DreamFactory internet opperations.



webtransferabort, webtransferstatus

webtransferabort(file name $)
percent done # = webtransferstatus(file name $)

Webtransferstatus reports on the status of web uploads and downloads.

Webtransferabort can stop a download transfer.
See: webdownloadstart, webuploadstart


weburlparameters

parameters $ = weburlparameters()

This routine returns any extra parameters on the URL string used to launch the current project.

Such parameters usually follow the file name and a question mark on the URL string.

Individual name=value pairs are often separated by the ampersand symbol.

This is useful when the URL contains additional information or arguments intended for the DreamFactory project. Example:

"http://www.dreamfactory.com/bootfile.dfac?name1=param1&name2=param2"