Тема: Выбор события для определения окончания выбора объектов

В АвтоКАД-е я даже не чайник, а даже ещё хуже, потому и возник такой вопрос..
В общем, ситуация следующая. Мне нужно определиться, какой из эвентов tAcadDocument лучше использовать, что бы понять, что пользователь закончил выбор и я могу теперь работать с выбранными объектами?
onSelectionChanged не подходит - пользователь может несколько раз выбирать объекты..
onBeginDocClose - документ мог быть уже открыт и не хочется заставлять пользователя его закрывать. Конечно, я просто обязан обработать это событие, но если оно не произойдёт?
onBeginDoubleClick? Тоже как-то странно, АвтоКАД что-то сам при этом делает..
onBeginShortcutMenuSSSS - вообще не знаю, что это такое и как в него попасть..
onBeginRightClick? Тоже самое, как же тогда переназначить всплывающее меню на то, в котором было бы написано, например, "Вернуться в программу"?
В общем, у меня с этим совсем всё плохо.. :(

Re: Выбор события для определения окончания выбора объектов

> Феликс
Ну допустим пользователь выбрал объекты. А что ты после этого собираешься делать? Может быть наоборот ты должен попросить пользователя выбрать объекты, а уже затем выполнять нужные действия?

Re: Выбор события для определения окончания выбора объектов

Ну да, именно так. Мне надо эти объекты импортировать в мою программу через wmf-файл.
То есть, что я делаю.. Пользователь выбирает dwg-файл, из которого надо выбрать данные. Я запускаю АвтоКАД, либо присоединяюсь к уже запущенному. Просматриваю список открытых документов и если не нахожу указанного файла, открываю его. А вот теперь мне нужно дождаться некоего события, что бы понять, что пользователь определился с выбором и начать экспорт-импорт. А потом закрыть документ, если его не было в списке открытых и закрыть АвтоКАД, если он не был запущен. Примерно так..

Re: Выбор события для определения окончания выбора объектов

> Феликс
Тебе не нужно "дожидаться события". Попроси пользователя выбрать объекты.
Например при помощи метода SelectOnScreen

Re: Выбор события для определения окончания выбора объектов

Ну хорошо, но когда пользователь закончит выбор-то? Что-то я не понимаю..

Re: Выбор события для определения окончания выбора объектов

> Феликс
Когда пользователь закончит выбор метод SelectOnScreen завершит свою работу и ты сможешь узнать что он выбрал из SelectionSet.
Задай посик по этому сайту по ключевому слову и найдешь кучу примеров.

Re: Выбор события для определения окончания выбора объектов

P.S.: А по существу вопроса если говорить о предварительном выборе (т.е. том, который происходит до запуска любой команды), то понять когда пользователь закончил выбор нельзя. Пользователь может выбрать несколько объектов, потом подумать и еще что-то выбрать и т.д. Поэтому нужно "сказать" пользователю, чтобы он выбрал объекты и запросить у него выбор объектов а потом уже с ними выполнять необходимые действия.

Re: Выбор события для определения окончания выбора объектов

Ну да, в том то и дело! Потому я и не хочу садиться на onSelectionChanged, хотя могу, конечно, импортировать объекты каждый раз, когда возникает это событие. Но если АвтоКАД запустил программно я, а не пользователь, то мне и надо его закрывать.
А с AcadSelectionSet у меня никаких проблем нет и вообще всё работает. Просто надо сделать "красиво". ;)

Re: Выбор события для определения окончания выбора объектов

> Феликс
Чтобы было "красиво" (в твоем понимании) тебе нужно написать свою команду/функцию (например на arx/lisp), заставить пользователя после выбора всех объектов запустить эту команду/функцию и отследить BeginCommand или BeginLISP. А надо ли это?

Re: Выбор события для определения окончания выбора объектов

Это ты правильно заметил.. Тем более, что я и написать-то ничего не смогу. Мало того, очень сильно сомневаюсь, что смогу правильно инсталировать это дело на машину пользователя, а продукт "коробочный". Ладно, хватит на сегодня работать, пойдём уже "отмечаться". ;)