Класс предназначен для работы с компонентом MaSubMatrix. Он является потомком класса TmaMatrix для доступа к созданной подматрице.

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

Свойства и функции класса TmaSubMatrix


constructor Create
Создание новой подматрицы.
constructor Create(matrix: ImaSubMatrix)
Присоедимяет класс к уже существующему классу с интерфейсом ImaSubMatrix.

Параметры:

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

constructor Create(matrix: ImaMatrix)
Присоедимяет класс к уже существующему классу с интерфейсом ImaMatrix. Класс должен поддерживать интерфейс ImaSubMatrix.

Параметры:

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

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

Параметры:

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

property Parent: TmaMatrix 
Свойство позволет получить и установить родительскую матрицу для подматрицы. При вызове также сбрасывается преобразование индекса.
procedure ClearStructure
Сбрасывает преобразование индекса так, что преобразование индекса не производится.
function VerifyStructure: Boolean
Функция проверяет правильность задания преобразования: каждой незафиксированной размерности родительской матрицы должна соответствовать размерность в подматрице.

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

true если преобразование задано правильно
procedure SetDim(parentDim: integer; dim: integer; Size: integer)
Функция устанавливает соответствие между размерностью parentDim родительской матрицы и размерностью dim подматрицы.

Если size=0, то таблица преобразования и аргумент index не используется.

Если size≠0 то таблица преобразования берется из ранее заданного соответствия с тем же parentDim и длина этой таблицы (и размер подматрицы по размерности dim) устанавливается равным size.

Параметры:

parentDim размерность родительской матрицы, которой будет соответствовать размерность dim в подматрице
dim изменяемая размерность в подматрице
size длина таблицы преобразования или 0, если таблица не используется

procedure SetDim(parentDim: integer; dim: integer; Size: integer; index: PInteger)
Функция устанавливает соответствие между размерностью parentDim родительской матрицы и размерностью dim подматрицы.

Таблица преобразования задается параметром index и длина этой таблицы (и размер подматрицы по размерности dim) устанавливается равным size. При этом таблица преобразования не копируется и все изменения массива index будут влиять на преобразование индексов.

Параметры:

parentDim размерность родительской матрицы, которой будет соответствовать размерность dim в подматрице
dim изменяемая размерность в подматрице
size длина таблицы преобразования или 0, если таблица не используется
index не используется, если size==0; таблица преобразования или NULL, если size≠0

procedure FixDim(parentDim: integer; index: integer)
Функция фиксирует размерность parentDim родительской матрицы и делает ее равной index.

Параметры:

parentDim фиксируемая размерность родительской матрицы
index фиксируемая координата по размерности parentDim родительской матрицы

procedure SetIdentityDim(dim:integer)
Функция увеличивает размерность подматрицы, добавляя размерность длины 1.

Параметры:

dim номер добавляемой размерности. При добавлении существующие размерности dim, dim+1,dim+2... "сдвигаются" на одну, сохраняя соответствия с размерностями родительской матрицы