Тема: вопрос по acedDefun() и acedRegFunc

1. Можно ли для внешних функций приложения провести регистрацию acedRegFunc() в процессе обработки события kInitAppMsg, а не во время kLoadDwgMsg. Таким образом во время kLoadDwgMsg выполнять только acedDefun(). Трудно понять, зачем в каждом документе регистрируется одна и та же таблица соответствия  целочисленных ключей и адресов функций-обработчиков.

2. Можно ли вызывать эту пару функций вне события kLoadDwgMsg и если да, то верно ли предположение, что регистрируемая в этом случае функция будет доступна из текущего документа и только из него. Иными словами, можно ли часть внешних функций arx-приложения подгружать из lisp-программы позднее используя, скажем, нечто вроде (myapp-load-all).

Re: вопрос по acedDefun() и acedRegFunc

Пастух пишет:

1. Можно ли для внешних функций приложения провести регистрацию acedRegFunc() в процессе обработки события kInitAppMsg, а не во время kLoadDwgMsg.

Нет. Причина проста - в этот момент может быть не открыто ни одного документа.

Пастух пишет:

2. Можно ли вызывать эту пару функций вне события kLoadDwgMsg и если да, то верно ли предположение, что регистрируемая в этом случае функция будет доступна из текущего документа и только из него.

Да. Да. Да.

Re: вопрос по acedDefun() и acedRegFunc

Причина проста - в этот момент может быть не открыто ни одного документа.

А я то грешным делом предположил, что для регистрации документ не нужен. Ведь средствами acerRegFunc() регистрируется соответствие виртуальных адресов функций из dll(arx) и произвольных целочисленных ключей. Т.е таблица соответствия ключей и виртуальных адресов одна на всё приложение.
Зачем сделали так, что одно и то же необходимо регистрировать в каждом документе?

(изменено: Александр Ривилис, 17 ноября 2009г. 21:58:47)

Re: вопрос по acedDefun() и acedRegFunc

Пастух пишет:

Зачем сделали так, что одно и то же необходимо регистрировать в каждом документе?

Ну тут я могу только предполагать, что по аналогии с обычным lisp'ом, когда программу необходимо загружать в каждый документ, если не предпринять специальных действий. Кстати, возможно для понимания будет полезна вот эта тема.