OberonCore
https://forum.oberoncore.ru/

Извлечение браузера из A2 (Bluebottle),
https://forum.oberoncore.ru/viewtopic.php?f=22&t=4455
Страница 1 из 1

Автор:  bill [ Среда, 21 Август, 2013 17:56 ]
Заголовок сообщения:  Извлечение браузера из A2 (Bluebottle),

1.Простой вопрос, что обознчает следующее слово"OBJECT" в Active Oberon;

2. Браузер в WinAos написан на языке Active Oberon, необходимо перевести код на Black Box. Как это сделать?

3. Как извлечь браузер из A2 (Bluebottle)?

4. Как сделать так чтобы браузер из A2, заработал напрямую в Windows без оболочки Bluebottle?

Автор:  Madzi [ Среда, 21 Август, 2013 21:29 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

1. OBJECT в Active Oberon - новая форма записи, позволяющая группировать записи RECORD и процедуры их обрабатывающие.
Но есть несколько особенностей:
а. У OBJECT можно задать конструктор (с помощью знака "&" перед именем процедуры), который будет выполняться в момент создания объекта с помощью оператора NEW();
б. У OBJECT может быть тело, которое будет выполняться после выполнения конструктора. Для тела можно задать директиву {ACTIVE}, - в этом случае создастся поток, в котором оно будет выполнятся. Если тело "зациклено", то поток будет жить "вечно".

2. Перевести код простой конвертацией не получится, хоть Active Oberon и Component Pascal близкие языки, но всё-таки разные. Так что код придётся писать самому. Другое дело, что писать код, глядя в реализацию на другом (близком) языке проще, чем полностью с нуля.

3. Теоретически, браузер можно скомпилировать в нативное windows приложение. Для этого нужно переписать взаимодействие программы с оконным интерфейсом Bluebottle в оконный интерфейс Windows.

4. См. п. 3. Также следует учитывать что A2 - самостоятельная операционная система, которая может выполняться на голом железе, а WinAos - прослойка между системой A2 и Windows, которая "подменяет" системные вызовы A2 на системные вызовы Windows. Так что совсем выдрать браузер из A2 не получится, но скомпилировать исполняемую в Windows программу вполне можно, правда такая программа будет содержать необходимые части A2.

Автор:  bill [ Пятница, 23 Август, 2013 20:25 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

решил изучить Active Oberon, и основы работы Win Aos, я думаю это самое разумное решение, чтобы приблизиться к моей цели

Я до сих пор не понимаю многого в Black Box, а в Active Oberon тоже много непонятного , но заметно эти системы похожи, это плюс.
Я хочу задать вопросы.

1. Вот модули которые импортирует Browser in Win Aos:

MODULE WebBrowser;
IMPORT
WebBrowserPanel,
Strings, KernelLog, WMGraphics, WMComponents, WMStandardComponents, WMWindowManager, WMEditors,
Modules, WMRestorable, XML, WMRectangles, WMMessages, Commands, Files;

Если в блек боксе похожие на них модули? я проверил скорей всего нет, я бы сразу использовал свои блекбоксовские модули, ато придеться переводить эти модули.

2. Вышеуказанные модули используют еше очень много других модулей, если переводить эти колоссальное количество модулей в блек бокс, придеться перевести чуть ли не всю Win Aos?

Автор:  Роман М. [ Суббота, 24 Август, 2013 00:07 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

bill писал(а):
решил изучить Active Oberon, и основы работы Win Aos, я думаю это самое разумное решение, чтобы приблизиться к моей цели

Я до сих пор не понимаю многого в Black Box, а в Active Oberon тоже много непонятного , но заметно эти системы похожи, это плюс.
Я хочу задать вопросы.

1. Вот модули которые импортирует Browser in Win Aos:

MODULE WebBrowser;
IMPORT
WebBrowserPanel,
Strings, KernelLog, WMGraphics, WMComponents, WMStandardComponents, WMWindowManager, WMEditors,
Modules, WMRestorable, XML, WMRectangles, WMMessages, Commands, Files;

Если в блек боксе похожие на них модули? я проверил скорей всего нет, я бы сразу использовал свои блекбоксовские модули, ато придеться переводить эти модули.

2. Вышеуказанные модули используют еше очень много других модулей, если переводить эти колоссальное количество модулей в блек бокс, придеться перевести чуть ли не всю Win Aos?
Поскольку я поверхностно знаком с этой системой, то перескажу то как я понимаю её устройство:
WinAOS - это, собственно, почти ОС, за исключением того, что работает поверх установленной ОС и поэтому в ней отсутсвуют драйвера и системные вызовы заменены. Модуль Kernel обращается к низлежащей ОС для получения её сервисов (работа с памятью и прочее). Что касается программного слоя, то он имитирует работу AOS, поэтому для работы любого приложения требуется весь набор сервисов AOS.
Так что мне не представляется возможным просто взять да и "вырвать" веб-броузер из контекста AOS.
Поэтому наиболее разумным является детальное изучение структур и операций веб-броузера, чтобы затем создать свой броузер с минимальным набором функций. После изучения создай модули с набором сервисов, необходимых для построения веб-броузера (сеть, графика и пр.). Сделай так, чтобы лишь незначительная их часть зависела от платформы/ОС/компилятора/библиотек. Не знаю как реализована работа графики, но может имеет смысл выводить графические образы не напрямую через низлежащие API-вызовы Windows, а с помощью библиотек AGG/Cairo (векторная графика) и SDL (растровая графика).
Начни с запроса GET. Отобрази DOM-структуру полученного документа на экран. Затем пробуй добавить интеракцию с пользователем. О Джаваскрипте пока рано говорить.

Только так ты сможешь понять как строится веб-броузер.

Автор:  bill [ Пятница, 30 Август, 2013 17:34 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

Спасибо вам за ответы, на данный момент читаю статьи и книги про оберон,
Есть вопросы.
1.
MODULE Message_easy;
IMPORT StdLog;
PROCEDURE Test*;
VAR
BEGIN
StdLog.String("привет");
StdLog.Ln;
END Test;
END Message_easy.
Этот же пример тока в Вин Аос нада вывести сообшение в окно а не В лог.
2.
Можна ли писать приложения для Win Aos, из среды разработки для виндовс.
Или нужно писать приложения внутри Win Aos с его компилятором

Автор:  Kemet [ Пятница, 30 Август, 2013 18:27 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

bill писал(а):
Этот же пример тока в Вин Аос нада вывести сообшение в окно а не В лог.

Что значит в окно? Кстати StdLog в А2 нет, есть, например, KernelLog.
bill писал(а):
Можна ли писать приложения для Win Aos, из среды разработки для виндовс.
Или нужно писать приложения внутри Win Aos с его компилятором

Можно - поддерживаются модули ASCII/UTF8.

Автор:  Valery Solovey [ Пятница, 30 Август, 2013 18:29 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

Редактировать исходники можно в винде: по умолчанию исходники сохраняются в текстовом файле в кодировке UTF8.
Компилировать и запускать получится только в WinAOS. Ну или существуют способы которые сложные и потому я ими не интересовался.

Автор:  bill [ Пятница, 30 Август, 2013 18:45 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

Kemet писал(а):
bill писал(а):
Этот же пример тока в Вин Аос нада вывести сообшение в окно а не В лог.

Что значит в окно? Кстати StdLog в А2 нет, есть, например, KernelLog.
bill писал(а):
Можна ли писать приложения для Win Aos, из среды разработки для виндовс.
Или нужно писать приложения внутри Win Aos с его компилятором

Можно - поддерживаются модули ASCII/UTF8.


Я имел ввиду MessegeBox.Show("Privet"); // как в сишарп

Автор:  Kemet [ Пятница, 30 Август, 2013 19:09 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

bill писал(а):
Я имел ввиду MessegeBox.Show("Privet"); // как в сишарп

Реализация и хорошие примеры находятся в модуле WMDialogs.Mod
В конце модуля можно понажимать средней кнопкой мыши на примеры типf

WMDialogs.Test ~
WMDialogs.TestMsg ~
WMDialogs.TestLogin ~
WMDialogs.TestUserInfo ~
WMDialogs.TestCustomDialog Test:Dialog 100 100 ~

или ввести их в консоли А2
и посмотреть на результат и на реализацию.

Автор:  Madzi [ Пятница, 30 Август, 2013 22:02 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

Для того, чтобы программировать в Windows на AO я сделал pluginк NetBeans.

А для того, чтобы взаимодействовать с Windows - можно подгружать dll-ки и использовать WinApi (но только в WinAos'e, так как нужно помнить, что Aos - самостоятельная операционная система, которая может работать на голом железе, просто для удобства существуют прослойки WinAos и UnixAos).

Автор:  bill [ Вторник, 03 Сентябрь, 2013 11:25 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

Вот что я собираюсь сделать, вот мой сайт там статья http://koobs-print.ucoz.ru/

Автор:  igor [ Вторник, 03 Сентябрь, 2013 16:40 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

bill, у Вас на сайте написано, что Оберон - это предок Паскаля. На самом деле наоборот. А вообще, удачи Вам!

Автор:  Madzi [ Вторник, 03 Сентябрь, 2013 21:43 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

И если быть совсем точным, то AOS - старое название, которое оказалось занятым, поэтому операционная система называется A2. Bluebottle - это название графической оболочки A2. Саму операционную систему можно запустить без графической оболочки (например, на микроконтроллере). И написана она на языке Active Oberon, который является потомком языка Oberon.

Автор:  bill [ Пятница, 06 Сентябрь, 2013 21:09 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

можете ответить на вопрос, вопрос на моем сайте http://koobs-print.ucoz.ru/ мини статья от 10:20 06.09.13

Автор:  Madzi [ Суббота, 07 Сентябрь, 2013 00:02 ]
Заголовок сообщения:  Re: Извлечение браузера из A2 (Bluebottle),

В A2 (в отличие от BlackBox) используется "классическая" система управления.
Т.е. вам нужно написать где-то (в своём модуле или логе MessageEasy.Showstring, а потом кликнуть по надписи мышкой с зажатой клавишей Ctrl или средней кнопкой мыши.
А если поступать совсем правильно, то команда запуска будет выглядеть следующим образом MessageEasy.Showstring ~

Также вам потребуется команда SystemTools.Free MessageEasy ~, чтобы выгружать ваш модуль из памяти. Так как без выгрузки будет использоваться старый загруженный вариант, даже если вы измените и перекомпилируете модуль.

Обычно пишут исходник и сразу за ним команды доступа:
Код:
MODULE MessageEasy;
IMPORT KernelLog;
PROCEDURE Showstring*;
BEGIN
KernelLog.String("Hello World ");
KernelLog.Ln;
END Showstring;
END MessageEasy.

MessageEasy.Showstring ~

SystemTools.Free MessageEasy ~


+ В папке Sources есть примеры HelloWorld (кажется 4 штуки) разной степени сложности.

Частично о запуске модулей в A2 можно почитать здесь.

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