
- •Ответы на вопросы
- •Основы визуального программирования. Понятие компонентов. Свойства компонента. Проектирование интерфейсных окон. Компиляция программ.
- •1.1. Краеугольные камни визуального программирования
- •1.3. Первый запуск среды Delphi
- •1.4. Исследуем среду разработки программ
- •Общие свойства компонентов
- •Понятие идентификатора. Зарезервированные (ключевые) слова. Стандартные идентификаторы. Идентификаторы программиста. Комментарии.
- •Комментарии
- •Понятие типа данных. Константы, переменные. Объявление типов, констант, переменных. Понятие типа данных
- •Константы
- •Переменные
- •. Определение новых типов данных
- •Простые типы данных (целочисленные, вещественные, символьные, булевые) Простые типы данных
- •2.3.1. Целочисленные типы данных
- •2.3.2. Вещественные типы данных
- •2.3.3. Символьные типы данных
- •2.3.4. Булевские типы данных
- •Перечисляемые и интервальные типы данных.
- •2.3.6. Перечисляемые типы данных
- •2.3.7. Интервальные типы данных
- •Выражения. Арифметические операции. Операции отношения. Булевские операции. Очередность выполнения операций.
- •2.4.1. Выражения
- •2.4.2. Арифметические операции
- •2.4.3. Операции отношения
- •2.4.4. Булевские операции
- •2.4.5. Операции с битами
- •2.4.6. Очередность выполнения операций
- •Операторы. Оператор присваивания. Оператор вызова процедуры. Составной оператор Операторы
- •2.7.1. Общие положения
- •2.7.2. Оператор присваивания
- •2.7.3. Оператор вызова процедуры
- •2.7.4. Составной оператор
- •Оператор ветвления if Оператор ветвления if
- •Оператор ветвления case . Оператор ветвления case
- •10 . Оператор повтора for.
- •11. Оператор повтора repeat
- •12. Оператор повтора while
- •13. Операторы Continue и Break
- •14. Подпрограммы. Стандартные подпрограммы.
- •2.8.1. Общие положения
- •2.8.2. Стандартные подпрограммы
- •15. Процедуры и функции программиста. Процедуры программиста
- •2.8.4. Функции программиста
- •16. Параметры процедур и функций. Структура модуля. Стандартные модули языка Delphi Параметры процедур и функций
- •Структура модуля
- •2.9.2. Стандартные модули языка Delphi
- •17. Область действия идентификаторов. Область действия идентификаторов
- •18. Строковые переменные. Операции над строками. Стандартные процедуры и функции для работы со строками. Строковые переменные
- •2.10.5. Операции над строками
- •Стандартные процедуры и функции для работы со строками
- •Массивы. Объявление массива. Работа с массивами. Динамические массивы Массивы
- •2.11.1. Объявление массива
- •2.11.2. Работа с массивами
- •Динамические массивы
- •Множества. Операции над множествами . Множества
- •2.12.1. Объявление множества
- •2.12.2. Операции над множествами
- •Записи. Записи
- •2.13.1. Объявление записи
- •2.13.2. Записи с вариантами
- •Файлы. Работа с файлами. Стандартные подпрограммы управления файлами
- •2.14. Файлы
- •2.14.1. Понятие файла
- •2.14.2. Работа с файлами
- •2.14.3. Стандартные подпрограммы управления файлами
- •Формула объекта. Три кита ооп
- •3.1. Краеугольные камни ооп
- •3.1.1. Формула объекта
- •3.1.5. Три кита ооп
- •Классы и объекты
- •3.2. Классы
- •3.3. Объекты
- •Конструкторы и деструкторы
- •3.4. Конструкторы и деструкторы
- •Методы классов
- •3.5. Методы
- •Свойства классов
- •3.6. Свойства
- •3.6.1. Понятие свойства
- •3.6.2. Методы получения и установки значений свойств
- •3.6.3. Свойства-массивы
- •3.6.4. Свойство-массив как основное свойство объекта
- •3.6.5. Методы, обслуживающие несколько свойств
- •28) Наследование
- •29) Перекрытие атрибутов в наследниках
- •30) Совместимость объектов различных классов
- •31) Понятие виртуального метода
- •32) Классы в программных модулях
- •33.Разграничение доступа к атрибутам объектов
- •34)Классы для представления списка строк
- •Свойства:
- •Методы:
- •События:
- •35. Классы для представления потока данных
- •Общие свойства:
- •Общие методы:
- •36. Обрабока исключительных ситуаций
- •4.3.1. Создание исключительной ситуации
- •4.3.2. Распознавание класса исключительной ситуации
- •4.3.3. Пример обработки исключительной ситуации
- •4.3.4. Возобновление исключительной ситуации
- •4.3.5. Доступ к объекту, описывающему исключительную ситуацию
- •37. .Защита выделенных ресурсов от пропадания
- •4.4.1. Утечка ресурсов и защита от нее
- •Сортировка массива методом прямого выбора
- •Сортировка массива методом прямого обмена (пузырьковым методом)
- •Сортировка массива методом прямого включения
- •Шейкерная сортировка
- •Сортировка массива с помощью включений с уменьшающимися расстояниями (метод Шелла)
- •Сортировка разделением (быстрая сортировка)
34)Классы для представления списка строк
Для работы со списками строк служат классы TStrings и TStringList. Они используются в библиотеке VCL повсеместно и имеют гораздо большую универсальность, чем та, что можно почерпнуть из их названия. Классы TStrings и TStringList служат для представления не просто списка строк, а списка элементов, каждый из которых представляет собой пару строка-объект. Если со строками не ассоциированы объекты, получается обычный список строк.
Класс TStrings используется визуальными компонентами и является абстрактным. Он не имеет собственных средств хранения строк и определяет лишь интерфейс для работы с элементами. Класс TStringList является наследником TStrings и служит для организации списков строк, которые используются отдельно от управляющих элементов. Объекты TStringList хранят строки и объекты в динамической памяти.
Свойства класса TStrings описаны ниже.
-
Count: Integer — число элементов в списке.
-
Strings[Index: Integer]: string — обеспечивает доступ к массиву строк по индексу. Первая строка имеет индекс, равный 0. Свойство Strings является основным свойством объекта.
-
Objects[Index: Integer]: TObject — обеспечивает доступ к массиву объектов. Свойства Strings и Objects позволяют использовать объект TStrings как хранилище строк и ассоциированных с ними объектов произвольных классов.
-
Text: string — позволяет интерпретировать список строк, как одну большую строку, в которой элементы разделены символами #13#10 (возврат каретки и перевод строки).
Наследники класса TStrings иногда используются для хранения строк вида Имя=Значение, в частности, строк INI-файлов (см. гл. 6). Для удобной работы с такими строками в классе TStrings дополнительно имеются следующие свойства.
-
Names[Index: Integer]: string — обеспечивает доступ к той части строки, в которой содержится имя.
-
Values[const Name: string]: string — обеспечивает доступ к той части строки, в которой содержится значение. Указывая вместо Name ту часть строки, которая находится слева от знака равенства, вы получаете ту часть, что находится справа.
Управление элементами списка осуществляется с помощью следующих методов:
-
Add(const S: string): Integer — добавляет новую строку S в список и возвращает ее позицию. Новая строка добавляется в конец списка.
-
AddObject(const S: string; AObject: TObject): Integer — добавляет в список строку S и ассоциированный с ней объект AObject. Возвращает индекс пары строка-объект.
-
AddStrings(Strings: TStrings) — добавляет группу строк в существующий список.
-
Append(const S: string) — делает то же, что и Add, но не возвращает значения.
-
Clear — удаляет из списка все элементы.
-
Delete(Index: Integer) — удаляет строку и ассоциированный с ней объект. Метод Delete, также как метод Clear не разрушают объектов, т.е. не вызывают у них деструктор. Об этом вы должны позаботиться сами.
-
Equals(Strings: TStrings): Boolean — Возвращает True, если список строк в точности равен тому, что передан в параметре Strings.
-
Exchange(Index1, Index2: Integer) — меняет два элемента местами.
-
GetText: PChar — возвращает все строки списка в виде одной большой нуль-терминированной строки.
-
IndexOf(const S: string): Integer — возвращает позицию строки S в списке. Если заданная строка в списке отсутствует, функция возвращает значение -1.
-
IndexOfName(const Name: string): Integer — возвращает позицию строки, которая имеет вид Имя=Значение и содержит в себе Имя, равное Name.
-
IndexOfObject(AObject: TObject): Integer — возвращает позицию объекта AObject в массиве Objects. Если заданный объект в списке отсутствует, функция возвращает значение -1.
-
Insert(Index: Integer; const S: string) — вставляет в список строку S в позицию Index.
-
InsertObject(Index: Integer; const S: string; AObject: TObject) — вставляет в список строку S и ассоциированный с ней объект AObject в позицию Index.
-
LoadFromFile(const FileName: string) — загружает строки списка из текстового файла.
-
LoadFromStream(Stream: TStream) — загружает строки списка из потока данных (см. ниже).
-
Move(CurIndex, NewIndex: Integer) — изменяет позицию элемента (пары строка-объект) в списке.
-
SaveToFile(const FileName: string) — сохраняет строки списка в текстовом файле.
-
SaveToStream(Stream: TStream) — сохраняет строки списка в потоке данных.
-
SetText(Text: PChar) — загружает строки списка из одной большой нуль-терминированной строки.
Класс TStringList добавляет к TStrings несколько дополнительных свойств и методов, а также два свойства-события для уведомления об изменениях в списке. Они описаны ниже.