– для первого типа: GetFormHandleNN;
– для второго типа: GetFormNN;
где NN –порядковый номер (число, количество знаков произвольно, без ведущих нулей).
Возврат дескриптора окна предусматривается для совместимости с Visual C++ и MFC (посредством методов Attach/Detach класса CWindow), а также для иных случаев, когда работа непосредственно с дескрипторам является единственно возможной.
Для приложений, реализованных на Delphi, используется функция, возвращающая созданную форму. Каждая такая форма должна являться наследником базового абстрактного класса, являющегося общим для всех библиотечных форм в составе АСУ-Ш-2 и включающего максимальный набор методов и свойств, которые могут быть реализованы в такой форме. Реализация всех методов в наследнике не является обязательной. Допускается существование более чем одного базового класса для библиотечных форм, однако общее их количество должно быть минимальным.
Библиотека должна учитывать возможность повторного входа в любую экспортируемую функцию.
Документируются методы и свойства базового класса (классов). Для каждого модуля документируются экспортируемые функции, для каждой формы, которая может быть возвращена в приложение, указываются реализованные методы.
В виде сервера автоматизации (exe). В таком виде реализуются модули, для которых может иметь смысл автономный запуск в качестве приложения. Для обеспечения возможности обращения из других приложений модуль должен быть реализован как автоматный OLE-сервер с набором свойств и методов, позволяющим реализовать программный интерфейс с вызывающим приложением. Минимальный набор свойств и методов приведен в таблице 13.
Таблица 13
Имя |
Тип |
Доступ |
Описание |
ApplicationИмя_ |
Idispatch |
R |
Приложение |
Caption |
WideString |
RW |
Заголовок главного окна |
Handle |
Ole_Handle |
R |
Дескриптор окна главной формы |
Top |
Integer |
RW |
Вертикальная позиция левого верхнего угла главного окна |
Left |
Integer |
RW |
Горизонтальная позиция левого верхнего угла главного окна |
Height |
Integer |
RW |
Высота главного окна |
Width |
Integer |
RW |
Ширина главного окна |
Visible |
WordBool |
RW |
Видимость главного окна |
Name |
WideString |
R |
Описание версии приложения |
Quit |
Метод |
Выход с отключением всех клиентов |
|
Имя_формы |
WordBool |
RW |
Признак разрешения показа конкретной формы |
StatusEnabled |
WordBool |
RW |
Признак разрешения показа строки состояния |
HintEnabled |
WordBool |
RW |
Признак разрешения показа подсказок |
FlatButtonEnabled |
WordBool |
RW |
Признак разрешения плоских кнопок |
STARTFORM |
Integer |
W |
Идентификатор автоматически стартующей формы |
Документируются свойства и методы автоматного сервера.
В виде сервера приложений (exe). В таком виде могут быть реализованы приложения, работающие, как правило, в течение всего времени работы ПЭВМ и обслуживающие запросы других приложений по выполнению каких-либо действий, либо предоставляющие информацию одному и более приложениям как по запросу, так и без специального запроса от них. Сервер приложений может обслуживать приложения, работающие на других рабочих станциях локальной сети. Этот пункт не относится к серверам приложений, являющимся автоматными OLE-серверами.
Сервер приложений должен быть рассчитан на работу в реальном времени при минимальном использовании ресурсов ПЭВМ. Непосредственный вызов сервера приложений, как правило, не производится.
Документируются имя и класс главного окна сервера приложений и способ запроса и получения информации от него.
Передача данных между приложением и модулем в большинстве случаев может быть осуществлена стандартными способами через передачу параметров функции (методу класса) и получение возвращаемого значения либо значения в выходном параметре, а также через обращение к общим свойствам класса или автоматного сервера.
Эти способы могут оказаться непригодными при передаче больших объемов информации, а также при обмене командами или данными с сервером приложений, не являющимся OLE-сервером. В таких случаях рекомендуется использование одного из следующих способов.
Обмен сообщениями Windows. Способ применим для сервера приложений, работающего на той же ПЭВМ, для передачи команд или для передачи и приема небольших объемов информации.
Для передачи команд и определения уникального сообщения для всей операционной системы применяется функция RegisterWindowMessage с параметром ('WM_User+512'). Для идентификации окон, на которые посылается сообщение, используется слово данных пользователя USERDATA = 512 (устанавливается функцией SetWindowLong через параметр nIndex= GWL_USERDATA.
Сообщения отправляются функцией PostMessage со следующими параметрами:
Msg = RegisterWindowMessage('WM_User+512')
wParam = константа идентифицирующая сообщение
lParam = параметр сообщения (необязателный)
Для обеспечения обновления информации в запущенных приложениях, главному окну приложения рекомендуется обрабатывать поступающие Win – сообщения АСУ-Ш-2, зарегистрированные RegisterWindowMessage('WM_User+512') и анализировать параметры wParam и lParam.
Для обмена информацией используются сообщения WM_COPYDATA. Документируются используемые сообщения и структура данных, передаваемых через сообщение WM_COPYDATA.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.