Т.к. в CNET не реализовано изменение z-порядка контролов (передний/задний план), то воспроизвести в пакете CNET его не выйдет...
Расширенное описание структуры тестового пакета:
hiSys.hws:
hiProject.hws (EntryPoint); Class: WinElement
hiOpenWindow.hws; Class: MultiElementEx; Sub: MainForm
hiMainForm.hws; Class: WinElement
hiButton.hws; Class: WinElement
func create(entry)
gvar(blk_gadget)
//blk_gadget = block.reggen()
end
hiProject.hws (EntryPoint); Class: WinElement
func doStart()
this.parent.initall()
end
hiOpenWindow.hws; Class: MultiElementEx; Sub: MainForm
func init
this.parent.initall_sdk()
end
hiMainForm.hws; Class: WinElement
func init()
blk_gadget = block.reggen()
this.parent.initall()
trace(blk_gadget.ascode())
end
hiButton.hws; Class: WinElement
func init()
blk_gadget.println('name:button; id:', this.id, '; text:', this.props("Text"), ';')
end
1) Добавляем визуальный контейнер OpenWindow.
2) Добавляем в контейнер 2 элемента Button.
3) Компилируем и получаем в отладке:
name:button; id:5; text:"1";
name:button; id:6; text:"2";
name:button; id:6; text:"1";
Причём замечу, что, в случае единичной регистрации блока blk_gadget именно в системном модуле hiSys.hws, данной ошибки не возникает...
Так же специально для этого случая, подготовил специальную сборку HiAsm, с минимальным к-вом пакетов (2) и тестовых элементов (5) представленных выше (компилятор пустышка - cmd).
Схема описанная выше, и наглядно демонстрирующая ошибку (только для для спец. сборки):
code_28407.txt
Собственно сама сборка (portable+7z): Скачать HiAsm_RTCG_bug.7z (2 мб)
p.s. Вот как-то так...
------------ Дoбавленo в 13.47:
Ещё один баг-репорт.
block.delete(<name>) - работает не корректно (точнее вообще не работает).
Выполнив следующий код:
blk_test = block.reggen()
blk_test.print('TestStr')
trace('status_block_delete: ' && block.delete(blk_test))
trace('block_link: ' && blk_test)
trace('block_begin:' && blk_test.ascode() && ':block_end')
status_block_delete: 1
block_link: block_1
block_begin:TestStr:block_end