Thumbnail

User Defined Function Example

Example of how to create a plugin that becomes an ez-script function.

+ How To Add This Control To Your Project (Click to Expand)
  1. Make sure you have the latest version of ARC installed.
  2. Select the Get button in this page to download the archive file.
  3. Double click the downloaded archive file to execute installer.
  4. The installer will add this control to ARC.
  5. Load ARC and press the Project -> Add Control button from the menu.
  6. Choose the Scripting category tab.
  7. Press the User Defined Function Example icon to add the control to your project.

Manual

Add custom EZ-Script functions in c# using this example.

Source code is available here: UserDefinedFunctionExample.zip

Additional tutorial information can be found here: http://www.ez-robot.com/Tutorials/UserTutorials/146/20

There is also example code below the video.



Code:


using System;
using System.Drawing;
using System.Windows.Forms;

namespace User_Defined_Function_Example {

public partial class FormMaster : EZ_Builder.UCForms.FormPluginMaster {

public FormMaster() {

InitializeComponent();
}

private void FormMaster_Load(object sender, EventArgs e) {

// Intercept all unknown functions called from any EZ-Script globally.
// If a function is called that doesn't exist in the EZ-Script library, this event will execute
ExpressionEvaluation.FunctionEval.AdditionalFunctionEvent += FunctionEval_AdditionalFunctionEvent;
}

private void FormMaster_FormClosing(object sender, FormClosingEventArgs e) {

// Disconnect from the function event
ExpressionEvaluation.FunctionEval.AdditionalFunctionEvent -= FunctionEval_AdditionalFunctionEvent;
}

///
/// This is executed when a function is specified in any ez-scripting that isn't a native function.
/// You can check to see if the function that was called is your function.
/// If it is, do something and return something.
/// If you don't return something, a default value of TRUE is returned.
/// If you throw an exception, the EZ-Script control will receive the exception and present the error to the user.
///
private void FunctionEval_AdditionalFunctionEvent(object sender, ExpressionEvaluation.AdditionalFunctionEventArgs e) {

// Check if the function is our function (SetColor)
if (!e.Name.Equals("setcolor", StringComparison.InvariantCultureIgnoreCase))
return;

// Check if the correct number of parameters were passed to this function
if (e.Parameters.Length != 3)
throw new Exception("Expects 3 parameters. Usage: SetColor(red [0-255], green [0-255], blue [0-255]). Example: SetColor(20, 200,100)");

// Convert the parameters to datatypes
byte red = Convert.ToByte(e.Parameters[0]);
byte green = Convert.ToByte(e.Parameters[1]);
byte blue = Convert.ToByte(e.Parameters[2]);

// Do something
EZ_Builder.Invokers.SetBackColor(label1, Color.FromArgb(red, green, blue));

// Return something. Good idea to return TRUE if your function isn't meant to return anything
e.ReturnValue = true;
}
}
}