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

Форум по вопросам применения и программирования в Visio
Текущее время: 25 янв 2020, 21:53

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 18:32 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3750
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
Вы можете скинуть vss с рабочим эвентом CALLTHIS
выше ссылку давал
TheHeat писал(а):
забыл ссылку добавить !
там она правда не на двойном клике сидит, а на щелчке по контекстному меню.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 05 апр 2019, 23:21 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 515
Использую Visio c: 2008
Очков репутации: 105

Добавить очки репутацииУменьшить очки репутации
Замени это:
Код:
CALLTHIS("Module1.SetToolTip","v400")
на это:
Код:
RUNMACRO("Module1.SetToolTip","v400")


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 06 апр 2019, 08:16 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3750
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
Shishok писал(а):
Код:
RUNMACRO("Module1.SetToolTip","v400")
да, так конечно работает. с тем кодом, что размещен в приложенном файле.
теперь о том, почему не срабатывал CALLTHIS ! я не очень четко сформулировал мысль
Surrogate в сообщении #13178 писал(а):
в модуле есть аргумент эта самая фигура ?
...
Public Function StartDocSetting(vsoShape As Visio.Shape)
корректней было бы сказать аргумент определяющий фигуру в процедуре, в модуле.
в вашем случае этот аргумент должен был быть добавлен в процедуру Sub SetToolTip(sh As Visio.Shape)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 07 апр 2019, 00:44 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
Замени это:
Код:
CALLTHIS("Module1.SetToolTip","v400")
на это:
Код:
RUNMACRO("Module1.SetToolTip","v400")
Так и делал, но при переносе фигуры из набора в документ эта команда уже не работает. По той же причине что писал ранее - макроса не переносится в активный документ.

Чуть позже попробую совет Суррогата, года доберусь до компа с визио.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 07 апр 2019, 12:49 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1534
Очков репутации: 100608

Добавить очки репутацииУменьшить очки репутации
Visio Guy выкладывал пример, который можно использовать в качестве образца.
http://visguy.com/vgforum/index.php?act ... attach=142
Там VSD и трафарет. И код из пары строчек.
Вызывается по Drop и DoubleClick.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 07 апр 2019, 13:32 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1534
Очков репутации: 100608

Добавить очки репутацииУменьшить очки репутации
Также советую рассмотреть вот такую конструкцию:
Код:
Public Sub ShowCut(shpObj As Visio.Shape)
    Set ProgDoc = Documents("Prog.vss")
    If ProgDoc Is Nothing Then Exit Sub
    ProgDoc.ExecuteLine "ThisDocument.ShowCutS ActivePage.Shapes.ItemFromID(" & shpObj.ID & ")"
End Sub

Это сидит в ThisDocument основного документа и вызывается из шейпа из секции Actions как =CALLTHIS("ThisDocument.ShowCut").
Макрос перенаправляет вызов в трафарет (документ Prog.vss) в виде .ExecuteLine. И уже в трафарете в его ThisDocument выполняется макрос .ShowCutS, в который передается шейп, найденный по ID на активной странице основного документа.
Макрос в трафарете сходу приступает к обработке переданного шейпа
Код:
Public Sub ShowCutS(shpObj As Visio.Shape)
    If shpObj.CellExists("Prop.PRODCUT", 0) Then
    ...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 08 апр 2019, 09:24 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
TheHeat писал(а):
Shishok писал(а):
Замени это:
Код:
CALLTHIS("Module1.SetToolTip","v400")
на это:
Код:
RUNMACRO("Module1.SetToolTip","v400")
Так и делал, но при переносе фигуры из набора в документ эта команда уже не работает. По той же причине что писал ранее - макроса не переносится в активный документ.

Чуть позже попробую совет Суррогата, года доберусь до компа с визио.

:oops: Ошибочка
Раньше стояло =RUNMACRO("v400.Module1.SetToolTip") и не работало при переносе в активный документ.

А вот =RUNMACRO("Module1.SetToolTip","v400") почему-то работает. Всем спасибо, а особенно Shishok


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 08 апр 2019, 09:42 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 515
Использую Visio c: 2008
Очков репутации: 105

Добавить очки репутацииУменьшить очки репутации
Ну так то и CallThis работает.
Вот с таким кодом:
Код:
Sub SetToolTip(shObj As Visio.Shape)
    Dim ToolTip As String
    Dim UndoScopeID1 As Long
   
CheckToolTip:
    ToolTip = InputBox("Введите ID элемента базы")
    If IsNumeric(ToolTip) Then
        If ToolTip = Int(ToolTip) And Len(ToolTip) = 6 Then
            UndoScopeID1 = Application.BeginUndoScope("Вставка всплывающей подсказки")
            ToolTip = "#V[" & ToolTip & "] Имя /ПО#"
            shObj.Cells("Comment").FormulaForceU = Chr(34) & ToolTip & Chr(34)
            Application.EndUndoScope UndoScopeID1, True
        Else
            GoSub Msg
        End If
    Else
        GoSub Msg
    End If

    Exit Sub
   
Msg:
    MsgBox "Ошибка: ID должен быть целым шестизначным числом", vbExclamation, "Error!"
    GoTo CheckToolTip
End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 08 апр 2019, 12:41 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3750
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
странно, почему то у меня все работает, после добавления 3 слов в аргумент функции ?
phpBB [youtube]

Чотко с нужного момента


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 10:26 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
новая задача: есть возможность автоматического изменения параметра фигуры при копировании? Хочу чтобы как в экселе скопированная фигура продолжала нумерацию текста :D
ПО какому событию можно запустить макрос?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 10:45 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1534
Очков репутации: 100608

Добавить очки репутацииУменьшить очки репутации
Скорее всего по событию Page.ShapeAdded.
Вообще, если требуется выбирать событие, то лучший помощник - Event Monitor. Поставляется в составе Visio SDK. Там можно посмотреть все события, которые происходит в Visio, в реальном времени. Остается только выбрать нужное.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 11:16 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 515
Использую Visio c: 2008
Очков репутации: 105

Добавить очки репутацииУменьшить очки репутации
Добавить в секцию Events, ячейка EventDrop - CallThis или RunMacro


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 11:21 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3750
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
возможность автоматического изменения параметра фигуры при копировании? Хочу чтобы как в экселе скопированная фигура продолжала нумерацию текста
можно обойтись без макросов
phpBB [youtube]

MS Visio. Создаем подпись номера входа с автоматическим увеличением значения
но если потом фигура будет удалена, то нумерация естественно поплывёт !


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 11:33 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1534
Очков репутации: 100608

Добавить очки репутацииУменьшить очки репутации
Цитата:
Добавить в секцию Events, ячейка EventDrop - CallThis или RunMacro

Это более экономичный способ. Но применить его придется ко всем шейпам, которые подлежат копированию. И к новым тоже, которые будут появляться потом по мере наращивания номенклатуры.
Поэтому выбор зависит от конкретных условий применения.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 11:47 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3750
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
новая задача
хочу попросить создавать новые темы для новых задач!
Мотивация: Поиск по форуму работает очень плохо! Бывает задается вопрос, вспоминаешь что было подобное обсуждение. Поиск не помогает, начинаешь искать по заголовкам в соответствующем разделе. Ничего не находится, потому что первоначальная тема очень далека от задаваемого вопроса. А иногда даже относится к другому разделу. Поэтому крайне сложно найти следы предыдущего обсуждения!!!
:wall:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 15:13 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Shishok писал(а):
Добавить в секцию Events, ячейка EventDrop - CallThis или RunMacro

Так и сделал. Результат устраивает, спасибо.

Surrogate писал(а):
можно обойтись без макросов

Дело в том, что я делаю не только для себя. Проще написать макрос, дать человеку и сказать "просто сделай двойной клик мышью". Да и быстрее так гораздо. Смысл как-раз в этом, чтобы затрачивалось как можно меньше времени и требовалось как можно меньше действий от пользователя.

Surrogate писал(а):
TheHeat писал(а):
новая задача
хочу попросить создавать новые темы для новых задач!
Мотивация: Поиск по форуму работает очень плохо! Бывает задается вопрос, вспоминаешь что было подобное обсуждение. Поиск не помогает, начинаешь искать по заголовкам в соответствующем разделе. Ничего не находится, потому что первоначальная тема очень далека от задаваемого вопроса. А иногда даже относится к другому разделу. Поэтому крайне сложно найти следы предыдущего обсуждения!!!
:wall:
Я не против, но создавать тему, решение которой "Добавить в секцию Events, ячейка EventDrop" смысла не вижу. Код программы тут в принципе не важен

Спасибо, народ. Пока с вашей помощью все получается. В VBA или в каком-либо другом ОО-языке я до этого не программировал. :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление всплывающей подсказки (Miscellaneo/Comment)
СообщениеДобавлено: 11 апр 2019, 19:45 
Не в сети
Глав-тролль

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3750
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Сбор вторичного сырья
Должность: Безработный
Уровнь квалификации: Отсутствует
TheHeat писал(а):
создавать тему ... смысла не вижу.
ну мы здесь тоже не для себя пишем ответы :!:


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

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



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

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


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

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