Форум пользователей Visio
http://visio.getbb.ru/

Ячейка для ConnectFrom, ConnectTo
http://visio.getbb.ru/viewtopic.php?f=5&t=1138
Страница 1 из 1

Автор:  powercat [ 13 июн 2017, 14:14 ]
Заголовок сообщения:  Ячейка для ConnectFrom, ConnectTo

Привет.
Я тут задавал вопрос - сидят ли в шейпшите все свойства шейпа, и мне ответили, что да, сидят.
Но разве там не должны быть также и ConnectFrom и ConnectTo и все остальные свойства, используемые в VBA?
Если должны, то плз подскажите, как их увидеть, а то я что-то не нашел их :roll:

Автор:  Shishok [ 13 июн 2017, 14:51 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Цитата:
Но разве там не должны быть также и ConnectFrom и ConnectTo и все остальные свойства, используемые в VBA?

Этих свойств там нет. И ряда других тоже. :cry:

Автор:  powercat [ 13 июн 2017, 14:53 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Блин...а как тогда быть...
Вот я хочу начать писать программу (вообразим, что я ранее этого не делал) - и шо, шо делать-то то? Смотрю объектную модель, тыкаю в ссылки, читаю МСДНскую какашку...но нечего нужного мне нет...

Автор:  Tumanov [ 13 июн 2017, 15:04 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Visio отдельно хранит "шейпы" и "соединения". Поэтому то, к чему присоединен шейп - это не свойство шейпа. Хотя и доступно в несколько действий (в VBA).
Сначала выбираются "соединения" для нужного шейпа. Потом, как свойство "соединения", выбираются присоединенные шейпы (от кого, куда, к какому месту...).
И в MSDN это, естественно, написано.

Автор:  powercat [ 13 июн 2017, 17:27 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

А коннекшн пойнты...они вообще участвуют в работе или они нужны только чтобы прицепиться? Т.е. можно ли узнать, к какому конекшн пойнту шейпа прицеплена линия?

Автор:  Tumanov [ 13 июн 2017, 17:40 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Можно. Смотрите Connect.ToPart Property

Автор:  powercat [ 13 июн 2017, 17:46 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Благодарю

Автор:  powercat [ 13 июн 2017, 18:43 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Tumanov писал(а):
Можно. Смотрите Connect.ToPart Property


Странно...выдает какие-то номера конекшн пойнтов, а не названия, которые я им дал...

Автор:  Shishok [ 13 июн 2017, 20:22 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Чтобы получить названия конекшн пойнтов надо как то так:
Код:
Public Sub ToPart_Name_Example()

Dim vsoShape As Visio.Shape, vsoConnectTo As Visio.Shape
Dim vsoConnects As Visio.Connects, vsoConnect As Visio.Connect
Dim intCounter As Integer, intToData As Integer

Set vsoShape = ActiveWindow.Selection.PrimaryItem
Set vsoConnects = vsoShape.Connects

For intCounter = 1 To vsoConnects.Count

    Set vsoConnect = vsoConnects(intCounter)
    Set vsoConnectTo = vsoConnect.ToSheet
    intToData = vsoConnect.ToPart

    Debug.Print vsoConnectTo.CellsSRC(visSectionConnectionPts, intToData - 100, visCnnctX).RowName
Next intCounter

End Sub

Автор:  powercat [ 14 июн 2017, 10:07 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Shishok писал(а):
Чтобы получить названия конекшн пойнтов надо как то так:
Код:
Public Sub ToPart_Name_Example()

Dim vsoShape As Visio.Shape, vsoConnectTo As Visio.Shape
Dim vsoConnects As Visio.Connects, vsoConnect As Visio.Connect
Dim intCounter As Integer, intToData As Integer

Set vsoShape = ActiveWindow.Selection.PrimaryItem
Set vsoConnects = vsoShape.Connects

For intCounter = 1 To vsoConnects.Count

    Set vsoConnect = vsoConnects(intCounter)
    Set vsoConnectTo = vsoConnect.ToSheet
    intToData = vsoConnect.ToPart

    Debug.Print vsoConnectTo.CellsSRC(visSectionConnectionPts, intToData - 100, visCnnctX).RowName
Next intCounter

End Sub

Благодарю.
Но это для коннекшена код, т.к. узнать, к чему прицеплена линия. А как НЕ для линии это сделать, т.е. немного обратная задача - узнать, к какому конекшнпойнту фигуры прицеплена линия с именем/ID/идентификатором каким-то?

Автор:  Tumanov [ 14 июн 2017, 10:16 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Для обратной задачи вместо коллекции Connects используется коллекция FromConnects.
Остальное точно так же. Коллекция состоит из точно таких же Connect с теми же свойствами.

Автор:  powercat [ 14 июн 2017, 15:49 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Вот я решил разобраться со всеми свойствами...Начал с FromCell
Написал пример, как в МСДН. Возвращаются названия BeginX и EndX...не понимаю, что это значит... :wall:
Код:
Sub FromCell_Example()
          Dim i As Long
         
          '--Go through the all shapes--'
          Dim numberOfShapes As Long
          numberOfShapes = ActivePage.Shapes.Count '--Number of shapes on the page--'
          Dim localShape As Visio.Shape
          For i = 1 To numberOfShapes
                    Set localShape = ActivePage.Shapes(i) '--Not necesseary, can use just ActivePage.Shapes(i)--'
                    Dim x As Long
                    '--Go through the all connects on the shape--'
                    For x = 1 To localShape.Connects.Count
                              Debug.Print "From " & localShape.Connects(x).FromCell.Name
                    Next x
          Next i
End Sub


Для чего это нужно?

Автор:  Tumanov [ 14 июн 2017, 16:02 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

Чтобы понять, чем присоединена линия - началом или концом.
Кому-нибудь это бывает очень нужно.

Автор:  powercat [ 14 июн 2017, 16:09 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

а почему возвращается не имя конекшнпойнта, а что-то невразумительное?

Автор:  Surrogate [ 14 июн 2017, 16:18 ]
Заголовок сообщения:  Re: Ячейка для ConnectFrom, ConnectTo

powercat писал(а):
а почему возвращается не имя конекшнпойнта, а что-то невразумительное?
каков вопрос - таков и ответ.
David J Parker Getting the Name of Glued Connection Points писал(а):
A Visio developer asked me if it is possible to get the name of connection points that a connector is glued to in Visio. Well, it is not possible directly from the ShapeSheet, but is easy if you use a little code.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/