Как подключить обработчики событий Microsoft Forms 2.0 с помощью JScript - PullRequest
2 голосов
/ 06 июня 2019

Я пытаюсь добавить настроенную страницу пользовательского интерфейса в Sparx EA. Это обеспечивает добавление элементов управления ActiveX с помощью сценариев. Используя JScript, я сделал это, но поскольку ActiveX должен быть зарегистрирован на каждом клиенте, я бы предпочел использовать Microsoft Forms, уже установленные на всех клиентах.

Я успешно создал пользовательский интерфейс, добавив объект ActiveX «Forms.Form.1» и добавив текстовые поля, метки и кнопки в свойство элементов управления созданной формы. Эти объекты поддерживают события, но я не могу понять, как назначить обработчик событий.

Вот код JScript, который я использовал для получения разметки экрана:

function _addControl(parentControl, controlProgId, controlName, left, top, width, height){
    var newControl = parentControl.controls.add(controlProgId, controlName,1);
    newControl.Name=controlName;
    newControl._SetLeft(left);
    newControl._SetTop(top);
    newControl._SetWidth(width);
    newControl._SetHeight(height);
    return newControl;
}

function main(){
    //Create main form
    var form = Repository.AddTab("ScriptedForm", "Forms.Form.1");
    if (null != form){
        //Add control
        var textBox1 = _addControl(form, "Forms.TextBox.1","TextBox1", 18,21,94,93);
        var textBox2 = _addControl(form, "Forms.TextBox.1","TextBox2", 120, 21, 91, 93);
        var btnTest = _addControl(form, "Forms.CommandButton.1", "btnTest", 60, 140, 90, 30);
        btnTest.Caption = "Test";

        //Here's where I assign the click event, but it's unhappy.
        btnTest.add_Click(this.TextBox1_Click);
    }
}
function TextBox1_Click(Object){
    Session.Prompt("Click", promptOK);
}

Событие add_Click ожидает параметр типа CommandButtonEvents_ClickEventHandler.
Я не могу создать ничего, что можно было бы передать в качестве параметра. Я попытался создать класс JScript, дублирующий интерфейс, но без радости.

...