Панель свойств (IPropertyManager)

Автор DesignЯR, 27.11.17, 11:42:05

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

DesignЯR

Всем привет!
Есть пара вопросов в которых нужна помощь.
1.1 Как отлавливать нажатие кнопок на спецпанели (SpecToolBar) Панели свойств?
1.2. Как установить иконку из шрифта для кнопки спецпанели и кнопки IPropertyControl1?
BOOL AddSpecToolbarButton( long BtnID, VARIANT Bmp, BSTR Tips, BSTR IconFont );
BOOL AddAdditionButton( long BtnID, VARIANT Bmp, BSTR Tips, BSTR IconFont );
VARIANT Bmp -?????(То же самое, что и в XML-файле Набора панелей для Инструментальной области?)
BSTR IconFont -?????
2 После закрытия всех документов незакрытые панели свойств остаются висеть. Как думаете: такая задумка или прощёлкали разрабы?


Sabahs

Я бы ответил, но у Вас на картинке ломаная моя библиотека.
PS. Ломанное, правильно работать не будет.

DesignЯR

Оказалось, что вина разработчиков в том, что они не полностью перевели step12 в C#. В дельфийской версии модуль PropertyManagerEvent содержит реакцию на события кнопок ( buttonID = pbEnter ) Or ( buttonID = pbEsc ), в то же время в С# только  (buttonID == (int)SpecPropertyButtonEnum.pbHelp).Так как файла справки в примере нет, то ничего не открывалось и никакой реакции не происходило. После добавления реакции на события  (buttonID == (int)SpecPropertyButtonEnum.pbEsc( или pbEnter)) Удалось достучаться до кнопок спецпанели.
С иконками шрифта на кнопках борьба продолжается... Пока по старинке будем подсовывать *.bmp (да и рисовать их проще чем шрифт).
P.S.
Уважаемый Sabahs, скрин Вашей библиотеки был приложен, потому что там была рабочая спецпанель и панель свойств тоже оставалась после закрытия документов (не работает  ClosePropertyManager(bool mes)). Кто же мог подумать что в открытом доступе будет специально выкладываться нерабочий вариант библиотеки? Покупать лицензированную рабочую - нет производственной необходимости, а в данный момент и возможности(см. ниже). А при появлении необходимости, думаю будет выбран вариант написания собственного ПО за премию (если будет выгодно).
По поводу лицензирования. Дело в том что у нас, в Украине, действует Закон України «Про санкції», согласно которому на такие юридические лица как  ТОВ (товариство з обмеженою відповідальністю) "Аскон - КР" (ЄДРПОУ 34584648, м. Київ, проспект Перемоги, 123)  (пункт 308 Перечня*1) и АТ (акціонерне товариство) (акционерное общество) "Аскон" (ИНН 7809009923, м. Санкт-Петербург, вул. Одоєвського, 5 літ. А) (пункт 309 Перечня*1) наложены такие санкции:
1) блокування активів - тимчасове обмеження права особи користуватися та розпоряджатися належним їй майном;
2) обмеження торговельних операцій;
3) запобігання виведенню капіталів за межі України;
4) зупинення виконання економічних та фінансових зобов'язань;
5) обмеження або припинення надання телекомунікаційних послуг і використання телекомунікаційних мереж загального користування;
6) припинення видачі дозволів, ліцензій на ввезення в Україну з іноземної держави чи вивезення з України валютних цінностей та обмеження видачі готівки за платіжними картками, емітованими резидентами іноземної держави;
7) заборона передання технологій, прав на об'єкти права інтелектуальної власності.
(Перечень*1 - Додаток 2 до рішення Ради національної безпеки і оборони України від «28» квітня 2017 року «Про застосування персональних спеціальних економічних та інших обмежувальних заходів (санкцій)»)

Если я всё правильно понял, то Аскон не может продавать в Украине свою продукцию и покупать услуги граждан и компаний Украины. У Вас в профиле указан город Умань. Поделитесь, как Вам удается обходить законодательство Украины?

Sabahs

28.11.17, 14:22:13 #3 Последнее редактирование: 28.11.17, 15:10:10 от Sabahs
Вины разработчиков, нет, просто примеры ещё, от древних версий и в них вникать нужно, иногда дописывать.
PS. Все остальное лучше удалить, т.к. не соответствует действительности.
PS1. То, что осталась панель, когда закрыты все документы - это правильная работа библиотеки, т.к. она подразумевает работу, без открытых документов, но в случае закрытия Компас-3D, библиотека отписывается от событий и освобождает занятые ресурсы.

SerGoVec

Коллеги, а можно иконку в ToolBar загружать не из шрифта, а из любого графического файла *.bmp, *.png...? Как это сделать? И еще вопрос: в файле шрифта есть векторная ч/б иконка, а в компасе 17 можно указать монохромное или цветное оформление, как это реализовано? Неужели для цветного оформления используется другой файл(ы) шрифта?

Вячеслав Никонов

Используйте шрифты. Потом ваша bmp-иконка будет не видна на большом мониторе.

SerGoVec

хорошо, буду использовать шрифт..

как реализовать монохромный/цветной режим иконок, если даже в библиотеках Аскон (Компас Макро, Сервисные инструменты и т.д.) цветной режим не реализован???

p.s. видимо спешили реализовать пожелание пользователей, а про библиотеки не подумали ;)

Вячеслав Никонов

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

SerGoVec

Ок, спс. С наступающим Новым Годом!

DesignЯR

Цитата: SerGoVec от 29.12.17, 13:49:13
Коллеги, а можно иконку в ToolBar загружать не из шрифта, а из любого графического файла *.bmp, *.png...? Как это сделать? И еще вопрос: в файле шрифта есть векторная ч/б иконка, а в компасе 17 можно указать монохромное или цветное оформление, как это реализовано? Неужели для цветного оформления используется другой файл(ы) шрифта?

Если бы Вы указывали среду программирования, проще было бы отвечать.Ранее, когда использовал Delphi, иконки подгружались только из *.bmp... через файлы ресурсов. Сейчас использую Visual Studio(C#) - тут ToolBar описывается через *.xml, а не через *.rc(так в Step2 - Хотя в справке этого описания найти не удалось).Получается проще использование, так как не нужно  дополнительных функций, хотя функция ExternalGetToolBarId для ActiveX библиотек в справке описана, значит тоже можно использовать файлы ресурсов, а в них указывать файлы изображений, а не шрифта.Но это не точно, так как в 17 версии в интерфейсной части произошли изменения и не все баги устранены,может быть и не все функции пока что реализованы для разработчиков. У меня почему-то в Панели инструментов не  отрисовывается текст у Separator'а, не отображаются стрелки в SpinEdit'е. Если действительно есть такая необходимость в цветных иконках - ройте Step2 от Delphi и приводите к своей среде программирования.
Вот статья про цветные шрифты   https://msdn.microsoft.com/en-us/library/windows/desktop/mt765165(v=vs.85).aspx