ObjectARX, AutoCAD. Среда программирования библиотеки C++



         

Много-документные команды - часть 2


virtual Acad::ErrorStatus

sendStringToExecute(

AcApDocument* pAcTargetDocument,

const char * pszExecute,

bool bActivate = true,

bool bWrapUpInactiveDoc = false) = 0;

Эта функция стоит в очереди строка, которую нужно интерпретировать следующий раз,  указанный документ активизирован. Строка должна типично быть обращение команды (мы назовем это вторичной командой), но можем также быть выражение AutoLISP, фрагмент команды, или лексема меню. Строковый предел - 296 байтов, так что более длинные последовательности должны быть осуществлены как команда SCRIPT, выполняющая временный сценарий, или как выражение AutoLISP, чтобы загружать и выполнить программу AutoLISP. Новый документ будет блокирован согласно уровню блокировок новой команды как определено в течение его регистрации.

Если входная подсказка в начальных взглядах команды тот же самый как первая подсказка во вторичной команде, пользователь нуждается не,  знают, что две отдельных команды имеют место.

ОБРАТИТЕ ВНИМАНИЕ, поскольку эта методика вовлекает запрос от documentActivated () метод, Вы должны передать kFalse в bActivate параметр, чтобы избежать ошибок или бесконечных циклов.

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

Когда команда много-документа заканчивает, приложение управления должно убедиться, что  команда не оставила никакие ждущие обработки состояния команды в предыдущих документах. Приложение может делать это,  посылая ESC или ВВОДИТЬ в документы, которые это пересекло через, используя bWrapUpInactiveDoc параметр sendStringToExecute (). Если это не сделано, документы могут быть оставлены в не-статическом состоянии.

Координация между начальной командой и вторичной командой (и возможно множественные обращения этого) должна управляться через статический или переменные резидента динамическая.




Содержание  Назад  Вперед