Этот класс является базовым для классов TmaList, TmaMethod и TmaAlgorithm и оболочкой для интерфейса ImaReadList. Его функции позволяют обращаться ко всему поддереву, корнем которого является этот объект, и считывать и изменять значения в этом поддереве.
Свойства и функции класса TmaReadList


constructor Create(list:ImaReadList)
Присоедимяет класс к уже существующему интерфейсу.

Параметры:

list указатель на существующий интерфейс

constructor Create(cell:CmaCell)
Присоединяет класс к интерфейсу, хранящемуся в ячейке.

Параметры:

cell ячейка, из которой копируется значение

property Size:integer
Свойство только для чтения. Возвращает длину списка.
property Items[index:variant]:TmaReadList
Свойство только для чтения. Позволяет перейти к элементу списка, заданному его номером или именем.

Параметры:

index имя (если index имеет строковый тип) или номер (если index — целое число) ячейки

Возвращаемое значение:

Указатель на этот класс. Это позволяет в одном операторе двигаться по дереву и счтиывать/записывать значения в одном операторе, как показано в примере.
property Names[index:integer]:WideString
Свойство только для чтения. Возвращает имя элемента по его номеру.

Параметры:

index номер ячейки

Возвращаемое значение:

Имя ячейки или пустая строка, если в списке нет ячейки с номером index.
function IndexOf(name:WideString):integer
Функция возвращает номер элемента с именем name.

Параметры:

name имя ячейки

Возвращаемое значение:

Номер ячейки или -1, если в списке нет ячейки с именем name.
function _Type:Cardinal
Функция возвращает тип объекта, хранящегося в текущей ячейке.

Возвращаемое значение:

Тип объекта в текущей ячейке или (если текущая ячейка пустая) объекта, с указатель на который хранится в классе-оболочке.
property AsBoolean:Boolean
property AsLong:Integer
property AsDouble:Double
property AsString:WideString
Свойства считывают или записывают значение в текущую ячейку и делают текущим корневой список, т.е. список, который был задан при создании объекта.
function Default(value:integer):TmaReadList
function Default(value:double):TmaReadList
function Default(value:WideString):TmaReadList
Функции устанавливают константы, которые выдаются при попытке прочитать данные из несуществующей или пустой ячейки. Эти константы локальны для каждого экземпляра класса-оболочки и их можно изменять в процессе работы со списком. Работа с этими константами показана в примере.

Параметры:

value Устанавливаемое значение

property AsMatrix:TmaMatrix
property AsSparseMatrix:TMaSparseMatrix
property AsReadList: TmaReadList
property AsList:TmaList
property AsAlgorithm: TmaAlgorithm
property AsStream:TmaStream
Свойства записывает или считывает объект из текущей ячейки. Текущим становится корневой список, т.е. список, который был задан при создании объекта.

Возвращаемое значение:

Класс-оболочка соответствующего типа. Его указатель на интерфейс может быть равен nil, если в текущей ячейке хранятся данные другого типа.
property AsCell:TmaCell
Свойство только для чтения. Возвращает текущую ячейку и делает текущим корневой список, т.е. список, который был задан при создании объекта. Если текущая ячейка не установлена, то возвращается nil.

Возвращаемое значение:

Созданный класс-оболочка.
property AsComponent:TmaComponent
Свойство только для записи. Записывает любой объект maCom в текущую ячейку и сделать текущим корневой список, т.е. список, который был задан при создании объекта.
Пример.

Чтение данных из немодифицируемого списка


var
  L:TmaReadList;
  m_Sc:TmaMatrix;
  Sc:TmaCell;
  i:integer;
begin
...

  L:=TmaReadList.Create(ainput);
  m_Sc:=L['ParamMatrix'].AsMatrix;
  // Этот оператор равнозначен двум следующим

  Sc:=L['Sc|y'].AsCell;
  m_Sc:=Sc.AsMatrix;

  i:=L['IntParam'].Default(10).AsInteger;
  // Если в списке не было ячейки с именем "IntParam", то i станет равным десяти.

...