Я пытаюсь добавить настроенную страницу пользовательского интерфейса в 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, дублирующий интерфейс, но без радости.