logo search
Программирование в среде Delphy / Программирование в среде Delphi

20.2. Класс tStrings

Это базовый, абстрактный класс для объектов, которые представляют список строк. Многие компоненты имеют свойства этого класса, и в них перекрываются абстрактные методы этого класса. Поэтому для создания собственного списка следует использовать класс TStringList, который является наследником класса TStrings. Кроме уже рассмотренных в предыдущем параграфе свойств Capacity и Count класс TStrings содержит следующие свойства:

Property Strings[Index: Integer]: string; – массив строк списка;

Property Objects[Index: Integer]: TObject; – массив соответствующих строкам объектов. Объекты могут быть любого типа, но в основном здесь хранят картинки. Такая двойственность этого класса позволяет сохранять объекты с текстовыми примечаниями, сортировать их и создавать многомерные наборы строк, так как объектами могут быть потомки опять же класса TStringsж

Property Sorted: Boolean; – свойство, определяющее необходимость автоматической сортировки строк в алфавитном порядке;

Property Duplicates: TDuplicates; – свойство, управляющее возможностью размещения в списке одинаковых строк. Здесь возможны следующие варианты значения этого свойства:

duIgnore – нельзя добавить новую строку, если она уже есть в списке,

duError – возбуждается исключительная ситуация EListError, если появляется дубль строки,

duAccept – разрешается иметь в списке дубли строк;

Property CaseSensitive: Boolean; – свойство, определяющее возможности сортировки и поиска дублей с различием в строках прописных и строчных букв или без этого различия.

Рассмотрим некоторые специфические методы этого класса:

Function Add(const S: string): Integer; – добавление в конец списка новой строки. Функция возвращает номер добавленной строки в списке. Нумеруются строки с нуля;

Function AddObject(const S: string; AObject: TObject): Integer; – добавление пары строка–объект в конец списка;

Procedure Insert(Index: Integer; const S: string); – вставка новой строки S перед строкой с номером Index;

Procedure LoadFromFile(const FileName: string);– загрузка списка строк из текстового файла FileName;

Procedure SaveToFile(const FileName: string); – сохранение текущего списка строк в текстовом файле FileName.

Последние два метода позволяют очень просто загружать и сохранять списки строк в текстовом файле. Это можно сделать одним оператором, при этом не нужно ни назначать файловой переменной путь к файлу, ни открывать файл, ни переписывать его построчно, ни закрывать. Достаточно, например для компоненты Memo1, записать в программе:

Memo1.Lines.LoadFromFile(’c:\MyDir\Prog1.pas’);

и текст программы Prog1.pas будет отображен в текстовом редакторе Memo1. Свойство Lines в компоненте Memo1 как раз имеет тип TStrings, что и позволяет использовать метод LoadFromFile.