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

Список указателей. Класс TList.

Таблица 7.1. Алгоритм увеличения памяти списка.

Значение свойства Capacity На сколько увеличится свойство Capacity
<4 4
4..8 8
>8 16

Метод:

procedure Clear; dynamic;

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

function IndexOf(Item: Pointer): Integer;

Метод возвращает индекс найденного элемента в списке. При неудачном поиске возвращается -1.

Для сортировки элементов списка применяется метод:

type TListSortCompare = function (Iteml, Item2: Pointer): Integer;
procedure Sort(Compare: TListSortCompare);

Так как состав структуры, на которую указывает элемент списка, невозможно заранее обобщить, разработка процедуры, осуществляющей сортировку, возлагается на программиста. Метод Sort лишь обеспечивает попарное сравнение указателей на основе созданного программистом алгоритма (пример сортировки см. выше в разд. "Класс TStringList").

Полностью все свойства и методы класса TList представлены в табл. 7.2.

Таблица 7.2. Свойства и методы класса TList.

Объявление Описание
property Capacity: Integer; Определяет число строк, для которых выделена память
property Count: Integer; Возвращает число строк в списке
property Items [Index: Integer]: Pointer; Список указателей
type TPointerList = array [0..MaxListSize-i ] of Pointer;
PPointerList = ATPointerList;
property List: PPointerList;
Динамический массив указателей
function Add (Item: Pointer): Integer; Добавляет к списку новый указатель
procedure Clear; dynamic; Полностью очищает список
procedure Delete (Index: Integer); Удаляет указатель с индексом Index
class procedure Error (const Ksg: string; Data: Integer); virtual; Генерирует исключительную Ситуацию EListError.
Сообщение об ошибке создается из форматирующей строки Msg и числового параметра Data
procedure Exchange (Index1, Index2: Integer); Меняет местами указатели с индексами Index1 и Index2
function Expand: TList; Увеличивает размер памяти, отведенной под список
function First: Pointer; Возвращает первый указатель из списка
function IndexOf (Item: Pointer): Integer; Возвращает индекс указателя, заданного параметром Item
procedure Insert (Index: Integer; Item: Pointer); Вставляет новый элемент Items позицию Index
function Last: Pointer; Возвращает последний указатель в списке
procedure Move (Curlndex, Newlndex: Integer); Перемещает элемент списка на новое место
procedure Pack; Удаляет из списка все пустые (Nil) указатели
function Remove (Item: Pointer): Integer; Удаляет из списка указатель Item
type TListSortCompare = function (Iteml, Item2: Pointer): Integer; procedure Sort (Compare: TListSortCompare); Сортирует элементы списка
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.