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


Класс TStringList - часть 2


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

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

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

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

procedure Delete(Index: Integer);

Метод

procedure Move(Curlndex, Newlndex: Integer);

перемещает элемент, заданный индексом curindex, на новую позицию, заданную индексом Newlndex.

А метод

procedure Exchange(Indexl, Index2: Integer);

меняет местами элементы с индексами index1 и index2.

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

'Name=Value'

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

property NameValueSeparator: Char;

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

City=Saint-Petersburg

то значение свойства value будет равно

Value['City'] = 'Saint-Petersburg'

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

property ValueFormlndex[Index: Integer]: string;

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

property Objects[Index: Integer]: TObject;

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

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




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



Книжный магазин