All Forums
 Категория Visio
 Форум Вопросы и ответы
 Комната компьютер Shapes
Author Previous Topic Topic Next Topic  

ART_TIM

Russia
1 Posts

Posted - 12/09/2009 :  08:15:39
Построил сеть: Есть схема кабинетов и естественно сети хотелось бы создать базу данных которая контролировала перемещение компьютеров между кабинетами ... вопрос
Есть ли возможность определить попадание компьютера в комнату при перетаскивании? Причем кабинет может иметь любую форму

Tumanov

Russia
1198 Posts

Posted - 12/09/2009 :  15:58:33
Возможность есть.
Один из вариантов - накрыть каждое помещение соответствующим шейпом, а потом отслеживать совмещение такого шейпа "пространство" с шайпами "компьютер".
Перекрытие шейпов определяется функцией SpatialNeighbors. Примерно так:
'Set tolerance argument
intTolerance = 0.25
'Set Spatial Relation argument
intSpatialRelation = visSpatialContainedIn
'Get the set of spatially related shapes
'that meet the criteria set by the arguments.
Set vsoReturnedSelection = Shape.SpatialNeighbors _
(intSpatialRelation, intTolerance, 0)
Один шейп берется в качестве исходного, а функция возвращает коллекцию шейпов, перекрывающихся с ним.
Шейп "помещение" можно поместить на самый задний план и даже сделать невидимым, чтобы он не портил изображение.
Собственно перетаскивание можно ловить обработчиком события перемещения шейпов. Перетаскиваемый шейп будет передан к него в качестве параметра.
А можно и по нажатию кнопки запустить макрос, который обойдет все "помещения" и соберет для каждого из них шейпы "компьютер".
Могут быть и другие варианты. Например, поставить в каждом помещении Connection Point, а на шейпе управляющую точку. Если после перемещения шейпа делать еще одно лишнее движение - перетащить управляющую точку на Connection Point помещения, то потом шейпы, принадлежащие помещению можно собрать, анализируя соединения.
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)