На этом шаге мы рассмотрим свойства, методы и события класса
TStringList.
Этот класс объединяет в себе свойства TStrings и TList простейшим способом: указатель на объект и соответствующая строка объединяются в запись, указатель на которую хранится в списке. В классе переопределены многие виртуальные методы TStrings: Add, Clear, Delete, Exchange, IndexOf, Insert. Он является полностью функциональным: можно создавать экземпляры TStringList в своей программе для работы с наборами строк и объектов (помимо тех, которые уже есть в компонентах).
Перечислим новые возможности этого класса:
Кроме унаследованных от TStrings, определены дополнительно следующие полезные свойства.
Кроме унаследованных от TStrings, определены дополнительно полезные методы.
Приведем пример приложения, где используются компоненты класса TStringList. Внешний вид приложения показан на рисунке 1:
Рис.1. Внешний вид приложения
На форме расположен компонент TMemo, который используется для отображения списка. Компонент TEdit предназначен для размещения строки, которая затем добавляется в список. Обратите внимание, что после сортировки списка, его необходимо снова отобразить в компоненте TMemo.
Приведем тексты обработчиков событий:
Unit Un_23_1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Label1: TLabel; Button1: TButton; Button2: TButton; Button3: TButton; Label2: TLabel; Label3: TLabel; Button4: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; List: TStringList; //Указатель на список. implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin List:=TStringList.Create; //Создание списка. end; //Обработчик события добавления строки в список. procedure TForm1.Button1Click(Sender: TObject); begin List.Append(Edit1.Text); //Добавление строки в список. Edit1.Text:=''; //Очистка строки. Edit1.SetFocus; //Передача фокуса. end; //Обработчик события заполнения компонента TMemo. procedure TForm1.Button2Click(Sender: TObject); var k: Integer; begin Memo1.Lines.Clear; //Очистка TMemo. for k:=0 to List.Count-1 do Memo1.Lines.Add(List.Strings[k]); end; procedure TForm1.FormActivate(Sender: TObject); begin Edit1.SetFocus; //Передача фокуса. end; procedure TForm1.FormDestroy(Sender: TObject); begin List.Free; //Уничтожение списка. end; //Поиск заданной строки в списке. procedure TForm1.Button3Click(Sender: TObject); var Index: Integer; begin if List.Find(Edit1.Text, Index) Then //Есть такая строка. Label3.Caption:=' '+IntToStr(Index) else //Неуспешный поиск. Label3.Caption:=' Такой строки нет!!!'; end; procedure TForm1.Button4Click(Sender: TObject); begin List.Sort; //Сортировка списка. end; end.
Текст этого примера можно взять здесь.
На следующем шаге мы рассмотрим состав класса TStream.