Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание двумерных массивов в Delphi: использование синтаксиса индексации `[]`

Delphi , Синтаксис , Массивы

Создание двумерных массивов в Delphi: использование синтаксиса индексации []

В Delphi для создания двумерных массивов с использованием синтаксиса индексации [] необходимо определить свойство Item, которое будет работать с несколькими индексами. Это позволяет обращаться к элементам массива так, как будто они являются одномерным массивом, где каждый элемент — это массив одного измерения.

Пример реализации двумерного массива

type
  TMatrix<T> = class
  private
    function GetData(index1, index2: Integer): T;
    procedure SetData(index1, index2: Integer; value: T);
  public
    constructor Create(dim1, dim2: Integer);
    property Item[index1, index2: Integer]: T read GetData write SetData; default;
  end;

Здесь мы определяем класс TMatrix<T>, который может быть использован для создания двумерных массивов различных типов данных. В приватном разделе класса мы определяем методы для чтения и записи значений, а в публичном — конструктор и свойство Item для доступа к элементам массива.

Использование двумерного массива

matrix := TMatrix<Integer>.Create(3,3);
matrix[0, 2] := 5;
WriteLn(matrix[0, 2]);

В примере выше создается двумерный массив целых чисел размером 3x3, затем в ячейку с индексами [0, 2] записывается значение 5, и после этого выводится значение этой ячейки на экран.

Альтернативный подход

Также возможен альтернативный подход, когда для доступа к элементам двумерного массива используется промежуточный объект, представляющий собой строку массива. В этом случае сначала обращаются к строке, а затем к ее элементу:

type
  TMatrix<T> = class
  public
    type
      TRow = record
      private
        FMatrix: TMatrix<T>;
        FRowIndex: Integer;
        function GetItem(ColIndex: Integer): T; inline;
        procedure SetItem(ColIndex: Integer; const Value: T); inline;
      public
        property Items[ColIndex: Integer]: T read GetItem write SetItem; default;
      end;
  private
    FData: TArray<TArray<T>>;
    function GetRow(RowIndex: Integer): TRow; inline;
  public
    constructor Create(RowCount, ColCount: Integer);
    property Rows[RowIndex: Integer]: TRow read GetRow; default;
  end;

В этом случае для доступа к элементам двумерного массива используется следующий синтаксис:

matrix := TMatrix<Integer>.Create(3,3);
matrix.Rows[0].Items[2] := 5;
WriteLn(matrix.Rows[0].Items[2]);

Заключение

В языке программирования Delphi для создания двумерных массивов с возможностью использования синтаксиса индексации [] необходимо определить соответствующее свойство Item с несколькими параметрами индекса. Это позволяет работать с двумерными массивами, как с одномерными, но с дополнительным измерением индексации. Также существует альтернативный подход с использованием промежуточного объекта, который представляет собой строку массива. Оба подхода позволяют эффективно использовать двумерные массивы в программировании на Delphi.

Создано по материалам из источника по ссылке.

В Delphi для реализации двумерных массивов с использованием синтаксиса индексации `[]` необходимо определить свойство `Item`, которое поддерживает несколько индексов, обеспечивая удобный доступ к элементам массива.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Массивы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-14 12:40:55/0.0031068325042725/0