GraphWorX (VBA и полосы прокрутки) |
Ответить |
Автор | |
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
Опубликовано: 29 Апрель 2010 13:42 |
Добрый день! Работаю с GraphWorX. Хочу с помощью скрипта VBA отображать/скрывать горизонтальную и вертикальную полосы прокрутки окна по определенному событию. У компонента GWXView32 есть такие свойства как HorizontalScrollbar и VerticalScrollbar. Но я не знаю, как получить указатель на компонент GWXView32, чтобы управлять его свойствами. Как получить указатель на GWXView32 в скрипте VBA? |
|
Новичок Присоединился: 04 Февраль 2009 Online Status: Offline Публикации: 26 |
|
Как вариант, на экране можно создать кнопку, отображающую/скрывающую полосы прокрутки (есть в стандартных действиях меню), а в скрипте VBA управлять этой кнопкой.
|
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
я не нашел в стандартных действиях меню пункта с возможностью отображения/скрывания полос прокруток. Где это? Расскажите об этом подробнее, пожалуйста.
|
|
Новичок Присоединился: 04 Февраль 2009 Online Status: Offline Публикации: 26 |
|
Под рукой нет локализованной версии, так что все по английски: Нужно создать на экране кнопку. В свойствах кнопки на вкладке "Pick": Action: Runtime Menu Mouse: Left Button Select Action: View - Togle Scrollbars (или Horizontal Scrollbar, Vertical Scrollbar) Object Name: ScrollHideButton ///////// VBA: Dim objScrollHide As GwxPick Set objScrollHide = ThisDisplay.GetDynamicObjectFromName("ScrollHideButton") objScrollHide.SimulateClick MouseButtonLeft /////////
|
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
Все работает. Такой вариант вполне устраивает меня. Спасибо. |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
Все же вопрос остается актуальным
Внутри экрана display1.gdf я добавляю компонент GWXView32. В свойствах компонента GWXView32 указываю имя экрана "display2.gdf". Беда в том, что display2.gdf обязательно должен быть без поддержки VBA. Вышеописанное решение с кнопкой подойдет для display1.gdf, но мне нужно управлять прокруткой экрана display2.gdf.
Поэтому получается следующее: нужно в скрипте экрана display1.gdf получить указатель на компонент GWXView32 и затем включать/отключать его полосы прокрутки.
Как получить указатель на GWXView32 в скрипте VBA? |
|
Действительный член Присоединился: 28 Февраль 2007 Категория: Russian Federation Online Status: Offline Публикации: 212 |
|
Под конец рабочего дня(недели) наступило озарение: Ка только я добавил компонент GWXView32 на экран display1.gdf, то сразу в редакторе VBA (alt+F11) появился новый объект GWXview321.
С ним и надо было работать:
Private Sub GWXview321_DisplayMouseDblClick(ByVal Button As Long, ByVal Shift As Long, ByVal X As Single, ByVal Y As Single, CancelProcessing As Variant) If GWXview321.HorizontalScrollbar = True Then GWXview321.HorizontalScrollbar = False Else GWXview321.HorizontalScrollbar = True End If If GWXview321.VerticalScrollbar = False Then GWXview321.VerticalScrollbar = True Else GWXview321.VerticalScrollbar = False End If End Sub
Плюс к этому в свойствах добавленного на экран компонента GWXView32 нужно поставить галочку напротив пункта "override scrollbar settings"
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |