Altova XMLSpy 2023 Professional Edition

如果您需要从用户那里收集输入数据,或向用户显示数据,则可以使用窗体。窗体可以包含各种控件以方便操作,如按钮、复选框、组合框等。

 

要添加窗体,请在“项目”窗格内单击鼠标右键,然后从上下文菜单中选择添加窗体。要向窗体添加控件,请将其从脚本编辑器右侧可用的工具箱中拖放至窗体上。

 

您可以使用单击任何控件时出现的手柄直接在窗体上更改控件的位置和大小,例如:

scr_form_handles

所有窗体控件都有属性,您可以在“属性”窗格中轻松地进行调整。为此,请先选择窗体上的控件,然后在“属性”窗格中编辑所需的属性。

scr_form_properties

 

处理窗体事件

每个窗体控件还公开各种事件,您的脚本项目可以与之绑定。例如,您可能想在每次单击按钮时调用某种XMLSpy COM API方法。要创建绑定到窗体事件的函数,请执行以下操作:

 

1.在“属性”窗格中,单击事件scr_ic_events

2.操作列中,双击需要方法的事件(例如,下图中处理的事件是“点击”)。

scr_form_events

您还可以通过双击窗体上的控件来添加处理器方法。例如,双击窗体设计中的按钮将为该按钮的“点击”事件生成一个处理器方法。

 

生成该处理器方法的主体后,您可以输入处理此事件的代码,例如:

 

//Occurs when the component is clicked.
function MyForm_ButtonClick( objSender, e_EventArgs )
{
  alert("A button was clicked");
}

 
要显示一个从脚本编辑器中分离出来的工作中的窗体,请在“项目”窗口中右键单击该窗体,然后从上下文菜单中选择测试窗体。请注意,测试窗体命令仅显示窗体;窗体的事件(例如按钮点击)仍呈禁用状态。要让窗体响应事件,请从宏中调用它,例如:

 

// Instantiate and display a form
ShowForm( "SampleForm" );

 

访问窗体控件

您可以通过使用字段访问语法从您的代码中访问窗体上的任何组件。例如,假设有一个窗体设计如下所示:

 

// MyForm
//   ButtonPanel
//      OkButton
//      CancelButton
//   TextEditor
//      AxMediaPlayer1
// TrayComponents
//   MyTimer

 

下方的代码显示了如何实例化窗体、使用字段访问语法访问它的一些控件,以及显示该窗体:

 

// Instantiate the form
var objForm = CreateForm("MyForm");
// Disable the OK button
objForm.ButtonPanel.OkButton.Enabled = false;
// Change the text of TextEditor
objForm.TextEditor.Text = "Hello";
// Show the form
objForm.ShowDialog();

 

当您向窗体添加某些控件(例如计时器)时,它们不会显示在窗体上;相反,它们会以托盘组件的形式显示在窗体设计的底部,例如:

scr_form_tray_components

要从托盘访问控件,请在窗体对象上使用GetTrayComponent方法,然后提供控件的名称作为参数。在本例中,要获取对MyTimer的引用并启用它,请使用以下代码:

 

var objTimer = objForm.GetTrayComponent("MyTimer");
objTimer.Enabled = true;

 

对于ActiveX控件,您可以通过OCX属性来访问底层的COM对象:

 

var ocx = lastform.AxMediaPlayer1.OCX; // get underlying COM object
ocx.enableContextMenu = true;
ocx.URL = "mms://apasf.apa.at/fm4_live_worldwide";

© 2017-2023 Altova GmbH