Создание пользовательской Панели инструментов средствами API

Автор p3452, 24.05.21, 11:08:42

« назад - далее »

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

p3452

Берусь утверждать, что в справке по SDK 18 и 19 версии (может и в 17 то же?) описание процесса создания "пользовательской Панели инструментов" не соответствует действительности!
В этом легко убедится если разобрать имеющийся в SDK пример - Step2...
В связи с этим, вопросы:
- Когда будет актуализирована SDK (и Справка и примеры)?
- Почему так упорно скрывается описание "новой" технологии создания интерфейса с использованием xml - файлов, и файлов шрифтов - otf? 

 

KilkennyCat

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

p3452

KilkennyCat, описание xml вам мало, что даст... Структура его достаточно прозрачна - вот на примере все того же Step2:
Step2 - xml.png

KilkennyCat

Описание может много чего дать.
Да, из предложенного примера всё видно, что в зависимости от типа документа (перечислены лишь два, но про остальные легко догадаться, равны расширению документов плюс _main) можно формировать различные наборы компактных панелей, что иконки - это код символа шрифта, видна группировка.
Но ту же возникает несколько вопросов:
1) что значит "_main" в идентификаторе toolBarTray?
2) мультиязычность как?
3) Tooltip к меню, есть, нет, как?
4) какие ещё возможности есть управлением меню, но не отображены здесь? Например, как присвоить одному меню статус енабле-дизабле? То есть, как минимум указать две иконки и переключать их состояние программно?
5) Зачем идентификатор у корневого application? Ведь это наводит на мысль, что он не root, что их могут быть несколько, зачем, как, почему?

Мильён вопросов.
И ответы на это можно получить в описании. В конце концов, все подобные вещи делаются по ТЗ, в ТЗ описан формат этого файла, не предоставить его в документации - непонятно.
Я привык работать так: быстро читаю документацию, запоминаю основные возможности. Потом уже разбираюсь, как именно их реализовать. А тут получается, что я не знаю возможностей. И как работать? Ладно, если заказчик и исполнитель я в едином лице. А если на заказ? Заказчик меня спросит, а можно так-эдак сделать, и что ответить могу? Что не знаю. Офигенный программист, который не знает, что может система, а что нет...

p3452

Если получите ответы на перечисленные вопросы - поделитесь, всем полезно будет.
xml - это только одна "сторона медали"...
Есть еще вопросы по иконкам, битмапам, шрифтам...
И аналогичные вопросы по "Панели свойств" средствами API...

Новый интерфейс это целая "технология", в не просто xml - описание которой и надо получить от АСКОН-а!

Вират Лакх

Может стоит объединить эти темы в одну? https://forum.ascon.ru/index.php?topic=35694.0;topicseen
Хорошо было бы иметь некий визуальный редактор, который бы по шагам запрашивал все необходимые данные для создания манифеста.

PS

По шрифтам:
1. Общие "требования" по шрифтовым иконкам во вложении.
2. Цветные иконки состоят из наложенных шрифтов. Всего цветов 4. Цвета устанавливает Компас, пользователю это сделать нельзя. Смотрите примеры шрифтов в приложениях.
3. Шрифтов в приложении должно быть 5. Один для монохромных, 4 для цветных.
3. Для создания векторных шрифтовых иконок нужен отдельный редактор, например High-Logic FontCreator.
По XМL файлам:
1. Описание (старое, сейчас наверное дополнено) XML файла во вложении.
2. Для создания достаточно обычного текстового редактора, например блокнота. Берется XML файл любого приложения под Компас и редактируете как Вам надо, сохраняя структуру.
3. Как сделать доступность команд, подсказки на панелях и т.д. смотрите справку по SDK.
+ Благодарностей: 2

p3452

PS, спасибо!
Будем изучать...

P/S: Вопрос к АСКОН-у остается открытым: если ВСЕ ЭТО существует с 2014-2015 года, то почему по нынешний год (2021 !!!) в справке по SDK фигурирует метод создания интерфейса через битмапы и файл ресурсов?

PS

Цитата: p3452 от 25.05.21, 09:29:56P/S: Вопрос к АСКОН-у остается открытым: если ВСЕ ЭТО существует с 2014-2015 года, то почему по нынешний год (2021 !!!) в справке по SDK фигурирует метод создания интерфейса через битмапы и файл ресурсов?
Вы не совсем правы. В справке нет только того, что я прикрепил. Остальное что нужно для управления панелями в справке есть см. 331. Эти функции работают и для нового интерфейса.
Вот пример наибольшего (во многих случаях не все из этого нужно) набора необходимых функций для приложения под Компас 17 и выше:
LIBRARYENTRY
LIBRARYID
LibIsOnApplication7
LibObjInterfaceEntry
LibCommandState
LibGetDisableReasonW
LibInterfaceNotifyEntry

p3452

Цитата: PS от 25.05.21, 09:51:04Вы не совсем правы.
Да, прав я, прав (к сожалению)!
Не создать "Панель инструментов" по тексту справки!!!
В лучшем случае мы получим что-то подобное (на примере все того же Step2):
Step2 - без xml.png
но мы то ожидали совершенно другого... (опять на примере все того же Step2):
Step2 - панель родная.png

Согласитесь, ЭТО не одно и то же!?

PS

Вы получили правильную панель, в соответствии с примером. Сделайте свои шрифты и XML файл, будет как Вам надо. Управление подсказками на панели и доступностью команд делается через функции, которые я привел выше.

p3452

PS, ну так вы согласны что то что получено по рекомендациям Справки:
Step2 - без xml.png

не является "Панелью инструментов"?

KilkennyCat

#12
PS, огромнейшее спасибо! Ну, теперь практически всё основное ясно, а то вчера наткнулся на атрибут icon, дык мониторил, что подключает Компас во время работы, дабы найти, откуда он их берёт...
Цитата: PS от 25.05.21, 08:41:17Описание (старое, сейчас наверное дополнено) XML файла.
Да, есть некоторые изменения (или дополнено, или убрано), например, при <application  id="111111" showInMenu="true"> можно указать элементы в меню:
<menu id="111111">
   <appItem id="1" />
   <appItem id="2" />
   <appItem id="3" />
</menu>
Как это работает пока не проверял, при попытке провести эксперимент IOSO (это там обнаружена подобная конфигурация) свалился и подключаться больше не хочет...

P.S.
<appCommand id="2" title="Механика: Анимация" appIcon="E001" icon="E001" />
из описания:
<appCommand> — элемент, описывающий команду КОМПАС-приложения...  appIcon (см. 2.2.4.3) или icon (см. 2.2.4.4), но не оба сразу.
Похоже, тоже шли путём экспериментов...

KilkennyCat

Цитата: Вират Лакх от 25.05.21, 04:30:40Хорошо было бы иметь некий визуальный редактор, который бы по шагам запрашивал все необходимые данные для создания манифеста.
Ну, давайте я напишу. Действительно, будет удобно. По крайней мере, пока не понял, как оперативно проверить в Компасе изменения, делать это через переподключение-перезагрузку утомительно.

PS

Цитата: KilkennyCat от 25.05.21, 14:23:32Ну, давайте я напишу. Действительно, будет удобно. По крайней мере, пока не понял, как оперативно проверить в Компасе изменения, делать это через переподключение-перезагрузку утомительно.
Что бы изменения попали в панель, нужно отключить и вновь подключить библиотеку.
Цитата: p3452 от 25.05.21, 12:33:15PS, ну так вы согласны что то что получено по рекомендациям Справки:
не является "Панелью инструментов"?
Я не понял. У Вас что не появляется панель?
Если да, попробуйте исправить XML файл. На мой взгляд там не правильные имена файлов шрифтов. Лишние пробелы и нет тире.

p3452

PS, а если что-нибудь по "обязательным" файлам соответствующим этому пункту
"3) Файл данных и файлы изображений для краткой справки" ?

PS

Цитата: p3452 от 25.05.21, 14:37:55PS, а если что-нибудь по "обязательным" файлам соответствующим этому пункту
"3) Файл данных и файлы изображений для краткой справки" ?
Дело было давно, не отвечу. Но появилась база данных с подсказками, с именем файла "Имя библиотеки_ru-RU.db" и папка со слайдами "Images_ru-RU".
Формат файла базы данных смотрите у меня в приложении WeldConnect. Где это описано не помню. Для редактирования базы использую бесплатную SQLiteStudio.

KilkennyCat

Цитата: PS от 25.05.21, 14:35:27Что бы изменения попали в панель, нужно отключить и вновь подключить библиотеку.
И это логично, но почему-то у меня (19, х64, ActiveX) не происходит. Мне приходится выгружать (из окна регистрации) полностью, а иной раз и перезагружать Компас. Но ладно, для панели, теперь это не потребуется так часто, но Компас блокирует у меня длл, мешая компиляции.


p3452

Цитата: PS от 25.05.21, 14:44:45Но появилась база данных с подсказками, с именем файла "Имя библиотеки_ru-RU.db" и папка со слайдами "Images_ru-RU".
Формат смотрите у меня в приложении WeldConnect. Где это описано не помню.
PS, еще раз, спасибо!
Теперь понятно где, что и как хранить...

Осталось выяснить как вызывать: "быстрая справка" вызывается автоматически при нахождении курсора над пунктом меню заданное время (2 сек.). Это будет работать (при каких условиях?), или обработчик (реакцию на событие) надо писать самому?