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

vis

47 Posts

Posted - 12/03/2009 :  12:10:06
Добрый день. Точно помню, что где-то уже видел подобное, но перелазил весь форум и не смог найти...
Задача - имеем большой лист, на котором большое количество шейпов (несколько тысяч), нужно по факту выполнения какого-то события "сфокусироваться" на определенном шейпе, т.е. получить его в центре экрана и желательно получить его выделенным.

Tumanov

Russia
1198 Posts

Posted - 12/03/2009 :  16:00:25
Принцип примерно такой:
Sub ttt()
    Dim sh As Visio.Shape
    Set sh = ActivePage.Shapes(3)
    ActiveWindow.DeselectAll
    ActiveWindow.Select sh, visSelect
    xPos = sh.Cells("PinX").ResultIU
    yPos = sh.Cells("PinY").ResultIU
    ActiveWindow.SetViewRect xPos - 2, yPos + 2, 4, 4
End Sub
Go to Top of Page

vis

47 Posts

Posted - 12/04/2009 :  07:24:26
Спасибо. Все работает. Нашел кстати аналогичную тему и там опять-таки через координаты шейпа все сделано.
А есть другие способы?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 12/04/2009 :  15:26:23
Да скорее всего нет...
Вроде управление через область окна самое естественное решение.
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)