Использование компонентов форм VBScript

Использование компонентов в формах VBScript

Хотя формы и компоненты основаны на библиотеке визуальных компонентов (VCL) Embarcadero Delphi™, в Altium Designer при использовании VBScript Tool Palette по-прежнему используется для размещения элементов управления на форме при использовании VBScript. Кроме того, обработчики событий генерируются, а код пишется на языке VBScript, независимо от того, что формы и компоненты в Altium Designer имеют корни в Delphi.

Обзор компонентов

Система скриптов поддерживает два типа компонентов: визуальные и невизуальные. Визуальные компоненты используются для построения пользовательского интерфейса, а невизуальные — для решения различных задач, таких как выполнение функций, предоставляемых Timer, OpenDialog и MainMenu . Например, невизуальный Timer используется для запуска определённого кода через заданные промежутки времени и никогда не отображается пользователю. Компонент Button, Edit и Memo — это визуальные компоненты; они видны пользователю.

Оба типа компонентов отображаются на этапе проектирования, но невизуальные компоненты не видны во время выполнения. Компоненты из панели Tool Palette панели являются объектно-ориентированными и имеют следующие три элемента:

  • Свойства
  • События
  • Методы

Характеристика property — это характеристика объекта, которая влияет либо на видимое поведение, либо на операции этого объекта. Например, Visible определяет, будет ли этот объект отображаться в форме скрипта.

Событие event — это действие или явление, обнаруживаемое скриптом. В скрипте программист пишет код для каждого обработчика событий, предназначенного для перехвата конкретного события, такого как щелчок мышью.

A method — это процедура, которая всегда связана с объектом и определяет поведение этого объекта.

Все формы скриптов содержат один или несколько компонентов. Компоненты обычно отображают информацию или позволяют пользователю выполнять какие-либо действия. Например, компонент «Label» используется для отображения статического текста, поле ввода «Edit» — для ввода пользователем данных, а кнопка «Button» — для запуска действий.

На форму можно разместить любую комбинацию компонентов, что позволяет пользователю взаимодействовать с ними во время выполнения скрипта (во время работы). Задача программиста скриптов — определить, что произойдет, когда пользователь нажмет кнопку или изменит текст в поле ввода.

Система скриптов предоставляет набор компонентов для создания простых или сложных пользовательских интерфейсов для скриптов. Все компоненты, которые можно разместить на форме, находятся на панели «Палитра инструментов».

Чтобы разместить компонент на форме, найдите его значок на 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 Пример, приведённый ниже, является более сложным. Его последующие методы используются для кнопок в форме скрипта. Методы скрипта приводят к закрытию диалогового окна, когда пользователь нажимает либо кнопку OK или Cancel , что вернет mrOk или mrCancel соответственно из метода 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 панели или вставьте 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 обработчике событий, то при нажатии на кнопку её обработчик событий перехватывает событие on-click, и выполняется код, содержащийся внутри этого обработчика. То есть Close метод закрывает форму скрипта.

Таким образом, обработчик события создаётся в скрипте путём выбора компонента на форме или с помощью Object Inspector панели, а затем двойного щелчка справа от нужного события (например, OnClick) на вкладке Events — в скрипте появится соответствующий каркас кода.

Кроме того, при двойном щелчке по кнопке система скриптов добавит обработчик для OnClick событие. У других типов компонентов будут совершенно другие действия по умолчанию.

Методы компонентов

Список методов компонента см. в справочнике по компонентам, а более подробную информацию — в документации по Embarcadero Delphi.

Создание компонентов во время выполнения

Компоненты можно напрямую создавать и уничтожать в скрипте. Обычно нет необходимости передавать дескриптор формы, так как скрипт-форма сама автоматически об этом позаботится — вместо этого передайте Nil параметр в конструктор компонента.

Например, Open и Save диалоговые окна можно создавать и уничтожать ( TOpenDialog и TSaveDialog классы, входящие в состав RTL Delphi).

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Доступность функций

Доступные вам функции зависят от того, какое решение Altium вы используете: Altium Develop, Altium Agile Teams, Altium Agile Enterprise или Altium Designer (при активной подписке).

Если вы не видите описанную функцию в используемом вами программном обеспечении, свяжитесь с отделом продаж Altium, чтобы узнать больше.

Устаревшая документация

Документация Altium Designer больше не разделена по версиям ПО. Если вам необходим доступ к документации по старым версиям Altium Designer, посетите раздел Устаревшая документация на странице Прочие установщики.

Content