Log in

No account? Create an account
BlackBox Component Builder Community

> recent entries
> calendar
> friends
> profile

Saturday, May 26th, 2007
6:13 am - BlackBox 1.6-rc5

Delayed As you all know, 02 may 2007 Oberon Microsystems have issued the first public release candidate of their new BlackBox version. The list of changes includes most of the patches listed on this site, but not all of them. Here is the complete summary:
- Background multitasking - partially accepted;
- GetThisWindow(p=NIL) - accepted;
- Empty TextView copy - accepted;
- Unicode date/time - BlackBox 1.6 uses unicode everywhere;
- Paint problem - accepted;
- Ctrl+Break - they made their own, better version;
- PopupMenu - accepted;
- Sequiencers.notRecorded - NOT accepted;
- DevCommanders.EndView - accepted;
- OleData "memory leak" - accepted.

A comment about background multitasking. Oberon Microsystems listed this patch as accepted, but did not fully implement it. I have notified them about the flaw, and their response is posted in comments.

Как вы все знаете, 2 мая 2007 Oberon Microsystems выпустила первую пробную версию BlackBox 1.6. Список изменений включает в себя большую часть патчей, опубликованных на этом сайте, но не все. Вот сводка:
- Фоновая многозадачность - частично принят;
- GetThisWindow(p=NIL) - принят;
- Копирование пустого TextView - принят;
- Юникодные дата/время - BlackBox 1.6 везде использует юникод;
- Проблема прорисовки - принят;
- Ctrl+Break - они сделали свою собственную, улучшенную версию;
- PopupMenu - принят;
- Sequiencers.notRecorded - НЕ принят;
- DevCommanders.EndView - принят;
- "Утечка памяти" OleData - принят.

Комментарий по поводу фоновой многозадачности. Разработчики Oberon Microsystems указали этот патч в списке принятых, но не реализовали его полностью. Я оповестил их о недоработке, после чего их ответ поместил в комментарии.

(2 comments | comment on this)

Tuesday, November 27th, 2007
11:57 pm - Beginner


I am trying to develop an add-in for the WinBUGs project using BlackBox. Tutorials available from WinBugs website did not help me since all they suggest is to change the template module to one's needs without any understanding of the underlying code structure. I am trying to look beyond of what WinBUGs developers have suggested so I would highly appreciate any reference to examples/tutorials for beginner users of Oberon CP. Is there any way to open/decode BlackBox symbol files (.osf)? That's the only way, I think, for me to understand the object they use in WinBUGs template file.

Thank you for any help in advance.

(5 comments | comment on this)

Wednesday, January 17th, 2007
1:13 am - All-in-one patch | Патч "все-в-одном"

Achive containing all currently availabe patches is updated (219'747 bytes).

Обновлен пакет со всеми выпущенными на данный момент патчами (219'747 байт).

(7 comments | comment on this)

1:09 am - OleData "memory leak" | "Утечка памяти" в OleData

Description: After pasting a piece of unicode text from the clipboard into TextViews.View the volume of allocated heap memory constantly grows.
Author: Alexander Iljin, 12.10.2006.
Problem: OleData.MemFile.NewReader and OleData.MemFile.NewWriter did not reuse existing rider passed to them as a parameter, they always created a new one.
- OleData.MemFile.NewReader and OleData.MemFile.NewWriter modified to reuse existing rider, if any.

PS: This is not actually a memory leak, because garbage collector will eventually reuse the memory allocated for unneeded riders. It's just a case of excess memory allocation which could be avoided.

To activate patch you must restart BlackBox.

Download this patch (zip, 10'191 bytes)

Описание: После вставки текста в кодировке unicode из буфера обмена в TextViews.View наблюдался постоянный рост объема выделенной динамической памяти.
Автор: Александр Ильин, 12.10.2006.
Проблема: При создании райдеров для объекта OleData.MemFile методами NewReader и NewWriter не использовался параметр old. Каждый раз при чтении создавался новый райдер вместо повторного использования существующего.
- OleData.MemFile.NewReader, OleData.MemFile.NewWriter: повторно используют существующий райдер, если он им передан в качестве параметра.

PS: На самом деле, это не утечка памяти, поскольку сборщик мусора при необходимости удалит ненужные райдеры. Это просто лишнее выделение памяти, которого можно было избежать.

Чтобы патч вступил в силу, необходимо перезапустить BlackBox.

Скачать этот патч (zip, 10'191 байт)

(comment on this)

12:26 am - DevCommanders.EndView partial restore | Частичная прорисовка DevCommanders.EndView

Description: Patch fixing partial update handling in DevCommanders.EndView.Restore.
Author: Alexander Iljin, 12.11.2006.
Problem: DevCommanders.EndView does not repaint itself correctly if a partial update is required.
- DevCommanders.EndView.Restore: variable replaced with consant.

To activate patch you must restart BlackBox.

Download this patch (zip, 5'563 bytes)

Описание: Патч, исправляющий ошибку частичной прорисовки в DevCommanders.EndView.Restore.
Автор: Александр Ильин, 12.11.2006.
Проблема: компонент DevCommanders.EndView неправильно отображался при запросе на частичную прорисовку.
- DevCommanders.EndView.Restore: переменная заменена на константу.

Чтобы патч вступил в силу, необходимо перезапустить BlackBox.

Скачать этот патч (zip, 5'563 байта)

(comment on this)

12:17 am - Sequencers.notRecorded constant | Константа Sequencers.notRecorded

Description: Patch adding Sequencers.notRecorded constant.
Author: Alexander Iljin, 02.01.2007.
Problem: Ability to perform operations without adding them to the Undo/Redo chain was realized, but not published.
- constant Windows.notRecorded was moved to module Sequencers and published;
- the same constant was added to modules Models and Views, their documentation updated accordingly;
- modules Documents and Windows are using the new constant.

To activate patch you must restart BlackBox.

Download this patch (zip, 58'715 bytes)

Описание: Патч, добавляющий константу Sequencers.notRecorded.
Автор: Александр Ильин, 02.01.2007.
Проблема: Возможность выполнять операции без занесения их в цепь Undo/Redo была реализована, но не опубликована.
- константа Windows.notRecorded перенесена из модуля Windows в модуль Sequencers;
- аналогичная константа добавлена в модули Models и Views и в их документацию;
- модули Documents и Windows используют новую константу.

Чтобы патч вступил в силу, необходимо перезапустить BlackBox.

Скачать этот патч (zip, 58'715 байт)

(comment on this)

12:09 am - HostMenus.PopupMenu patch | Патч HostMenus.PopupMenu

Description: Patch fixing a bug in HostMenus.PopupMenu procedure.
Author: Alexander Iljin, 25.12.2006.
Problem: HostMenus.PopupMenu may show wrong context menu under certain
circumstances. For full description and steps to reproduce the
problem, see included Ctxmtest subsystem.
- Added procedure HostMenus.UpdateType;
- HostMenus.PopupMenu calls HostMenus.UpdateType;
- HostMenus.TimerTick calls HostMenus.UpdateType.

To activate patch you must restart BlackBox.

Download this patch (zip, 19'569 bytes)

Описание: Патч, исправляющий ошибку в HostMenus.PopupMenu.
Автор: Александр Ильин, 25.12.2006.
Проблема: Процедура HostMenus.PopupMenu в некоторых случаях отображает
неправильное меню. Полное описание и инструкции по воспроизведению
ошибки смотрите в приложенной подсистеме Ctxmtest.
- Создана процедура HostMenus.UpdateType;
- HostMenus.PopupMenu: используется HostMenus.UpdateType;
- HostMenus.TimerTick: используется HostMenus.UpdateType.

Чтобы патч вступил в силу, необходимо перезапустить BlackBox.

Скачать этот патч (zip, 19'569 байт)

(comment on this)

Tuesday, January 2nd, 2007
5:53 pm - Ctrl+Break patch | Патч Ctrl+Break

Description: Patch fixing Ctrl+Break functionality.
Author: Alexander Iljin, 24.09.2006.
Problem: Ctrl+Break key combination does not interrupt hung program
very well.
- fixed Kernel.KeyboardWatcher procedure;
- linked BlackBox.exe with new Kernel module.

To install patch replace files in BlackBox installation directory with
corresponding files from this patch. You must close BlackBox before
replacing BlackBox.exe.

Download this patch (zip, 74'117 bytes)

Описание: Патч, исправляющий работу Ctrl+Break.
Автор: Александр Ильин, 24.09.2006.
Проблема: Комбинация Ctrl+Break не очень хорошо прерывает зависшую
- исправлена процедура Kernel.KeyboardWatcher;
- BlackBox.exe слинкован с новым модулем Kernel.

Чтобы установить патч, замените файлы в каталоге установки BlackBox на
соответствующие файлы из этого патча. Прежде чем заменять файл
BlackBox.exe, следует закрыть BlackBox.

Скачать этот патч (zip, 74'117 байт)

(comment on this)

Monday, September 18th, 2006
2:19 am - Bug Reports | Сообщения об ошибках

Anyone may leave BlackBox bug reports in comments to this post. Report in free form, but, please, leave some contact details (e-mail or ICQ), so that I could ask for additional information.

В комментариях к данному сообщению все желающие могут оставить сообщения о замеченных ошибках в BlackBox. Формат сообщений свободный, но, пожалуйста, указывайте контактные данные (e-mail или ICQ), чтобы к вам можно было обратиться за дополнительной информацией.

(comment on this)

Sunday, September 17th, 2006
3:43 pm - Paint problem | Проблема прорисовки

Description: Patch fixing problems with window repaints in BlackBox. Plus background multitasking enhancement patch by Marco Ciot. Plus HostWindows.Directory.GetThisWindow patch.
Author: Alexander Iljin, 15.09.2006. Background multitasking patch: Marco Ciot, 25.03.2006. GetThisWindow patch: Alexander Iljin, 31.05.2006.
Problem: Other program's windows may leave traces of visual garbage when moved over BlackBox.
- HostPorts.Port.CloseBuffer: removed call to USER32.ValidateRect;
- HostPorts.Rider.Input: added call to USER32.UpdateWindow;
- HostWindows.DocWinHandler, HostWindows.DialogHandler: USER32.WMPaint handler updated.

Download this patch (zip, 34'315 bytes)

Описание: Патч, исправляющий проблемы с прорисовкой окон в BlackBox. Плюс патч, улучшающий фоновую многозадачность, от Marco Ciot. Плюс патч процедуры HostWindows.Directory.GetThisWindow.
Автор: Александр Ильин, 15.09.2006. Патч фоновой многозадачности: Marco Ciot, 25.03.2006. Патч процедуры GetThisWindow: Александр Ильин, 31.05.2006.
Проблема: Окна других программ могут оставлять визуальные следы, если их перетаскивать над BlackBox.
- HostPorts.Port.CloseBuffer: удален вызов USER32.ValidateRect;
- HostPorts.Rider.Input: добавлен вызов USER32.UpdateWindow;
- HostWindows.DocWinHandler, HostWindows.DialogHandler: обновлен обработчик события USER32.WMPaint.

Скачать этот патч (zip, 34'315 байт)

(1 comment | comment on this)

2:30 pm - Unicode date and time | Дата и время в unicode

Description: Patch adding unicode support to procedures HostDialog.DateToString and HostDialog.TimeToString.
Author: Alexander Iljin, 10.09.2006.
Problem: StdStamps.StdView does not display non-english dates correctly due to unicode-unaware conversion "str := sstr$".
Changes: Calls to WinApi functions replaced with their unicode equivalents. Removed unnecessary local variables. Old commented code is hidden in folds.

Download patch (zip, 12'500 bytes)

Описание: Патч, добавляющий поддержку unicode в процедуры HostDialog.DateToString и HostDialog.TimeToString.
Автор: Александр Ильин, 10.09.2006.
Проблема: StdStamps.StdView некорректно отображает неанглоязычные символы в дате из-за преобразований вида "str := sstr$", не поддерживающих unicode.
Изменения: Вызовы функций WinApi заменены на эквиваленты, поддерживающие unicode. Удалены ставшие ненужными локальные переменные. Старый закомментированный код спрятан в fold'ы.

Скачать патч (zip, 12'500 байт)

(comment on this)

2:23 pm - Empty TextView copy trap | Ошибка при копировании пустого TextView

Description: Patch fixing a trap upon copying an empty text view to the clipboard.
Author: Alexander Iljin, 05.09.2006.
Problem: If an empty text view is copied to clipboard or dragged-and-dropped onto OLE container, a trap "NIL dereference (write)" occurs due to insufficient memory allocation.
Changes: Increased memory buffer size in procedures HostTextConv.ExportDText and HostTextConv.ExportDUnicode.

Download patch (zip, 11'143 bytes)

Описание: Патч, исправляющий trap при копировании пустого текстового документа в буфер обмена.
Автор: Александр Ильин, 05.09.2006.
Проблема: Если текстовый документ копируется в буфер обмена или перетаскивается в OLE-контейнер, возникает trap "NIL dereference (write)" из-за недостаточного выделения памяти.
Изменения: Увеличен размер выделяемой памяти в процедурах HostTextConv.ExportDText и HostTextConv.ExportDUnicode.

Скачать патч (zip, 11'143 байта)

(comment on this)

2:08 pm - HostWindows.Directory.GetThisWindow

Author: Alexander Iljin, 31.05.2006.
This patch fixes a single procedure: HostWindows.Directory.GetThisWindow(p: Ports.Port; px, py: INTEGER; OUT x, y: INTEGER; OUT w: Windows.Window). Usually this function finds a window by coordinates. Original version crashes if p = NIL (NIL dereference trap). The patched version allows parameter p = NIL. If p = NIL then parameters px and py are treated as screen coordinates, otherwise they are coordinates within port p.

Download patch (zip, 20'488 bytes)

Автор: Александр Ильин, 31.05.2006.
Данный патч исправляет только одну процедуру: HostWindows.Directory.GetThisWindow(p: Ports.Port; px, py: INTEGER; OUT x, y: INTEGER; OUT w: Windows.Window). Первоначальная версия процедуры вызывает ошибку "NIL dereference trap", если параметр p = NIL. Исправленная версия процедуры допускает параметр p = NIL. Если p = NIL, то параметры px и py интерпретируются как экранные координаты, в противном случае это координаты внутри порта p.

Скачать патч (zip, 20'488 байт)

(comment on this)

1:33 pm - Background multitastking | Фоновая многозадачность

Description: Patch enhancing background multitasking in BlackBox.
Author: Marco Ciot, 25.03.2006.
Problem: Background tasks (Sercives.Action) pause execution, when user enters a loop using HostPorts.Rider.Input (i.e., keeps holding a mouse button or looks through main menu).
System.Services: new public procedure ActionRunning: BOOLEAN.
HostPorts.Rider: added a call to Services.actionHook.Step to procedure Input and KERNEL32.Sleep to reduce CPU usage during loops.
TextControllers: a useless call to Input was deleted from procedure FilteredPollCursor.

Alexander Iljin, 24.05.2006: objects Services.Action are allowed to call HostPort.Rider.Input without causing a trap. An example of such action is CpcControlTips.Action.

Download patch (zip, 30'021 bytes)

Описание: Патч для улучшения фоновой многозадачности в BlackBox.
Автор: Marco Ciot, 25.03.2006.
Проблема: Фоновые задачи (Sercives.Action) прекращают выполняться, если пользователь вошел в один из циклов, использующих HostPorts.Rider.Input (например, держит нажатой кнопку мыши или вошел в меню).
System.Services: в интерфейс добавлена функция ActionRunning: BOOLEAN.
HostPorts.Rider: внутренние изменения функции Input.
TextControllers: из фукнции FilteredPollCursor удален бесполезный вызов Input.

Александр Ильин, 24.05.2006: объектам Services.Action разрешено вызывать HostPort.Rider.Input, это не приведет к trap. Пример такого объекта: CpcControlTips.Action.

Скачать патч (zip, 30'021 байт)

(comment on this)

Thursday, September 7th, 2006
7:14 pm - Intention of this community | Назначение данного сообщества

I decided to try and start a Live Journal blog dedicated to BlackBox Component Builder by "Oberon microsystems AG". Since it has become an open source project, I think something more than a mail list is called for. The main intention of this blog is to gather people interested in developing the application and making existing patches available for download. Also this blog may be used as a place where news and/or bug reports may be posted and discussed.

Я решил попробовать завести на Live Journal блог, посвященный программе BlackBox Component Builder от "Oberon microsystems AG". Поскольку проект приобрел статус open source, я думаю, есть необходимость в чем-то большем, чем почтовая рассылка. Главные задачи этого блога заключаются в том, чтобы собрать людей, заинтересованных в дальнейшем развитии программы, и в предоставлении возможности скачать существующие патчи. Также этот блог может быть использован как место, где можно разместить и обсудить новости или сообщения о найденных ошибках.

(1 comment | comment on this)

> top of page