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/