OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 19 Октябрь, 2019 08:31

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




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Извлечение браузера из A2 (Bluebottle),
СообщениеДобавлено: Среда, 21 Август, 2013 17:56 

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
1.Простой вопрос, что обознчает следующее слово"OBJECT" в Active Oberon;

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

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

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


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

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 573
Откуда: Россия, Санкт-Петербург
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.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 23 Август, 2013 20:25 

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
решил изучить 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 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
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-структуру полученного документа на экран. Затем пробуй добавить интеракцию с пользователем. О Джаваскрипте пока рано говорить.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 17:34 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 18:27 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 714
Откуда: Барнаул
bill писал(а):
Этот же пример тока в Вин Аос нада вывести сообшение в окно а не В лог.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 18:29 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 18:45 

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
Kemet писал(а):
bill писал(а):
Этот же пример тока в Вин Аос нада вывести сообшение в окно а не В лог.

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

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


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Август, 2013 19:09 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 714
Откуда: Барнаул
bill писал(а):
Я имел ввиду MessegeBox.Show("Privet"); // как в сишарп

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

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

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


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

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 573
Откуда: Россия, Санкт-Петербург
Для того, чтобы программировать в Windows на AO я сделал pluginк NetBeans.

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


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

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
Вот что я собираюсь сделать, вот мой сайт там статья http://koobs-print.ucoz.ru/


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

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
bill, у Вас на сайте написано, что Оберон - это предок Паскаля. На самом деле наоборот. А вообще, удачи Вам!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 03 Сентябрь, 2013 21:43 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 573
Откуда: Россия, Санкт-Петербург
И если быть совсем точным, то AOS - старое название, которое оказалось занятым, поэтому операционная система называется A2. Bluebottle - это название графической оболочки A2. Саму операционную систему можно запустить без графической оболочки (например, на микроконтроллере). И написана она на языке Active Oberon, который является потомком языка Oberon.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Сентябрь, 2013 21:09 

Зарегистрирован: Четверг, 01 Август, 2013 16:39
Сообщения: 92
Откуда: Кыргызстан
можете ответить на вопрос, вопрос на моем сайте http://koobs-print.ucoz.ru/ мини статья от 10:20 06.09.13


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

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 573
Откуда: Россия, Санкт-Петербург
В 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 можно почитать здесь.


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

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


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

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


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

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