Максимальный размер списка ограничен константой

MaxListSize = Maxint div 16;

значение которой после нехитрых вычислений составит 134 217 727. Таким образом, видно, что строковый список Delphi теоретически конечен, хотя на практике гораздо чаще размер списка ограничивается размером доступной памяти.

Обращение к отдельному элементу списка может осуществляться через свойство strings таким образом:

SomeStrings.Strings[i] := Editl.Text; или тек:

SomeStrings[i] := Editl.Text;

Оба способа равноценны.

При помощи простого присваивания можно задавать новые значения только тогда, когда элемент уже создан. Для добавления нового элемента используются методы Add И AddStrings.

Функция

function Add (const S: string) : Integer;

добавляет в конец списка новый элемент, присваивая ему значение s и возвращая индекс нового элемента в списке.

Метод

procedure Append (const S: string);

просто вызывает функцию Add Единственное отличие заключается в том, что метод не возвращает индекс нового элемента.

Метод

procedure AddStrings(Strings: TStrings);

добавляет к списку целый набор новых элементов, которые должны быть заданы другим списком, передаваемым в параметре strings.

При необходимости можно добавить новый элемент в произвольное место списка. Для этого применяется метод

procedure Insert(Index: Integer;
const S: string);

который вставляет элемент s на место элемента с индексом index. При этом все указанные элементы смещаются на одну позицию вниз.

Для удаления элемента списка используется метод

procedure Delete(Index: Integer); Метод

prcce±ire Move (Cur index, Newindex: Integer);

перемещает элемент, заданный индексом curindex, на новую позицию, заданную ИНДЕКСОМ Newindex.

А метод

procedure Exchange(Indexl, Index2: Integer);

меняет местами элементы с индексами indexl и mdex2.

Довольно часто в списках размещается строковая информация следующего вида:

'Name=Value'

В качестве примера можно привести строки из файлов INI или системного реестра. Специально для таких случаев в списке предусмотрено представление строк в двух свойствах. В свойстве Names содержится текст до знака равенства. В свойстве values содержится текст после знака равенства по умолчанию. Однако символ-разделитель можно заменить на любой другой, использовав свойство

property NameValueSeparator: Char;

Доступ к значениям свойства values осуществляется по значению. Например, если в списке есть строка

City=S^int-Petersburg то значение свойства value будет равно

Value [' city' ] = ' Särnt-Fetershitg'

Кроме этого, значение свойства value можно получить, если известен его индекс:

property ValueFormlndex [Index: Integer]: string;

Как видно из объявления внутреннего списка FList (см. выше), с каждым элементом списка можно связать любой объект. Для этого используется свойство

property Objects[Index: Integer]: TDbject;

Свойство strings элемента и свойство objects связанного с ним объекта имеют одинаковые индексы. Если строка не имеет связанного объекта, то свойство objects равно Nil. Один объект может быть связан с несколькими строками списка одновременно.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Июнь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс