OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 28 Апрель, 2024 11:10

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




Начать новую тему Ответить на тему  [ Сообщений: 20 ] 
Автор Сообщение
 Заголовок сообщения: Среда разработки
СообщениеДобавлено: Среда, 29 Март, 2006 12:27 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Поскольку этот форум самый живой из доступных по 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 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Здравствуйте, Дмитрий!

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

>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 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Спасибо за хороший ответ.
Попробую лучше поизучать среду.

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


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 29 Март, 2006 16:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Димыч писал(а):
почему не OpenGL?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 29 Март, 2006 17:56 
Модератор
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 01 Апрель, 2006 16:19 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
Илья Ермаков писал(а):
Документные окна действительно жестко привязаны к MDI, отключить же главное окно и пользоваться диалоговыми Tool Dialog не мешает никто - это делается очень легко.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 01 Апрель, 2006 22:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Нужно запустить приложение с ключом /NOAPPWIN.
При этом ключ не обязательно писать в ярлыке.
Можно положить в папку System/Rsrc файл CommandLine.txt следующего формата:

COMMANDLINE
/NOAPPWIN


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 01 Апрель, 2006 22:49 
Модератор
Аватара пользователя

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

MoveWindow(HostWindows.main, 10000, 10000).

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 02 Апрель, 2006 08:02 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
Да, действительно, очень легко :) А это получается, что обычные документы мы можем тоже открывать, как ToolDialog! Жаль вот только, что размеры ToolDialog менять нельзя - растягивать в разные стороны и всё такое...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 02 Апрель, 2006 09:59 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 18:08
Сообщения: 76
Не запускается 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 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
У вас наверное нет ToolDialoga, который бы запускался при запуске Блэкбокса... добавьте что-нибудь в файле system/mod/config...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 02 Апрель, 2006 13:17 
Модератор
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 02 Апрель, 2006 13:41 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Очевидно в данном случае оставшие параметры MoveWindow излишни. Поэтому Илья их и убрал. По-моему, чтобы не путаться можно было и имя подсократить немного. На смысл идеи это не повлияло бы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 02 Апрель, 2006 14:45 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
Проблема - при открытии документа через OpenToolDialog() получается ToolDialog бесконечной высоты - при любом разрешении не вижу нижней границы. Ну можно же это как-то отрегулировать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 02 Апрель, 2006 16:08 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
Разобрался - меняем Tools -> Document Size
А полосу прокрутки сбоку отобразить никак?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 03 Апрель, 2006 10:56 
Модератор
Аватара пользователя

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


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 03 Апрель, 2006 15:47 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
Что-то не нашел я TextView, чтобы его на форму положить...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 03 Апрель, 2006 21:27 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Выделите любой текстовый документ, нажав Ctrl-Пробел (Edit->Select Document), скопируйте и вставьте его на форму. На форме окажется форматированный текст. Если нужно, то из кода можно добраться до этого отображения (если нужно, покажу как) и вывести в него все, что угодно, да, впрочем, и на форму можно из кода положить все, что угодно - любое отображение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 05 Апрель, 2006 05:16 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Очевидно, Прохожий имел в виду интерфейс перетаскивания. Разница между "вставить" и "положить" небольшая. Но (применительно к BlackBox) первый термин точнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 06 Апрель, 2006 15:51 

Зарегистрирован: Воскресенье, 19 Март, 2006 17:37
Сообщения: 11
Разобрался... Оказывается туда еще и скроллер добавить можно (и нужно!), так что с текстовыми вставками в Блэкбоксе, кажется, все в порядке.


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

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


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

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


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

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