• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Автоматичский запуск логики библиотеки в LIBRARYENTRY

Автор SerGoVec, 18.09.15, 14:58:43

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

SerGoVec

Всем привет!
Хочу слелать так: при подключении самописной библиотеки начинала сразу же действовать логика библиотеки без выбора свойств библиотеки в менеджере библиотек или нажатий на кнопки в инструментальной панели. На сколько я понял системная процедура procedure LIBRARYENTRY(comm: WORD); pascal; ждет нажатия (выбора) соответствующего свойства, а как можно выполнять логику без выбора ??


SerGoVec

Спасибо!
Перефразирую вопрос: как подписаться на событие Компаса при загрузке библиотеки?
Код в LIBRARYENTRY исполняется при выборе команды.


SerGoVec

Если кому интересно, автоподключение логики библиотеки (то есть при старте компаса и подключении библиотеки) будет сразу же выполняться логика библиотеки без (предварительного выбора пользователем в менеджере библиотек - отвечает системная функция procedure LIBRARYENTRY(comm: WORD); pascal;)) осуществляется системной функцией LibInterfaceNotifyEntry.

Например:

function LibInterfaceNotifyEntry(myDispatch:IDispatch):Integer; stdcall;
begin
  if (cBaseEvent.FindEvents(ntKompasObjectNotify, 0, -1, nil)) = nil then
    MyApplicationEvents := NewApplicationEvent;
end;

где:
myDispatch - это просто произвольное название переменной;
cBaseEvent - это класс, взятый из cVaseEvents.pas (из SDK компаса, EventsCom)
NewApplicationEvent - метод класса ApplicationEvents из ApplicationEvents.pas (из SDK компаса, EventsCom)

В данной функции производится подписка на события и получается указатель на API приложения, в зависимости от функции LibIsOnApplication7 - задать тип версии API, используемого библиотекой.
PS. Есть ещё куча функций которые выполняются при подключении библиотеки.

SerGoVec

Да, это я понял, спасибо). Сейчас еще не корректно ставлю вопросы, опыта мало.