All Forums
 Категория Visio
 Форум Вопросы и ответы
 Определение изменения положения перетаскивания
Author Previous Topic Topic Next Topic  

mishgam

Russia
2 Posts

Posted - 10/04/2007 :  08:48:28
Суть вопроса
Шейп А находится поверх Шейпа B. При перетаскивании шейпа A на шейп C необходимо создать новый шейп типа А.мастер и нарисовать динамический коннектор между ними типа Стенсил.КоннекторА.

Tumanov

Russia
1198 Posts

Posted - 10/04/2007 :  16:12:44
А в чем вопрос - какое событие обрабатывать или как вообще подступиться?
Событие наверное CellChanged или FormulaChanged. Это если Вам обязательно надо шейп перетаскивать. А если можно его дублировать (старый шейп остается на месте), то может лучше воспользоваться ShapeAdded - меньше фильтров ставить надо.
Можно представить и другой вариант - перетаскивать не весь шейп, а только управляющую точку от него. Тогда вообще все удобства. Вы получите и координаты управляющей точки (где надо нарисовать новый шейп) и старый шейп останется на месте (вычислите его координаты, сможете определить, кто под ним, а потом сотрете).
А для определения события, к которому надо цепляться, удобно использовать EventMonitor (из состава Visio SDK). Запускаете его и смотрите, какие события происходят в Visio при нужном действии оператора.
Go to Top of Page

mishgam

Russia
2 Posts

Posted - 10/04/2007 :  20:07:11
quote:
Originally posted by Tumanov

Можно представить и другой вариант - перетаскивать не весь шейп, а только управляющую точку от него. Тогда вообще все удобства. Вы получите и координаты управляющей точки (где надо нарисовать новый шейп) и старый шейп останется на месте (вычислите его координаты, сможете определить, кто под ним, а потом сотрете).

Спасибо, такой вариант я почему-то не предусмотрел, а можно поподробнее про управляющую точку? Вопрос в следующем, можно ли по собитию в ShapeSheet назвачать выполнение макроса с параметром, какой шейп вызвал событие так, как например в Document_ShapeAdded?

Edited by - mishgam on 10/04/2007 20:08:01
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/05/2007 :  15:24:20
Вызывайте макрос через CallThis. При этом ссылка на шейп передается автоматически.
Управляющая точка - это такая желтенькая штучка, которая используется для ручного управления некоторыми шейпами.
Выполните в шейп-листе Insert Section / Controls и Вы ее увидите. По умолчанию появляется в левом нижнем углу шейпа.
К ней, например, часто привязывают надписи от шейпов (чтобы их можно было свободно перетаскивать).
Go to Top of Page

sars

17 Posts

Posted - 05/30/2008 :  09:19:06
А как привязать надпись к точке управления?
Go to Top of Page

sars

17 Posts

Posted - 05/30/2008 :  13:51:21
Предыдущий вопрос снимается. Разобрался :)

Другой вопрос:
Можно ли фигуре назначить два тестовых поля и каждое тестовое поле перемещать с помощью точки/маркера управления?

Создать несолько точек/маркеров управления не проблема, а вот как добавить второе тестовое поле не знаю :( Может кто подскажет?
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)