OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 07:15

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




Начать новую тему Ответить на тему  [ Сообщений: 98 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 08:10 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Илья Ермаков писал(а):
Если Вы создадите некое неграфическое приложение (библиотеку функций) на другом компиляторе, а на ББ напишете приложение, дающее интерфейс к нему, то Вы обязаны опен-сорснуть только графическое приложение.


Но для этого приложение на ББ должно уметь работать без библиотеки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 09:46 

Зарегистрирован: Вторник, 13 Март, 2007 06:15
Сообщения: 93
Info21 писал(а):
Илья Ермаков писал(а):
На чём писать DLL? Можно на другом Обероне (на XDS). ...

Почему же не на Блэкбоксе.
Если то, что запаковано в DLL, является автономным изделием, то разве оно автоматически не выходит из-под действия лицензии на ББ-приложения?
Другое дело, что если это изделие продавать, то нужно делиться с Оминк.

Наверно для надёжности лучше буду работать с OpenWatcom C/F77 и XDS. Хотя, наша программа сама по себе никакой ценности не имеет. Она просто продаётся вместе с установкой (весьма недешёвой :) ). А закрыта она, т.к. алгоритмы в ней ценные.

Ещё вот что! Можно ли в ББ делать красивости, типа кнопок с картинками (так называемые быстрые кнопки)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 09:59 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
В ББ можно делать активные документы. В которые помещается описание, рабочие элементы и всякие красивости. Все, что нужно для решения данной задачи (одной из программных функций) - в одном месте. Это гораздо мощнее/удобнее тулбаров. Но этот подход не традиционен и не привычен, в этом месте могут возникнуть проблемы реализации (приходится больше думать/пробовать, по стандартной схеме не наклепаешь).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 10:10 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
rv82 писал(а):
Тогда вопрос: будет ли сборщик мусора от XDS прикручен к моей DLL?
Будет, если попросите (GENDLL+, USEDLL-).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 10:43 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
rv82 писал(а):
Наверно для надёжности лучше буду работать с OpenWatcom C/F77 и XDS. Хотя, наша программа сама по себе никакой ценности не имеет. Она просто продаётся вместе с установкой (весьма недешёвой :) ). А закрыта она, т.к. алгоритмы в ней ценные.

Ну так алгоритмы можно оформлять в отдельном модуле, который для работы не будет требовать фреймворка. Следовательно, исходники можно не раскрывать.

rv82 писал(а):
Ещё вот что! Можно ли в ББ делать красивости, типа кнопок с картинками (так называемые быстрые кнопки)?
Можно! Вот пример подобного (правда, режим disable никак не влияет на картинку в кнопке, но это просто руки не доходят - надо добавить в интерфейс Abf функцию трансформации цвета):


Вложения:
button.png
button.png [ 21.43 КБ | Просмотров: 7195 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 16:22 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
rv82 писал(а):
Вот и думаю, на чём остановиться, на BlackBox или Delphi?


Учтите, что в случае BB у вас не будет кучи готовых компонент (пусть дельфовые компоненты и не всегда приемлемого качества, но есть среди чего поискать). Все, что выходит за рамки фрэймворка BB (который много меньше VCL) придется дотачивать и создавать своими ручками. Так что я бы предложил вам для начала проанализировать какую часть вашей "большой задачи" BB покроет "из коробки" или с минимальной доточкой.

P.S. Вопрос к общественности: есть ли реализация регулярных выражений для BB?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 16:31 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Смотрите у Зинна. Вроде, что-то такое делала подсистема Babel


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 16:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
В коллекцим Зинна есть следующие пакеты для разработки компиляторов:
http://zinnamturm.eu/downloadsAC.htm#Babel
http://zinnamturm.eu/downloadsAC.htm#Cow
http://zinnamturm.eu/downloadsAC.htm#Coco

А вот тут обещают именно отдельно регулярные выражения:
http://zinnamturm.eu/downloadsAC.htm#CpcRegul

Ещё я готовлю к публикации вот такую подсистему, которая может перекрыть как задачи регулярного разбора, так и рекурсивного разбора по грамматикам:
http://metasystems.ru/download/science/ ... 08-eie.pdf (800K)

Теперь касательно "подсистем"-"дотачивания" и т.п.
Я запомнил второй свой серьёзный проект на ББ (ныне издаётся здесь - djone.ru), где я выбирал между Дельфой и ББ, в авральных условиях. Хорошо, что выбрал ББ. Когда аврал, АК-47 приходит на помощь :-) Кой мне был толк в куче мультимедиа-компонент для Дельфы, если при стыковке их между собой (на основе HTML-компонента, т.к. иной хоть сколько-нибудь нормальной поддержки сложных текстов в распространённых средах нет) получается нечто с грубыми стыками и стартующее по 2-3 минуты... При этом делал это до меня очень неплохой разработчик, знающий Дельфу. Пришлось просто выкинуть - спасли составные документы ББ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Вторник, 30 Сентябрь, 2008 16:49 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
P.S. А Vlad-у неплохо бы обозначить чётко, что он не использовал ББ. Т.е. его высказывания следует трактовать как мнения-соображения, а не как опыт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 01 Октябрь, 2008 15:23 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Т.е. его высказывания следует трактовать как мнения-соображения, а не как опыт.


Подтверждаю, мои высказывания следует трактовать именно так.

P.S. Я тут все регэкспы пытаюсь прикрутить... Вопрос по ходу дела: как принято компилить/инсталлировать новые подсистемы, в которых больше одного модуля?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 01 Октябрь, 2008 16:05 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Для начала, подсистема закидывается в корневой каталог ББ. Основная установка закончена.

Далее, следует посмотреть в поддиректорию Docu. Правилом хорошего тона считается оставлять там документацию по модулям и некоторую сопутствующую информацию. По сопутствующей информации: она хранится в файлах, зачастую имеющих в названии дефисы. Для дополнительной установки посмотрите файл "Quick-Start".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 01 Октябрь, 2008 16:42 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Valery Solovey писал(а):
Далее, следует посмотреть в поддиректорию Docu.


Я все ищу кнопку "Построить все"... Неужели все запасаются терпением и ручками компилят модуль за модулем? А по какому принципу угадывать порядок компиляции модулей?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Среда, 01 Октябрь, 2008 17:22 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Там обычно и есть эта кнопка:

(!)DevCompiler.CompileThis модуль1 модуль2 модуль3 ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Четверг, 02 Октябрь, 2008 07:55 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Илья Ермаков писал(а):
Ещё я готовлю к публикации вот такую подсистему, которая может перекрыть как задачи регулярного разбора, так и рекурсивного разбора по грамматикам:
Вложение:
Cot-r-001-refal0-2008-eie.pdf

Любопытно...
Кстати, у Вас там упоминается забавный термин "tale call". Что это ещё за "сказочный зов"? :lol:
Правильнее было бы "tail call". Мелочь, конечно, но как-то неаккуратненько... :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Четверг, 02 Октябрь, 2008 17:49 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Благодарю! Лопухнулся с идентификатором.
Впрочем, хвостовая рекурсия для функциональщиков и прям "сказочный зов" - раз, и цикл :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Пятница, 03 Октябрь, 2008 07:39 

Зарегистрирован: Вторник, 13 Март, 2007 06:15
Сообщения: 93
Подскажите пожалуйста, можно ли сделать таймер (что-то типа TTimer в Delphi, или скорее невизуального javax.swing.Timer в java) в обычном BlackBox (не в Active!)?
И ещё, можно ли окна, сделанные визуально (odc-файлы) запихнуть в exe-файл при помощи DevLinker? Что-то у меня это не получается. Если честно, с DevLinker вообще у меня проблем больше, чем работы. По DevPacker тоже не всё понятно. Надо с переводчиком почитать документацию по всему этому :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Пятница, 03 Октябрь, 2008 08:34 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Аналог таймера в ББ делается с помощью модуля Services.

Создаёте свой тип-наследник от Services.Action и реализуете его метод Do. Экземпляр типа регистрируете через Services.DoLater, с указанием отсроченного момента запуска. Когда наступит указанный момент, среда один раз выполнит ваш метод Do.

А если надо выполнять метод Do периодически, то внутри метода ставите повторную регистрацию этого же экземпляра.

Визуальные окна можно упаковать в exe-файл, создав виртуальную файловую систему. Но вот лично я пришёл к тому, чтобы все ресурсы хранить снаружи. Так обновлять легче!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Пятница, 03 Октябрь, 2008 13:39 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
А уж насколько легче удалённому заказчику скидывать апдейты...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Суббота, 04 Октябрь, 2008 00:21 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
rv82 писал(а):
Подскажите пожалуйста, можно ли сделать таймер (что-то типа TTimer в Delphi, или скорее невизуального javax.swing.Timer в java) в обычном BlackBox (не в Active!)?
См. пример ObxActions. И вообще, обратите внимание на карту примеров (F1, Overview by Example), это типа FAQ по прогр-ю в ББ.
Цитата:
И ещё, можно ли окна, сделанные визуально (odc-файлы) запихнуть в exe-файл при помощи DevLinker? Что-то у меня это не получается. Если честно, с DevLinker вообще у меня проблем больше, чем работы. По DevPacker тоже не всё понятно. Надо с переводчиком почитать документацию по всему этому :)
1) Обратите внимание на команду Info->Create Tool (по выделенному списку модулей делает коммандеры для компиляции/выгрузки/сборки екзе файла (тут, возможно придется подправить)).
2) Скачайте русскую документацию. Или Вы имели ввиду, что по русской не совсем понятно, надо почитать оригинал?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Большой проект на BlackBox
СообщениеДобавлено: Понедельник, 06 Октябрь, 2008 10:07 

Зарегистрирован: Вторник, 17 Июнь, 2008 12:13
Сообщения: 28
Уважаемые господа!
Удивительно, насколько многим людям приходится делать системы сбора данных (ССД), в том или ином виде. И всем приходится решать по сути одни и те же задачи. И все решают по-разному, но все решения объединяет одно: пишется долго и муторно, часто - неудачно. Конечно, педагогическую ценность пути "через тернии к звездам" никто не отменял, но... В связи с чем у меня возникла вот какая мысль: нужен фреймвок для ССД с хорошей реализацией. Мне кажется, что можно сделать практически законченную систему, оставив на совести пользователя реализацию лишь предметной логики. Думается, что под эту задачу ББ заточен исключительно хорошо. Выскажу некоторые свои соображения, хотя программером меня можно назвать с очень большой натяжкой. Надеюсь на ваше понимание.
Я бы предложил разделить задачу на 3 основных модуля. Я назвал их так: Драйвер, Ядро, Диспетчер. "Работает" это система так.
Драйвер общается с портами.
Он же предоставляет интерфейс для настройки этого общения, позволяет запускать и останавливать считывание. Считав данные с порта, Драйвер "генерирует" сообщение, которое содержит считанные данные с привязкой по каналам.
Это сообщение принимается на следующем уровне, на уровне Ядра. Ядро позволяет подключать/отключать датчики на каналы, вызывать настроечные окна датчиков (для калибровки и пр.). Получив очередную порцию данных от Драйвера, Ядро обрабатывает (рассчитывает) данные по датчикам в соотв. с их калибровками, и генерируют сообщение, в котором указываются имена рассчитанных параметров и их значения. Это сообщение отправляется Диспетчеру.
Роль Диспетчера по моему замыслу - ключевая. Его задача: обеспечить подключение/отключение произвольных модулей для обработки первичных данных. Именно в этих модулях и происходит обработка данных в соотв. с предметной областью. Модули могут не только обрабатывать данные и сигнализировать о выходе за пределы, например, но и отображать данные в таблицах, на графиках, сохранять в БД и пр.
Я бы предложил такой интерфейс для загружаемых модулей:
- "Тип модуля" (рассчетный (производит расчеты), информационный (отображение значений или графиков, сохранение на диск))
- Список входных параметров (по сути - их имена) - для рассчетных модулей
- Список выходных (рассчитанных) параметров - для рассчетных модулей
- Команда для открытия настроечного окна для данного модуля
- Команда для запуска расчета (навроде Do*(IN ..., OUT...) где IN - значения входных параметров, в соотв. со списком, а OUT - значения выходных, рассчитанных)
- "Описание" (короткое имя модуля, которое идет в соотв. системное меню. Именно кликом по "описанию" в системном меню запускается команда для открытия окна настроек соотв. модуля).
- "Кнопка" в тулбар (бывает нужна для оперативного реагирования).
Работает Диспетчер так: считав список имен модулей в соотв. документе, Диспетчер загружает эти модули, добавляет соотв. пункты (если для этого модуля оно требуется) в системное меню, добавляет кнопки (по необходимости) на тулбар. Считывает списки входных и выходных параметров и в зависимости от них определяет порядок, в котором рассылаюся сообщения между подгруженными пользовательскими модулями.
Работает так.
Пусть, для простоты, у нас 4 модуля, А, Б, С, Д.
Модуль А на вход требует a, b на выходе имеет c, d.
Модуль Б на вход требует a, d на выходе дает f.
А вот С - это модуль "информационный", он отображает числовые значения в таблице (или графики рисует).
Модуль Д тоже "информационный", его задача - сохранение рассчитанных данных в БД.
От Ядра пришло сообщение со значениями параметров a, b.
Диспетчер, в соотв. с определенным ранее порядком, сообщает значения a, b модулю А и вызывает его команду на рассчет.
Модуль А рассчитывает c,d и "сообщает" Диспетчеру эти рассчитанные значения.
Далее, Диспетчер сообщает значения входных параметров модулю Б и запускает его на рассчет.
После того, как расчетные модули сделали по порядку свое дело, данные отправляются модулям информационным.
В каком порядке расположены модули С и Д уже не важно, ибо они сами ничего не рассчитывают.
Диспетчер расположил их в таком порядке: С, Д.
Модуль С отобразил рассчитанные данные в своей таблице, модуль Д сохранил рассчитанные данные на диск.
В принципе, такой каскад можно организовать для неограниченного числа модулей с пользовательской логикой. Модули, имеющий "тип" - информационный, всегда идут в конце (здесь их порядок относительно друг друга уже не важен, ибо они всегда получают все рассчитанные данные). Эти модули рисуют графики, сохраняют на диск и т.п.
Несколько несущественных замечаний:
1. Потребуется интерфейсный модуль для работы с БД.
Нужно будет учесть, то работать придется с 2-мя типами данных. Первый - значения настроек в модулях, второй тип - значения рассчитанных параметров, которые нужно постоянно сохранять на диск. Работать можно будет с разными БД, на "вкус и цвет".
2. Для каждого типа датчика следует предусмотреть свой загружаемый динамически модуль.
3. Про педагоческую ценность, вкупе с практической даже и упоминать не буду :-)

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


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

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


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

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


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

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