Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 03:24

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 17:06 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
У меня есть ссылка на групповую фигуру. Что делать если Пользователь разгруппировал фигуру? Моя ссылка не равна null, но и фигуры уже нет.

Как понять что ссылка ссылается на существующую фигуру? И сней можно работать?

Нашёл что-то вроде Marshal.IsComObject() Но не знаю, как это сюда прикрутить.
VSTO c#


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 18:03 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Dubsage писал(а):
У меня есть ссылка на групповую фигуру
а как вы на нее ссылаетесь: по имени или по ID ?

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 18:36 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Лучше храни ID фигуры, а не ссылку на нее. Меньше проблем.
Вообще скорее всего будет тупо исключение когда ты попытаешься к этой фигуре обратиться.

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 18:45 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
nbelyh писал(а):
Лучше храни ID фигуры
смотря какая версия Visio.
до версии 2013 в случае разгруппировки/удаленния фигур и последующего добавления новых.
новые фигуры могут получить ID не существующих уже фигур

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 18:52 
Не в сети
Ветеран

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

Добавить очки репутацииУменьшить очки репутации
Можно подписаться на события удаления шейпов. Ну и в своей надстройке обрабатывать, помечая, что шейп удален уже, обнуляя ссылку.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 19:29 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Dubsage писал(а):
У меня есть ссылка на групповую фигуру
а как вы на нее ссылаетесь: по имени или по ID ?
На прямую.
Код:
Shape shape = real_shape;


9rey писал(а):
Можно подписаться на события удаления шейпов. Ну и в своей надстройке обрабатывать, помечая, что шейп удален уже, обнуляя ссылку.

Пожалуй так и сделаю.

nbelyh писал(а):
Лучше храни ID фигуры, а не ссылку на нее. Меньше проблем.
Вообще скорее всего будет тупо исключение когда ты попытаешься к этой фигуре обратиться.

Если обращаюсь по не существующему ID, то вызывается исключение.

Сейчас просто делаю манипуляции над фигурой, и если вызывается ошибка, значит фигуры нет. Нет особо большого смысла обращаться по ID. Раз это всё равно вызывает ошибку. Но могут возникнуть коллизии. Да и медленнее это вероятно.

Подпишусь на удаление, поживу с этим, посмотрю. Спасибо!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как понять что ссылка ссылается на существующую фигуру?
СообщениеДобавлено: 26 мар 2021, 22:01 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
9rey писал(а):
Можно подписаться на события удаления шейпов. Ну и в своей надстройке обрабатывать, помечая, что шейп удален уже, обнуляя ссылку.

Да это замечательно работает. Но как же много надо делать для, казалось бы, простых задач. =)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB