OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 15 Сентябрь, 2025 21:29

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 24 Июль, 2025 10:02 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Добрый день.
На главной странице https://blackbox.oberon.org/
вижу предложение опубликовать свое расширение для BB.
Стал искать инфу о том, как делать расширения. Тут на форуме инфы не нашел, на Вики тоже нет.
Поэтому предлагаю добавить на вышеуказанную страницу информацию о том, как сделать расширение.
Ну или ссылку на мануал, если мануал будет размещен в Вики.
А ещё можно здесь в шапку раздела добавить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июль, 2025 23:39 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2463
Откуда: Россия, Томск
Похоже, вы нашли просто зеркало коллекции https://www.zinnamturm.eu/
Возможно, имеет смысл посмотреть в первоисточнике. Я как-то публиковался там, но уже забыл, как именно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Июль, 2025 18:14 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1469
Откуда: Киев
Артем Запаранюк писал(а):
Стал искать инфу о том, как делать расширения. Тут на форуме инфы не нашел, на Вики тоже нет.
Лучше воспользоваться самим BlackBox:
BlackBox → Инструменты →Создать подсистему...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Июль, 2025 18:23 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1469
Откуда: Киев
Александр Ильин писал(а):
Похоже, вы нашли просто зеркало коллекции zinnamturm.eu

Это не зеркало, а другой репозиторий, в который проще выкладывать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Июль, 2025 23:19 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1563
не надо. если это надо — то расширения делать не надо, рано ещё. работает как первичный фильтр от leftpad-ов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 31 Август, 2025 22:35 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3828
Артем Запаранюк писал(а):
Добрый день.
На главной странице https://blackbox.oberon.org/
вижу предложение опубликовать свое расширение для BB.
Стал искать инфу о том, как делать расширения. Тут на форуме инфы не нашел, на Вики тоже нет.
Поэтому предлагаю добавить на вышеуказанную страницу информацию о том, как сделать расширение.
Ну или ссылку на мануал, если мануал будет размещен в Вики.
А ещё можно здесь в шапку раздела добавить.

Посмотрите файл Tut-3, там описывается про подсистемы.

Потом, всё, что надо для публикации, сжать (меню Инструменты->Закодировать список файлов) свою подсистему или иной набор файлов, в общем случае - расширение функциональности Блэкбокса, и загрузить на сайт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Сентябрь, 2025 15:02 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Не могу найти файл Tut3.
Можно мне ссылку или адрес, в какой директории он расположен?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Сентябрь, 2025 15:30 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3828
Артем Запаранюк писал(а):
Не могу найти файл Tut3.
Можно мне ссылку или адрес, в какой директории он расположен?

В папке Docu или в справке выбрать из первой части учебника ссылку "Приёмы проектирования"

Вот от туда ещё выдержка есть, поясняющая принцип. Что компонент это чаще всего одна папка.

Цитата:
Единственно подходящим для компонентно-ориентированного ПО является вариант, когда добавление и удаление компонентов может выполняться по нарастающей, добавлением или удалением папки. Все виды механизмов централизованной инсталляции или регистрации, которые распространяют составляющие компонента, должны быть исключены, поскольку они неизбежно ведут к (ненужным) проблемам управления.


Однако как например для случая пакета локализации, не всегда расширение Блэкбокса - это один компонент или одна папка. Поэтому назвал "расширение", как сокращение от "расширения функциональности".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Сентябрь, 2025 16:21 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Теперь стало ясно.

Пойду изучать.

Спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 08:36 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Файл нашёл. Ознакомился.
Теперь мне ясно как оформить расширение и как его инсталлировать.
Ещё раз спасибо.

Теперь мне надо определиться на каком принципе будет работать расширение.

Я пока знаю 2 таких принципа:

1. Расширение работает на основе готовых технологий типа OLE, COM, SQL.
Они есть в BlackBox.

2. Расширение создает новые API интерфейсы для стыковки и работы с framework.
Как например интерфейс JNI.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 11:06 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Нашёл примеры готовых расширений на сайте https://oberoncore.ru/bbcc/subs/start

По первому принципу работают:
1. Fib BlackBox Sql-драйвер для СУБД Firebird

2. Mysql Средства взаимодействия с клиентской библиотекой СУБД MySQL
3. Xmlcore - Использование DOM и XML

По второму принципу работают:
1. Mbedtls - Интерфейс к криптографической и SSL/TLS-библиотеке Mbedtls.

2. O3 — каркас для разработки веб-приложений (Web-Application-Framework)

3. Ogl -Интерфейс к библиотеке OpenGL

4. Sdl2 - Привязка к Simple DirectMedia Layer v2.

5. Sedna - Интерфейс C-API драйвера XML СУБД Sedna.

6. Xmpp - Реализация клиента сети XMPP (jabber).

7. YSon - Парсер/генератор JSON

8. Acad - Подсистема, позволяющая использовать BlackBox в качестве скриптовой системы вместо Лисп и VisualBasic в программе AutoCAD


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 15:05 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Нашёл в Инете информацию о том, какова сейчас мировая практика создания и подключения расширений.

Для framework-ов.

На примере Chrome Browser, Visual Studio Community.

Пока выяснил, что:
1. Оба framework-a предоставляют API интерфейс для подключения расширений.
Для пользователя фреймворка API интерфейс=frontend, расширение=backend.

2. Для сборки главной программы с использованием разных языков программирования нужен сборщик типа Cmake, Cradle.

3. Эта технология выгодна любому автору расширения - у него становится больше пользователей.

Поэтому для подключения расширений такого типа к BlackBox достаточно предложить API BlackBox всем авторам популярных расширений.

Конечно, при необходимости API BlackBox потребуется модернизировать. Либо самостоятельно писать на КП модуль стыковки, с разрешения автора плагина.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 16:59 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Также рассматриваю возможности привлечь в BlackBox расширения от родственных framework- ов - Delphi, Lazarus, Code Typhon.

Чтобы сделать на КП стыковку для компонентов Delphi и пакетов Lazarus.
Хотелось бы без статической компиляции пока обойтись. За счёт заранее откомпилированных модулей Delphi, Lazarus.

В первую очередь, меня, интересует то, как "прикручен" Java Native Interface (JNI).
В данный момент выясняю это на простых примерах в Lazarus и Code Typhon.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Сентябрь, 2025 11:20 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3828
У Блэкбокса некая своя инновационная идеология раздельной компиляции и позднего связывания модулей.
Всё мечтаю как-нибудь погрузиться в чтение этого первоисточника
Crelier B.J. Separate Compilation and Module Extension. 1994.
https://www.research-collection.ethz.ch ... 00/content
копия на сайте OberonCore
https://oberoncore.ru/_media/library/cr ... ension.pdf

Однако если научились другие всякие штуки стыковать с Блэкбоксом - честь вам и хвала.

А так посмотрите подсистему Obx, там пример того, как рекомендуется делать связки своих модулей с каркасом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Сентябрь, 2025 13:31 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Цитата:
У Блэкбокса некая своя инновационная идеология

Однако если научились другие всякие штуки стыковать с Блэкбоксом - честь вам и хвала.

Нет, пока не научился.
Пока прорабатываю данную тему.

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

Лично меня интересует Java Native Interface.
Чтобы можно было работать с модулями на Java.
С прицелом, в первую очередь на разработку приложений для Андроида.
Логику приложения, можно конечно библиотекой оформить внутри apk.

А вот графику нужно будет рисовать средствами Андроид ОС.
А там всё на Java.
И поддержки GTK тоже нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Сентябрь, 2025 13:45 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Как указал выше, пока тренируюсь, как раньше говорили, "на кошках".
На Lazarus.

В нём есть графические компоненты Custom Drawn.
Которые заявлены как кросс-платформенные.
И что их можно нарисовать в Андроид.
Но пока не выходит.

Там тоже используется JNI.
И откомпилированные модули библиотек из набора Android NDK.

На Windows при запуске проекта отрисовка есть.
На Android нет.

Если интересует, вот ссылка на проект
https://github.com/alrieckert/lazarus/t ... androidlcl

Во вложении-файл. Там принцип отрисовки вместе с инструкцией.


Вложения:
LAZARUSForAndroid.pdf [1.03 МБ]
Скачиваний: 7
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2025 14:55 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Стал искать демо-примеры Java Native Interface. Популярные примеры есть для C++.

Посмотрел в директории "Examples" Lazarus.
Пусто.

Перешёл в Delphi Studio Community.
Нашёл всё файлы для технологии JNI.
В директории ~\Source\rtl\android
Придётся много файлов Object Pascal переводить на Component Pascal.

Также посмотрел Delphi 6,7.
В директории "Demos".
JNI там нет.
Зато есть демо-примеры других технологий, например:
1. OLE
2. Com
3. Corba
4. Midas
5. WebSnap

OLE, COM уже в BlackBox.

Остальные вполне можно перевести на язык Component Pascal.
И сделать расширения для BlackBox.

Наверное, с этого и начну.
Пока перевожу - выучу Component Pascal.
И научусь расширения оформлять для BlackBox.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2025 15:12 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Кстати, сейчас набирает популярность REST API.

Backend тоже можно найти в Delphi Community Edition.
Директория ~source\data\rest

Так что, если кто-то из уважаемых форумчан сможет быстрее сделать перевод для BlackBox, то я буду только "За".

Потому что, поддержка современных технологий, по-моему тоже относится к перспективам развития BlackBox.
И было бы замечательно увидеть популярные технологии типа Rest API в новой версии BlackBox.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2025 17:40 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3828
Артем Запаранюк писал(а):
Кстати, сейчас набирает популярность REST API.

Backend тоже можно найти в Delphi Community Edition.
Директория ~source\data\rest

Так что, если кто-то из уважаемых форумчан сможет быстрее сделать перевод для BlackBox, то я буду только "За".

Потому что, поддержка современных технологий, по-моему тоже относится к перспективам развития BlackBox.
И было бы замечательно увидеть популярные технологии типа Rest API в новой версии BlackBox.

А какая задача, то? Забрать по сети JSON, и его обработать Блэкбокс может сейчас


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 15 Сентябрь, 2025 19:11 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 61
Спасибо.
Буду знать.
REST API привёл как пример популярной технологии.
На сегодняшний день, по-моему.

В целом, хотел подчеркнуть моё мнение, что чем больше технологий будет поддерживать БлэкБокс, тем лучше.
В целях его дальнейших перспектив развития.

И что, по-моему самый быстрый способ создания расширений - это перевод готовых расширений от других диалектов Паскаль на Компонентный Паскаль.
У Lazarus расширения называют Пакеты. У Delphi расширения называют Компоненты.

Вспоминаю, как лет 20 назад, когда заканчивал ВУЗ, было очень круто и можно создавать собственные компоненты для Дельфи.
Хвастаться ими на Форумах.
Особенно, если их принимали для публикации на ресурсе Torry.net.
В тот раз, я не успел, потому что мало знал.
Посмотрим, может в этот раз получится.
Попробую попереводить с Объектного Паскаля на Компонентный Паскаль.

А 20 лет назад особо нечего было переводить, поэтому либо с нуля делали расширение, либо чаще всего модификацию того, что было в Дельфи


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ] 

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB