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

Форум по вопросам применения и программирования в Visio
Текущее время: 12 авг 2020, 05:19

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 20 июл 2012, 12:26 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Как добавить инструмент соединительная линия, и другие на панель надстроек - Ribbon Panel?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 23 июл 2012, 16:20 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
помогите...уже облазил весь интернет...

или теперь другой вопрос, как запретить добавлять шейпы на страницу визио?

суть в том, что я использую встроенный инструмент dynamic connector для рисования соединений, а у меня есть разные режимы в программе и в определнных режимах нужно запрещать добавлять шейпы.

есть решение при добавлении сразу удалять шейп, но часто возникает исключение если я пытаюсь удалить добавленный шейп.


ПОМОГИТЕ))


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 23 июл 2012, 16:26 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
но лучше добавить этот инструмент к себе, чтобы я мог управлять его enable'ом и т.д....


хоть у кого-то есть идеи?) это же всем пригодиться!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 23 июл 2012, 19:21 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Вот примерчик:
Код:
Dim WithEvents pg As Visio.Page

Sub ttt()
    Set pg = ActivePage
End Sub

Sub ttt1()
    Set pg = Nothing
End Sub

Private Sub pg_ShapeAdded(ByVal Shape As IVShape)
    Shape.Delete
End Sub

После выполнения ttt добавление шейпов блокируется. После выполнения ttt1 опять разрешается.
Ошибок не замечено.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 23 июл 2012, 19:24 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Как добавить инструмент соединительная линия, и другие на панель надстроек - Ribbon Panel?

Вручную или программно?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 23 июл 2012, 19:27 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Вручную - на риббоне в контекстном меню есть пункт Customize Ribbon...
Создается New Tab и на нее набрасываются нужные кнопки.
Вроде ничего хитрого.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 09:10 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Tumanov
Я имел ввиду программно, используя visio add-in. Мне нужно просто при определенных условиях делать кнопку соединительная линия неактивной...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 09:37 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Вот примерчик:
Код:
Dim WithEvents pg As Visio.Page

Sub ttt()
    Set pg = ActivePage
End Sub

Sub ttt1()
    Set pg = Nothing
End Sub

Private Sub pg_ShapeAdded(ByVal Shape As IVShape)
    Shape.Delete
End Sub

После выполнения ttt добавление шейпов блокируется. После выполнения ttt1 опять разрешается.
Ошибок не замечено.


Пробовал так, на C# при первом выполнении метода все ок, а при последующих , выдает ошибку "данная операция сейчас отключена"


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 09:38 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
ribbon в xml? если да, то чтобы добавить кнопку конектора
Код:
<toggleButton idMso="ConnectorTool"/>

для управления используй свойства getVisible, onAction, getPressed и т.д.
Код:
<toggleButton id=""toggleButton1""
                                        getEnabled=""GetEnabled""                
                                        getLabel=""GetLabel""
                                        getKeytip=""GetKeytip""
                                        getPressed=""GetPressed""
                                        getScreentip=""GetScreentip""
                                        getShowImage=""GetShowImage""
                                        getShowLabel=""GetShowLabel""
                                        getSize=""GetSize""
                                        getSupertip=""GetSupertip""
                                        getVisible=""GetVisible""
                                        image=""camera.bmp"" 
                                        onAction=""OnAction"" />


тут подробнее (анг.)

Dev Center много информации, примеров и видео (анг.)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 10:42 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Добавил в xml..чето не отображается :(


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 10:52 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
как то так должно быть
Код:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load" >
                    <ribbon>
                        <tabs>
                            <tab id="tab1" label="ToggleButton Demo" keytip="x" >
                                <group id="group1" label="Demo Group">
                                    <toggleButton id="toggleButton1"   
                                        onAction="OnAction" />
                                </group>
                            </tab>
                        </tabs>
                    </ribbon>
                </customUI>


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 11:02 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
риббон у меня visual designer, есть возможность експорта в xml, туда добавляю но почему ничего не меняется.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 11:09 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
да как добавлять я разобрался, только после добавления в xml, на экране ноль эмоций


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 11:45 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
после конвертации в xml в ThisAddIn надо добавить следующий код:
Код:
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
  {
      return new Ribbon();
  }


кстати в сгенерированом Ribbon.cs есть указания на этот счет (в коментариях)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 12:03 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
оо работает..только теперь мой риббон поломался :) нету изображений и методы не вызываются при событиях клика и т..д. )) как передать в этот новый риббон все методы и т.д. которые были в том? в коде xml все нормально..вот он:

Код:
<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabAddIns">
                <group id="FileMode1" label="Файл">
                    <button id="NewPage" onAction="NewPageClick" label="Создать" size="large" />
                    <button id="save_doc" onAction="SaveDocClick" enabled="false" label="Сохранить" size="large" />
                    <button id="OpenDoc" onAction="OpenDocClick" label="Открыть" size="large" />
                    <dialogBoxLauncher>
                        <button id="FileMode1__btn" />
                    </dialogBoxLauncher>
                </group>
                <group id="ChooseMode" label="Опции ввода данных">
                    <toggleButton id="CreationSchemeMode" onAction="CreationSchemeMode_Click_1" enabled="false" label="Режим создания схемы" size="large" />
                    <toggleButton id="InputDataMode" onAction="InputDataMode_Click_1" enabled="false" label="Режим ввода данных" size="large" />
                    <toggleButton id="CalcMode" onAction="CalcMode_Click" enabled="false" label="Проверить схему" size="large" />
                </group>
                <group id="calcModeGroup" label="Режим счета">
                    <button id="Play" enabled="false" label="Пуск" size="large" />
                    <button id="Pause" enabled="false" label="Пауза" size="large" />
                    <button id="Stop" enabled="false" label="Стоп" size="large" />
                </group>
                <group id="Functions" label="Функции">
                    <button id="Calc" onAction="Button1Click" label="Отладка счета" showImage="false" />
                    <button id="button1" onAction="button1_Click" label="Определить коннекты" showImage="false" />
                    <button id="button2" onAction="button2_Click" label="button2" showImage="false" />
                   
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 12:11 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
для каритнок прописывай атрибуты image или imageMso по мне так второе лучше,
методы переноси из старого файла *.cs по именам смотри чтобы совпадали с атрибутом onAction.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 12:15 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
image = "Путь"??? , указываю путь, ноль эмоций...сори в xml я не очень)))
методы перенес, почему-то не работают...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 12:20 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
в image название картинки, которую предварительно надо добавить в ресурсы проекта.
в imageMso название стандартной иконки от майкрософта, имена узнать можно тут (нпример, imageMso="Export")

по поводу методов, переносить в раздел #region Ribbon Callbacks
смотри на примере уже имеющейся функции
Код:
public void Ribbon_Load(Office.IRibbonUI ribbonUI)
        {
           this.ribbon = ribbonUI;
        }

остальные добавляешь сразу за ней.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 12:31 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 24 апр 2012, 12:36
Сообщений: 180
Очков репутации: 11

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

мож еще какойто код надо добавить? или я хз уже(( спасибо за помощь огромное


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Добавление встроенных инструментов на Ribbon Panel.
СообщениеДобавлено: 24 июл 2012, 12:33 
Не в сети
Постоянный участник

Зарегистрирован: 11 май 2012, 15:05
Сообщений: 92
Очков репутации: 25

Добавить очки репутацииУменьшить очки репутации
вот примерно как надо исправить методы
старый код
Код:
private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            //
        }

новый
Код:
private void button1_Click(Office.IRibbonControl control)
        {
            //
        }


Последний раз редактировалось ss87 25 июл 2012, 12:13, всего редактировалось 1 раз.

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

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



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

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


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

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