Самоучитель по Delphi 7 для профессионалов


Класс TStringList



Класс TStringList обеспечивает реальное использование списков строк в приложении. По существу, класс представляет собой оболочку вокруг динамического массива значений списка, представленного свойством strings. Объявление свойства (унаследованное от TStrings) выглядит так:

property Strings[Index: Integer]: string read Get write Put; default;

Для работы со свойством используются внутренние методы Get и Put, в которых применяется внутренняя переменная FList:

type

PStringltem = 'TStringltem;

 TStringltem = record FString: string; 

FObject: TObject;

  end;

PStringltemList = ^TStringItemList; 

TStringltemList = array[0..MaxListSize] of TStringltem;

FList: PStringltemList;

Из ее объявления видно, что список строк представляет собой динамический массив записей TStringItem. Эта запись позволяет объединить саму строку и связанный с ней объект.

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

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.




Начало  Назад  Вперед