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

Класс TStringList

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

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. Один объект может быть связан с несколькими строками списка одновременно.

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

TCityProps = class(TObject)
Square: Longlnt;
Population: Longlnt;
Status: String/end;

Для того чтобы добавить к строке из списка объект, используется метод AddObject:

function AddObject(const S: string; AObject: TObject): Integer; virtual;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.