使用VBScript表单元件

在 VBScript 窗体中使用组件

尽管窗体和组件是基于 Embarcadero Delphi's™ Visual Component Library (VCL),但在使用 VBScript 时,Altium Designer 基于 Delphi 的 Tool Palette在使用 VBScript 时,Altium Designer 仍可将控件放到表单上。此外,无论 Altium Designer 中的窗体/组件是否基于 Delphi,都将使用 VBScript 语言生成事件处理程序并编写代码。

组件概述

脚本系统处理两种类型的组件:可视组件和非可视组件。可视化组件用于构建用户界面,而非可视化组件则用于不同的任务,例如由 Timer, OpenDialogMainMenu组件提供的功能。例如,非可视 Timer组件用于在预定时间间隔内激活特定代码,用户永远看不到它。组件 Button, EditMemo组件是可视组件--用户可以看到它们。

这两类组件在设计时都会出现,但非可视组件在运行时是不可见的。面板中的组件 Tool Palette面板中的组件是面向对象的,有以下三个项目:

  • 属性
  • 事件
  • 方法

A property是一个对象的特性,它影响该对象的可见行为或操作。例如 Visible属性决定了能否以脚本形式显示该对象。

一个 event是脚本检测到的动作或事件。在脚本中,程序员为每个事件处理程序编写代码,目的是捕捉特定事件,如鼠标点击。

A method是一个过程,它总是与一个对象相关联,并定义了该对象的行为。

所有脚本表单都有一个或多个组件。组件通常显示信息或允许用户执行操作。例如,标签用于显示静态文本,编辑框用于允许用户输入一些数据,按钮可用于启动操作。

任何组件的组合都可以放在表单上,允许用户在脚本运行时(运行时)与它们进行交互。脚本程序员的任务是决定当用户点击按钮或更改编辑框中的文本时会发生什么。

脚本系统提供了一系列组件,用于为脚本创建简单或复杂的用户界面。所有可以放置在表单上的组件都可以在工具调板面板中找到。

要在表单上放置组件,请在面板上找到其图标并双击。 Tool Palette面板上找到该组件图标并双击。该操作将组件以默认位置、默认宽度和高度放置在活动表单上。大多数组件的可视化表示是由其相关属性集决定的。

已放置的组件在其默认位置和默认宽度-高度下,可使用鼠标或通过 Object Inspector面板调整大小或位置。当组件被放置到表单上时,脚本系统会自动生成使用组件所需的基本代码,并更新脚本表单。要使窗体上的组件正常工作,剩下的工作就是设置属性、在事件处理程序中添加代码,以及在必要时使用方法。

设计脚本表单

脚本表单的设计目的是在 Altium Designer 环境中与用户交互。设计脚本窗体是 Altium Designer 可视化开发的核心。

脚本窗体上的每个组件和设置的每个属性都存储在描述窗体的文件(文件 *.dfm文件)中,并与相关的脚本代码(文件 *.vbs文件)。因此,每个脚本窗体都有 *.vbs文件和相应的 *.dfm文件。

在处理脚本表单及其组件时,可以使用 Object Inspector面板访问和修改其属性。通过在组件上单击 shift 键,或在脚本表单上拖动组件周围的选择矩形,可以选择多个组件。脚本表单的标题映射到 Caption属性。 Object Inspector面板中的属性。

创建新脚本窗体

打开脚本项目后,在 Projects面板中的项目上单击右键,然后选择 Add New to Project然后选择 VB Script Form项目。创建的新脚本表单默认名称为 EditScript1.vbs 名称。或者,在 *.PrjPCB项目中,选择 File»New»Script Files»VB Script Form命令。

显示脚本窗体

在 Altium Designer 中执行脚本窗体时,脚本需要有一个显示窗体的例程。在该例程中 ShowModal方法被调用。表单的 Visible属性必须设置为 false(未选中),脚本窗体的 ShowModal方法才能正常工作。

ShowModal 示例

Sub RunDialog
  DialogForm.ShowModal
End Sub

上述 ShowModal示例是在调用脚本对话框时显示脚本表单的一种简单方法。 RunDialog对话框时显示脚本表单的简单方法。请注意,可以在调用 DialogForm对象的组件赋值。 DialogForm.ShowModal方法被调用之前,可以为对象的组件赋值。

下面显示的 ModalResult示例更为复杂。后面的方法用于脚本窗体中的按钮。当用户单击 OKCancel按钮时,对话框将终止。 mrOkmrCancel方法分别返回 ShowModal方法分别返回

ModalResult Example

sub bOKButtonClick(Sender)
  ModalResult := mrOK
end sub
 
sub bCancelButtonClick(Sender)
  ModalResult := mrCancel
end sub
 
sub RunShowModalExample
  'Form Visible property must be false for ShowModal to work properly.
  If Form.ShowModal = mrOk     Then ShowMessage("mrOk")
  If Form.ShowModal = mrCancel Then ShowMessage("mrCancel")
end sub

通过将 ModalResult值设置为 mrOk按钮的 OK按钮的值设置为 mrCancel按钮的 Cancel按钮的值。当用户单击其中一个按钮时,对话框就会关闭。无需调用 Close方法,因为当 ModalResult方法时,脚本引擎会自动关闭脚本窗体。

请注意,在用户按下 ModalResult键时取消对话框 Esc键时,请将 Cancel按钮的取消属性为 true(选中),或在 Object Inspector面板中将按钮的取消属性设置为 true(选中),或在表单的 Sender.Cancel := True事件处理程序。 CancelButtonClick事件处理程序中。

接受用户输入

接受用户输入的常见组件之一是 EditBox组件。该 EditBox组件有一个文本字段,用户可以在此输入字符串。还有其他一些组件也可以接受文本,例如屏蔽编辑组件,它是一个带有文本字段输入屏蔽的编辑组件。屏蔽控制或过滤输入,并存储在参数字符串中。

下面的示例说明了当用户在编辑框中输入文本后点击按钮时发生的情况。请注意,如果用户没有在编辑组件中键入任何文本,事件处理程序会响应一条警告信息

sub TScriptForm.ButtonClick(Sender)
  If Edit1.Text = "" Then
  ShowMessage("Warning - empty input!")
  Exit
  End
  ' do something else for the input
End sub

请注意,用户可以使用 Tab键或单击其他表单控件来移动表单上的输入焦点。

响应事件

当用户选择表单或组件时,Altium Designer 会向脚本系统发送消息,脚本系统会调用相应的事件处理程序方法来响应事件通知。

编写事件处理程序

脚本可能需要响应组件在运行时可能发生的事件。事件是 Altium Designer 中发生的事件(如点击按钮)与响应该事件的代码之间的链接。响应代码就是事件处理程序,它可以修改属性值和调用方法。

除了组件的属性外,每个组件都有一组事件名称。脚本程序员在 Altium Designer 中决定如何对用户的操作做出反应。例如,当用户点击表单上的按钮时,Altium Designer 会向脚本发送一条信息,脚本会对这个新事件做出反应--如果 OnClick事件,它就会被执行。

所有这些组件也都有一个获取和丢失焦点的事件。但是,如果未指定 OnEnter 和 OnExit 的代码(即OnEnter - 控件有焦点; OnExit - 控件失去焦点),脚本将忽略该事件。

组件属性

要查看组件的属性列表,请选择一个组件并激活 Properties选项卡。 Object Inspector面板中的选项卡。

组件事件

要查看组件所能反应的事件列表,请选择组件并激活面板中的 Events选项卡。 Object Inspector面板中的选项卡。要为组件创建一个事件处理程序,选择一个合适的事件并双击其名称。

例如,从 Button1组件 Tool Palette面板,将其放到脚本窗体上,然后双击事件名称旁边的 OnClick事件名称旁边双击。脚本系统将重新聚焦到代码编辑器,事件的骨架代码将在这里创建。 OnClick事件的骨架代码已经创建。如果按钮的 Close方法 CloseClick事件处理程序中的方法,那么当按钮被点击时,其事件处理程序就会捕捉到点击事件,并执行事件处理程序中的代码。也就是说,该 Close方法关闭脚本窗体。

总之,在脚本中创建事件处理程序的方法是在窗体上选择一个组件,或使用 Object Inspector面板,然后在检查器的 Events标签页中所需事件(如 OnClick)的右侧双击,相应的代码框架就会出现在脚本中。

或者,双击按钮,脚本系统将为事件添加处理程序。 OnClick事件的处理程序。其他类型的组件会有完全不同的默认操作。

组件方法

有关组件方法的列表,请参阅组件参考,更多详细信息请参阅 Embarcadero Delphi 文档。

在运行时创建组件

组件可以在脚本中直接创建和销毁。通常情况下,不需要传递窗体的句柄,因为脚本窗体会自动处理它--相反,向组件构造函数传递一个 Nil参数给组件构造函数。

例如 OpenSave对话框可以被创建和销毁(脚本中的 TOpenDialogTSaveDialog类,作为 Delphi RTL 的一部分)。

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
功能可用性

您可使用的功能取决于您所选择的 Altium 解决方案 —— Altium DevelopAltium Agile(Agile Teams 或 Agile Enterprise 版本),或仍在有效订阅期内的 Altium Designer。

如果您在软件中未找到文中提及的功能,请联系 Altium 销售团队了解更多信息。

旧版文档

Altium Designer 文档不再提供版本区分。如果您需要访问 Altium Designer 旧版本的文档,请前往其他安装程序页面的旧版文档部分。

Content