Macros are able to create forms to interact with the user. The example that follows is a simple example of a form, reading the results and displaying them in a custom function. Elements from this example can be copied to build up a more complex form to display.
// Sample form to demonstrate use of form controls CreateForm(); // Create and display the form function CreateForm() { // The basic form var form = new System.Windows.Forms.Form(); form.Text = "Show equipment"; form.ShowIcon = false; form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; form.Size = new System.Drawing.Size(10, 10); form.TopMost = true; form.AutoSize = true; // Create a label var label1 = new System.Windows.Forms.Label(); label1.AutoSize = true; label1.Location = new System.Drawing.Point(10, 10); form.Controls.Add(label1); label1.Text = "Please enter the name of the equipment: "; // Create a text box var textBox1 = new System.Windows.Forms.TextBox(); textBox1.Location = new System.Drawing.Point(10, 35); form.Controls.Add(textBox1); textBox1.Text = "Conveyor1"; // Set the default // Create a check box var checkBox1 = new System.Windows.Forms.CheckBox(); checkBox1.Text = "Enabled"; checkBox1.Location = new System.Drawing.Point(120, 35); form.Controls.Add(checkBox1); checkBox1.Checked = true; // Set the default // Create a combo box var comboBox1 = new System.Windows.Forms.ComboBox(); comboBox1.Location = new System.Drawing.Point(10, 60); form.Controls.Add(comboBox1); comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; // Add Sym3 colors to the combo var colours = Project.Colors.Objects; for (var i = 0; i < colours.Count; i++) comboBox1.Items.Add(colours[i].Name); comboBox1.Text = "Sym3 Orange"; // Set the default // Create two radio buttons var radio1 = new System.Windows.Forms.RadioButton(); var radio2 = new System.Windows.Forms.RadioButton(); radio1.Text = "Option 1"; radio2.Text = "Option 2"; radio1.Location = new System.Drawing.Point(10, 90); radio2.Location = new System.Drawing.Point(120, 90); form.Controls.Add(radio1); form.Controls.Add(radio2); radio1.Checked = true; // Set the default // Create a button to link to a function: button1 = new System.Windows.Forms.Button(); button1.Location = new System.Drawing.Point(10, 120); button1.Text = "Execute"; button1.add_Click(function() { try { var sValues = "Equipment=" + textBox1.Text + ", Colour=" + comboBox1.Text + ", Enabled=" + checkBox1.Checked + ", Option=" + (radio1.Checked ? "1" : "2") myFunction(sValues); // Call this function } catch(err) { print("Error in the macro: " + err); } }); form.Controls.Add(button1); // Create a cancel button: button2 = new System.Windows.Forms.Button(); button2.Location = new System.Drawing.Point(100, 120); button2.Text = "Cancel"; button2.add_Click(function () { try { form.Close() } catch (err) { print(err); } }); form.Controls.Add(button2); form.Show(); // Display the completed form to the user } // Display the results from the form function myFunction(sValue) { System.Windows.Forms.MessageBox.Show("myFunction: Values are '"+sValue+"'"); }