OberonCore https://forum.oberoncore.ru/ |
|
omcMetaItemsRW - чт./зап. эл. модуля Meta.Item в Stores https://forum.oberoncore.ru/viewtopic.php?f=90&t=4981 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Пятница, 14 Февраль, 2014 17:32 ] |
Заголовок сообщения: | omcMetaItemsRW - чт./зап. эл. модуля Meta.Item в Stores |
http://oberoncore.ru/bbcc/subs/omc/metaitemsrw |
Автор: | Пётр Кушнир [ Пятница, 14 Февраль, 2014 18:59 ] |
Заголовок сообщения: | Re: omcMetaItemsRW - чт./зап. эл. модуля Meta.Item в Stores |
Динамические хранилища, записывающие сами себя это интересно. Но если вдруг кому-то понадобится сделать Meta.Item из статического рекорда без создания указателя, всегда можно воспользоваться вот таким вот механизмом: Код: PROCEDURE Lookup(VAR r: ANYREC; OUT i: Meta.Item);
VAR type: Kernel.Type; mod: Kernel.Module; attr: Kernel.ItemAttr; global: BOOLEAN; BEGIN attr.obj := Meta.varObj; attr.typ := Meta.recTyp; attr.vis := Meta.exported; attr.adr := Services.AdrOf(r); attr.ptr := NIL; attr.mod := NIL; attr.desc :=Kernel.TypeOf(r); attr.ext := NIL; mod := Kernel.modList; WHILE (mod # NIL) & ((attr.adr < mod.data) OR (attr.adr >= mod.data + mod.dsize)) DO mod := mod.next END; IF mod # NIL THEN global := TRUE ELSE global := FALSE END; attr.mod := mod; Meta.GetThisItem(attr, i) END Lookup; |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |