コード例 #1
0
        private void btnEditScript_Click(object sender, System.EventArgs e)
        {
            frmScript f = new frmScript();

            // Show script editing dialog with current script source
            f.ScriptSource = ScriptSource;
            if (f.ShowDialog(this) == DialogResult.Cancel)
            {
                return;
            }

            // Update local script source
            ScriptSource = f.ScriptSource;

            // Use the compiled plugin that was produced
            Script = f.CompiledScript;
            Script.Initialize(this);
        }
コード例 #2
0
        private void btnOk_Click(object sender, System.EventArgs e)
        {
            CompilerResults results;
            string          reference;

            Cursor = Cursors.WaitCursor;

            // Find reference
            reference = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
            if (!reference.EndsWith(@"\"))
            {
                reference += @"\";
            }
            reference += "interfaces.dll";

            // Compile script
            lvwErrors.Items.Clear();
            results = Scripting.CompileScript(ScriptSource, reference, Scripting.Languages.VB);

            if (results.Errors.Count == 0)
            {
                _compiledScript = (Interfaces.IScript)Scripting.FindInterface(results.CompiledAssembly, "IScript");
                DialogResult    = DialogResult.OK;
            }
            else
            {
                ListViewItem l;

                // Add each error as a listview item with its line number
                foreach (CompilerError err in results.Errors)
                {
                    l = new ListViewItem(err.ErrorText);
                    l.SubItems.Add(err.Line.ToString());
                    lvwErrors.Items.Add(l);
                }

                MessageBox.Show("Compile failed with " + results.Errors.Count.ToString() + " errors.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }

            Cursor = Cursors.Default;
        }