Объект Application

Объект Application является главным объектом приложения и выполняет следующие функции:

  1. Содержит информацию о библиотеках приложения - их список и расположение в файловой системе.
  2. Содержит информацию о настройках приложения.
  3. Содержит список глобальных переменных приложения.
  4. Содержит скрипт, инициирующий работу приложения.

Откройте объект rad из библиотеки rad.pbl, воспользовавшись окном Library. В заголовке окна вы увидите надпись - "Application - rad inherited from application", т.е. этот объект является потомком стандартного объекта application языка PowerScript.

Свойства объекта

Откройте окно Properties художника Application, если оно не открыто. Закладки окна Properties содержат настройки для визуального отображения приложения. Нажмите кнопку Additional properties. Будет открыто окно Application со свойствами объекта.

Закладки Text Font, Column Font, Header Font, Label Font содержат настройки шрифтов по умолчанию для создаваемых в приложении объектов.

Закладка Icon задает иконку, которая будет отображаться как иконка приложения.

Закладка Variable Types содержит типы объектов, используемых в приложении по умолчанию. В этой закладке вы можете изменить типы объектов, как об этом говорилось при обсуждении объекта Transaction. Кроме объекта SQLCA важными являются объекты error и message.

Объект error содержит информацию об ошибках, возникших в результате работы скриптов приложения. С помощью этого объекта можно получить текст скрипта, вызвавшего ошибку. При использовании стандартного объекта error после возникновения системной ошибки, приложение выдает сообщение об ошибке, после чего закрывается.

Объект message для передачи параметров между объектами PowerBuilder, кроме объекта function. Стандартный объект message содержит всего несколько типов переменных, которые вы можете передавать в качестве параметра:

  • WordParm - тип Long.
  • LongParm - тип Long.
  • DoubleParm - тип Double.
  • PowerObjectParm - тип PowerObject. Используется для передачи любого объекта PowerBuilder (структура, окно, пользовательский объект и т.п.).

Вы можете использовать собственный объект вместо стандартного объекта message для повышения его функциональности в случае необходимости.

Событие Open

Художник Start Wizard создал скрипт события Open объекта Application следующего содержания:

n_rad_connectservice lnv_connectserv
this.ToolBarFrameTitle = "MDI Application Toolbar"
this.ToolBarSheetTitle = "MDI Application Toolbar"
lnv_connectserv = Create using "n_rad_connectservice"
If lnv_connectserv.of_ConnectDB ( ) = 0 Then
	Open ( w_rad_frame )
End if
Destroy lnv_connectserv

В данном скрипте выполняются слудующие действия:

  1. Объявляется пользовательский невизуальный объект n_rad_connectservice, который будет использоваться для установления связи с базой данных.
  2. Устанавливается наименование панели инструментов главного окна приложения.
  3. Устанавливается наименование панели инструментов стандартного окна приложения.
  4. Создается пользлвательский невизуальный объект типа n_rad_connectservice.
  5. Вызывается метод of_ConnectDB() пользовательского невизуального объекта типа n_rad_connectservice для установки связи с базой данных.

  6. В случае успешной установки связи с базой данных открывается главное окно приложения.
  7. Разрушается пользовательский невизуальный объект.

Событие Close

Художник Start Wizard создал скрипт события Close объекта Application следующего содержания:

n_rad_connectservice lnv_connectserv
lnv_connectserv = Create using "n_rad_connectservice"
lnv_connectserv.of_DisconnectDB ( )
Destroy lnv_connectserv

В данном скрипте выполняются следующие действия:

  1. Объявляется пользовательский невизуальный объект n_rad_connectservice, который будет использоваться для установления связи с базой данных. Объект объявлен локально в теле скрипта, т.е. он может быть использован только в теле данного скрипта.
  2. Создается пользовательский невизуальный объект типа n_rad_connectservice.
  3. Вызывается метод of_DisconnectDB() пользовательского невизуального объекта типа n_rad_connectservice для разрыва соединения с базой данных.
  4. Разрушается пользовательский невизуальный объект. Объект был создан явно при помощи оператора Create, поэтому он должен быть явно уничтожен после окончания работы, в противном случае выделенная под него память освобождена не будет.