OberonCore
https://forum.oberoncore.ru/

Среда разработки
https://forum.oberoncore.ru/viewtopic.php?f=1&t=138
Страница 1 из 1

Автор:  Димыч [ Среда, 29 Март, 2006 12:27 ]
Заголовок сообщения:  Среда разработки

Поскольку этот форум самый живой из доступных по Oberon'у, задам вопрос здесь.

Язык Oberon, равно как и его расширения и родственники - замечательная штука. Знакомство с доступными материалами показало, что среда Oberon для своего времени была не менее классная штука. Для КП есть масса библиотек, что само по себе неплохо.

Но я (как разработчик) вынужден пока не рассматривать среду BlackBox как основу для разработок.
Причина банальна (хотя может быть и нет).
Нет законченной технологии построения пользовательских приложений. Т.е. берем среду BB, измываемся над ней, получаем нечто.

Но это нечто будет:
1) MDI приложение. Насколько я понял, для SDI придется повозиться.
2) Потащит за собой немало библиотек (не проблема в общем-то, но пойди разберись, что такое минимальная среда и какие файлы надо; и все-равно их остается немало).
3) При всей своей исключительности (в теории), на практике среда BB торчит из приложения больше, чем уши из кролика. Это ни хорошо, ни плохо, но это так. Надо постараться, чтобы в работающем приложении остались только функции приложения (как минимум, это слабо документировано, а если и документировано, то не так хорошо ищется), а не функции среды.
4) Для Windows среды очень большие претензии к дизайнеру диалогов. Что ни говори, а Delphi в этой среде даст фору любому IDE.

В этом смысле интерес представляет XDS. Но его судьба непонятна, равно как есть проблемы с нахождением библиотек. И там тоже нет нормального дизайнера. Но у того хоть среда не торчит из приложения (в смысле получаются нормальные Win/Linux приложения).

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

Хотелось бы услышать (и, возможно, преложить) некоторую концепцию (:D о загнул!) развития Оберон-семейства с целью получить не только возможность теоретизировать о разработках (фича А круче фичи Б), но и возможность реально что-то делать пользовательское. Особенно в свете последних событий с Borland Delphi.
С уважением, Дмитрий.

Автор:  Илья Ермаков [ Среда, 29 Март, 2006 14:58 ]
Заголовок сообщения: 

Здравствуйте, Дмитрий!

Во многом вы правы. Однако на каждый пункт есть, что и возразить:

>1) MDI приложение. Насколько я понял, для SDI придется повозиться.

Отчасти да, отчасти нет. Документные окна действительно жестко привязаны к MDI, отключить же главное окно и пользоваться диалоговыми Tool Dialog не мешает никто - это делается очень легко.
Одно из наших направлений в ООО "Метасистемы", которое мы два месяца начали - это как раз мультимедиа-энциклопедии, что само по себе уже очень далеко от серенького MDI. Месяц назад в печать ушла энциклопедия "Школа DJ" - вот информация: http://metasystems.ru/news/index.php?msg_id=265. Если интересно, могу по эл. почте дать ссылку на демку. Так вот, делался этот интерфейс на стандартных диалогах ББ, весь текстовый движок - от ББ. Писали свою библиотечку скругления и накладывания скинов на уже открытые окна ББ. Впечатления: делали бы на Дельфе+HTML, провозились бы гораздо дольше и проблем было бы больше. В графическом интерфейсе ББ самое удачное - это модель составных документов и текстов, при которой нет никакой разницы между формой, текстом, вашим отображением и т.д. - все это может быть как угодно вложено друг в друга, отредактировано (в том числе пользователем вашего конечного приложения), показано и т.д.

В течение недели выйдет обновление нашей открытой библиотеки Mt - включим туда модуль для использования окон нестандартного стиля и кое-что еще по этой теме.

>3) Потащит за собой немало библиотек (не проблема в общем-то

Действительно, не проблема. Сначало тоже напрягало (точнее сказать, было непривычно). Однако же Дельфа тащит с собой не многим меньший Run-Time (400 Кб против 1200 Кб у ББ), но при этом загрузка приложений любой сложности на ББ происходит моментально, т.к. модули грузятся и подключаются постепенно. В то же время дельфовое приложение с мало-мальски интересным ГУЕм точно также разрастается до 1-2 метров, при этом может грузиться до 30-40 секунд.
Плюс возможность выпускать обновления/расширения/дополнения к своему ПО в виде отдельных модулей, не заморачиваясь с DLL и собственными протоколами.

>Для Windows среды очень большие претензии к дизайнеру диалогов.

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

Однако стандартный ГУИ действительно требует расширения. Мы, например, сейчас начинаем писать его DirectX версию. Вот здесь и обнаруживается вся мощь BlackBox Framework - вся реализация GUI отделена от абстракций. Достаточно подменить 3-4 модуля (HostPorts, HostWindows, HostCFrames), которые эту реализацию при запуске инсталлируют в стандартные модули, - и все ранее написанные отображения и компоненты ничего даже не узнают, просто начнут рисовать на новые поверхности.

Oberon Microsystems готовят 1.6-ю версию, наверняка будут развивать дальше, поживем-увидим...

Автор:  Димыч [ Среда, 29 Март, 2006 15:31 ]
Заголовок сообщения: 

Спасибо за хороший ответ.
Попробую лучше поизучать среду.

Остался вопрос уже применительно к вашей фирме.
Илья Ермаков писал(а):
Однако стандартный ГУИ действительно требует расширения. Мы, например, сейчас начинаем писать его DirectX версию.


Почему именно DX, почему не OpenGL? Вроде как собираются портировать BB под Linux. А там DX как будет использоваться? Wine?
Непонятно...

В любом случае, хочется простых вещей (объяснений как использовать среду BB для создания пользовательских приложений). Хороших и разных.
Дмитрий.

Автор:  Сергей Губанов [ Среда, 29 Март, 2006 16:15 ]
Заголовок сообщения: 

Димыч писал(а):
почему не OpenGL?

Я где-то слышал, что Микрософт обещала прекратить поддержку OpenGL в своих будущих операционных системах.

Автор:  Илья Ермаков [ Среда, 29 Март, 2006 17:56 ]
Заголовок сообщения: 

Почему не OpenGL...

По многим причинам хотелось бы именно опенгль, однако
1) могут быть большие проблемы с воспроизведением видео, а для нас это важно;
2) сначала опираться будем не на Direct3D, а на DirectDraw
3) скорее всего, для GUI сделаем дополнительную пррослойку абстракций, например, "окна с собственной отрисовкой", которую можно будет использовать и с тем, и с другим.

Автор:  Прохожий [ Суббота, 01 Апрель, 2006 16:19 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
Документные окна действительно жестко привязаны к MDI, отключить же главное окно и пользоваться диалоговыми Tool Dialog не мешает никто - это делается очень легко.

Пользуясь случаем, спрошу, как это делается...?

Автор:  Илья Ермаков [ Суббота, 01 Апрель, 2006 22:47 ]
Заголовок сообщения: 

Нужно запустить приложение с ключом /NOAPPWIN.
При этом ключ не обязательно писать в ярлыке.
Можно положить в папку System/Rsrc файл CommandLine.txt следующего формата:

COMMANDLINE
/NOAPPWIN

Автор:  Илья Ермаков [ Суббота, 01 Апрель, 2006 22:49 ]
Заголовок сообщения: 

Я же использую способ, простой до неприличия, но абсолютно действенный (только ногами не бейте :-) ) - придумал его еще до того, как узнал про NOAPPWIN:

MoveWindow(HostWindows.main, 10000, 10000).

инструментальные диалоги по-прежнему открываются в пределах экрана, все остальное уезжает очень далеко :-)

Автор:  Прохожий [ Воскресенье, 02 Апрель, 2006 08:02 ]
Заголовок сообщения: 

Да, действительно, очень легко :) А это получается, что обычные документы мы можем тоже открывать, как ToolDialog! Жаль вот только, что размеры ToolDialog менять нельзя - растягивать в разные стороны и всё такое...

Автор:  Cardinal [ Воскресенье, 02 Апрель, 2006 09:59 ]
Заголовок сообщения: 

Не запускается Blackbox через ярлык c параметром Объект
Код:
C:\15\BlackBox.exe /NOAPPWIN
тоже самое - при создании файла CommandLine.txt. Двойной щелчок на ярлыке - и ничего, ни на экране ни в списке процессов диспетчера задач. А определение процедуры MoveWindow с тремя параметрами
Цитата:
MoveWindow(HostWindows.main, 10000, 10000).
нигде не нашел, есть только api-шное:
Код:
PROCEDURE MoveWindow* ["USER32.dll", ""] (hWnd: HWND; X: INTEGER; Y: INTEGER; nWidth: INTEGER; nHeight: INTEGER; bRepaint: BOOL): BOOL;
(*END MoveWindow;*)


Версия Blackbox 1.5 Build on 12.12.2005.

Автор:  Прохожий [ Воскресенье, 02 Апрель, 2006 13:01 ]
Заголовок сообщения: 

У вас наверное нет ToolDialoga, который бы запускался при запуске Блэкбокса... добавьте что-нибудь в файле system/mod/config...

Автор:  Илья Ермаков [ Воскресенье, 02 Апрель, 2006 13:17 ]
Заголовок сообщения: 

Да, естественно, нужно открывать какой-либо ToolDialog из Config.Setup.

MoveWindow - ничего архаичного в ней нет, обычная API-функция. Я привел пример с 3-мя параметрами просто для демонстрации идеи. А так, конечно, у нее 5: WinApi.MoveWindow, MoveWindowEx.

Автор:  Сергей Оборотов [ Воскресенье, 02 Апрель, 2006 13:41 ]
Заголовок сообщения: 

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

Автор:  Прохожий [ Воскресенье, 02 Апрель, 2006 14:45 ]
Заголовок сообщения: 

Проблема - при открытии документа через OpenToolDialog() получается ToolDialog бесконечной высоты - при любом разрешении не вижу нижней границы. Ну можно же это как-то отрегулировать?

Автор:  Прохожий [ Воскресенье, 02 Апрель, 2006 16:08 ]
Заголовок сообщения: 

Разобрался - меняем Tools -> Document Size
А полосу прокрутки сбоку отобразить никак?

Автор:  Илья Ермаков [ Понедельник, 03 Апрель, 2006 10:56 ]
Заголовок сообщения: 

Цитата:
Да, действительно, очень легко Smile А это получается, что обычные документы мы можем тоже открывать, как ToolDialog! Жаль вот только, что размеры ToolDialog менять нельзя - растягивать в разные стороны и всё такое...


Ну, с изменением размеров можно поколдовать - поменять с помощью АПИ стиль окна на лету. Именно это пока не делал, но заголовки убирал и форму окна менял. Скоро выложим свежую версию Mt с этими функциями.

А документы можно открывать, положив на форму TextView.

Автор:  Прохожий [ Понедельник, 03 Апрель, 2006 15:47 ]
Заголовок сообщения: 

Что-то не нашел я TextView, чтобы его на форму положить...

Автор:  Илья Ермаков [ Понедельник, 03 Апрель, 2006 21:27 ]
Заголовок сообщения: 

Выделите любой текстовый документ, нажав Ctrl-Пробел (Edit->Select Document), скопируйте и вставьте его на форму. На форме окажется форматированный текст. Если нужно, то из кода можно добраться до этого отображения (если нужно, покажу как) и вывести в него все, что угодно, да, впрочем, и на форму можно из кода положить все, что угодно - любое отображение.

Автор:  Сергей Оборотов [ Среда, 05 Апрель, 2006 05:16 ]
Заголовок сообщения: 

Очевидно, Прохожий имел в виду интерфейс перетаскивания. Разница между "вставить" и "положить" небольшая. Но (применительно к BlackBox) первый термин точнее.

Автор:  Прохожий [ Четверг, 06 Апрель, 2006 15:51 ]
Заголовок сообщения: 

Разобрался... Оказывается туда еще и скроллер добавить можно (и нужно!), так что с текстовыми вставками в Блэкбоксе, кажется, все в порядке.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/