脚本化图形元件

本参考资料概述了脚本支持的图形组件及其主要属性和方法。

Altium Designer 脚本中可用的可视化窗体组件大多来自 Embarcadero 的可视化组件库(VCL),这是一个定义可视化组件的集合,用于使用 Delphi 和 C++ 语言开发 Windows 应用程序。

作为一个可视化类库,VCL 类源于 TComponent对象(本身是从 TObject根对象的后代)的线性对象层次结构。因此,一个普通的脚本组件,如 TButton对象就继承了其上一级对象的属性、方法和事件。在这种情况下,类的层次结构是 TObject → TPersistent → TComponent → TControl → TWinControl → TButtonControl → TButton.

请注意,从 TControl对象的组件一般是可视化组件(控件),而从 TWinControl的普通组件大多是 Windows API 的包装器。

► 有关 VCL 架构和组件的概述,请参见Embarcadero RAD Studio VCL

在 Altium Designer 脚本编辑器中创建表格时,组件可从 Tool Palette面板访问组件。脚本表单有一个关联的 *.DFM文件,其中包括表单配置、组件位置和其他属性的详细信息--该文件可在脚本项目的主机文件夹中找到。Altium Designer 允许在设计脚本表单时使用 DelphiScript 或 VBScript 组件。

VBScript 语言被视为传统语言,默认情况下不可用,但可通过高级偏好设置中的 Legacy.Scripts.SupportOldLanguages设置启用。

面板 Tool Palette面板包含可投放到脚本窗体的分类可视化控件。
面板 Tool Palette面板包含可投放到脚本窗体的分类可视化控件。

工具调色板面板包含可放置到脚本窗体上的分类组件。可用的组件按可扩展部分组合在 Tool Palette面板中的可扩展部分,分为标准、附加、Win32、系统、对话框、Altium 标准和仪表控件。

面板的外观和行为可通过右键单击上下文菜单进行更改。

调色板中的组件(或 "控件")在脚本窗体中使用时是可视化组件,这意味着用户可以看到控件,并可能在运行时与之交互。所有控件都有描述其外观的属性、方法和事件,例如控件的位置属性、绘制或移动控件的方法以及响应用户操作的事件。

属性和事件可在 "对象检查器 "面板中查看当前选定的窗体组件,包括窗体本身。方法是该组件支持的程序和函数。

脚本表单概述

脚本表单

脚本窗体是脚本中的主要用户界面,尽管还有其他窗体,如对话框、辅助窗口等。要创建新的脚本窗体,在 Altium Designer 中打开一个项目,选择 File»New»Script » Script Form或右键单击脚本项目名称,然后选择 Add New to Project » Script Form.如果启用了 VBScript 语言,则 VB 脚本和 Delphi 脚本都可以使用该命令。

此时会出现一个新的脚本窗体,默认窗体名称为 Form1表单名称作为默认设置,可通过 Name属性(在 Misc下的 Object Inspector面板中的属性(在脚本表单名称在项目中应是唯一的。

设计脚本表单时,从 Object Inspector面板。 Script 按钮打开面板。设计脚本表单时,从 Object Inspector面板。 Script 按钮打开面板。

空白表单基本上是一个可添加控件的可视化窗口。对话框和面板是不同类型的窗体,默认情况下,窗体包含标准窗口功能,例如

  • 控件
  • 最小化和最大化按钮
  • 标题栏
  • 通过拖动边框调整大小

这些功能以及任何其他可用的窗体属性都可以在设计时使用 Object Inspector面板进行更改。由于脚本窗体是一个 VCL 组件,因此它具有以下三个项目:

  • Properties- 影响对象可见行为或操作的对象特征。例如 Visible 属性决定在脚本窗体中是否可以看到对象。
  • Events- 脚本检测到的行为或事件。脚本必须包含每个事件处理程序的代码,事件处理程序用于捕获特定事件(如鼠标点击)。
  • Methods- 与对象(这里是组件对象)关联并定义其行为的脚本过程。

► 有关开发基于表单的脚本的基本指南,请参见编写脚本

表单属性、方法和事件

面板 Tool Palette面板的控件基于 Embarcadero Visual Component Library (VCL)。有关窗体组件 (TForm) 的方法、属性和事件的详细信息,请参阅 Embarcadero VCL 文档。

► 参见Embarcadero TForm 参考资料

请注意,上述链接指的是 Embarcadero RAD Studio XE6VCL 库的参考资料。以前版本(直到 2010 版)的文档也可用。

TForm 属性

可用的 TForm组件对象(即基本脚本窗体)的可用属性可通过以下方式查看:

  • 通过 Object Inspector面板 - 在编辑器的 "窗体 "视图中(选中Form 选项卡)中,单击表单主体并选择 Object Inspector'sProperties 选项卡。

注意,只有可视组件对象才会出现在面板中。作为幕后控件的非可视对象不会显示在表单上。

  • 使用代码自动完成功能 - 在编辑器的代码视图中(选中Code 选项卡)中,上下文相关的代码完成窗口将显示对象名称的所有代码选项。

对于表单对象,输入 TForm.(注意句号)激活窗口。输入所需属性的前几个字母缩小搜索范围,注意属性和方法都会显示。

TForm 方法

组件对象的可用方法 TForm组件对象的可用方法可通过以下方式查看:

  • 使用代码完成功能 - 在编辑器的 "代码 "视图中,键入一个组件名称,后面跟一个句号。代码完成窗口将打开,显示对象名称的代码方法(和属性)。请注意,代码窗口可通过快捷键手动激活。 Crtl+Space快捷键手动激活代码窗口。

  • 请参考TForm 方法参考页面上的 Embarcadero 参考文档。请注意,这将显示所有继承的方法,但可以取消选择该选项。

TForm 事件

组件对象的可用事件 TForm组件对象的可用事件可通过以下方式查看:

  • 对象检查器面板 - 在编辑器的窗体视图中,单击窗体本身,然后选择对象检查器的 Events 选项卡。

组件属性、事件和方法

面板 Tool Palette面板的控件基于 Embarcadero Visual Component Library (VCL)。有关大多数组件的方法、属性和事件的详细信息,请参阅 Embarcadero VCL 文档中的组件类别。中的某些组件类型,特别是 Tool Palette中的某些组件类型,尤其是 Altium Instrument Controls,是 Altium Designer 专有的,不包含在 Embarcadero 参考文档中。

► 查看Embarcadero VCL 组件分类索引

请注意,上述链接指的是 Embarcadero RAD Studio XE6 VCL 库的参考文档。以前版本(直到 2010 版)的文档也可用。

组件属性

查看组件属性列表:

  • 在窗体上选择一个组件并激活 Properties选项卡 Object Inspector面板上的 TForm组件对象。
  • 选择Embarcadero 参考文档中相应组件参考页面上的 "属性 "链接(位于顶部)。以 TButton控件为例,请选择 "标准组件"类别、"TButton"页面,然后选择 "属性"视图。

组件事件

要查看组件可对之做出反应的事件列表,请执行以下操作

  • 在窗体上选择一个组件,然后激活 Events 选项卡 Object Inspector面板上的 TForm组件对象。
  • Embarcadero 参考文档中选择适当的组件参考页面,然后选择其 "事件 "链接。请注意,这只是组件可用事件的指南,可能与 Altium Designer 脚本组件的可用事件不完全匹配。

要创建事件处理过程,请在 Object InspectorEvents选项卡中选择组件应响应的事件,然后双击事件输入字段。根据组件和事件操作命名的事件处理过程将在脚本中自动生成。如果在 Object Inspector面板中对事件进行重命名,则相应的代码过程也会相应重命名。

组件方法

有关组件可用方法的信息,请参阅组件类别文档。 Tool Palette组件可用方法的信息。

其中包括以下控制对象类别的参考信息。

  • 标准
  • 附加
  • Win32
  • 系统
  • 对话框
  • Altium 标准
  • 仪表控件

在大多数情况下,这些类别汇集了基于标准 Delphi-type VCL 组件的可视化窗体控件类型。Altium 标准和仪表控件类别是个例外,因为它们提供了 Altium Designer 脚本系统独有的组件。

► 参见 Tool Palette组件类别

使用表单和组件

自定义脚本表单

  • 例如,要使表单位于其他打开的面板之上,可将 FormStyle属性为 fsStayOnTop.
  • 要定义表单的默认行为,请将 FormKind设置为以下值之一; fkNone, fkNormal, fkServerPanelfkModal.
    • 如果 fkModal则表单将是一个模态表单。也就是说,表单在关闭表单等操作之前会等待用户输入。
    • 如果 fkServerPanel则表单将显示为服务器面板。
    • 如果 fkNormal则表单将作为正常的非模式表单运行。
  • 要添加/移除表单的滚动条,请更改 HorzScrollBarVertScrollBar属性的值。
  • 要使表单成为 MDI(多文档界面)框架或子框架,请使用 FormStyle属性。
  • 要更改表格的边框样式,请使用 BorderIconsBorderStyle属性。(结果在运行时可见)。
  • 要更改最小化表单的图标,请使用 Icon属性。
  • 要指定表单在应用程序窗口中的初始位置,请使用 Position属性。
  • 要指定表单的初始状态(例如,最小化、最大化或正常),请使用 WindowState属性。
  • 要在运行时定义表单的工作区域,请使用 ClientHeightClientWidth属性。请注意 ClientHeightClientWidth代表表格边框内的区域,而 HeightWidth则代表表单的整个区域。
  • 要在运行时指定哪个控件是表单中的初始焦点,可使用 ActiveControl属性从可用的组件中进行选择。
  • 要将所有键盘事件传递给表单,而不管所选控件是什么,请使用 KeyPreview属性。
  • 如果表单包含多个菜单,要指定特定菜单,请使用 Menu属性。

刷新表单和组件

在某些情况下,脚本表单的可视化方面可能会过时,例如,如果脚本的密集后台处理导致控件无法更新或重新绘制,从而出现冻结或损坏。

脚本窗体的 Update方法提供了一种刷新表单或特定控件图形内容的编程方法。在下面的代码示例中 Update方法代码行突出显示为灰色。

Using the Update method to refresh the Status Bar:

Procedure TConverterForm.loadbuttonClick(Sender: TObject);
Var
   I, J : Integer;
Begin
    If OpenPictureDialog1.Execute then
    Begin
        XPProgressBar1.Position := 0;
        XStatusBar1.SimpleText  := '  Loading...';
        XStatusBar1.Update;

        // loading a monochrome bitmap only
        Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

        // Check if image is monochrome, otherwise prompt a warning
        If Image1.Picture.Bitmap.PixelFormat > pf1bit Then
        Begin
            For J := 0 to Image1.Picture.Height – 1 Do
                For I := 0 to Image1.Picture.Height – 1 Do
            Begin
                If Image1.Canvas.Pixels[I,J] > clWhite Then
                    Image1.Canvas.Pixels[I,J] := clBlack;
            End;
        End;

        ScalingFactorChange(Nil);

        convertbutton.Enabled  := True;
        LoadButton.Enabled     := False;
        XStatusBar1.SimpleText := '  Ready...';
        XStatusBar1.Update;
    End;
End;

请参考 PCB Logo Creator脚本项目。 Scripts\Delphiscript Scripts\PCB\PCB Logo Creator文件夹中脚本项目。

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

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

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

旧版文档

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

Content