Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi, Pascal.docx
Скачиваний:
8
Добавлен:
26.04.2019
Размер:
566.19 Кб
Скачать

28.Понятие свойств класса, для чего они нужны? Как они описываются? При­ведите примеры классов со свойствами

Тип "класс" - это структура данных, состоящая из полей, методов, свойств. Правила ООП(объектно-ориентированного программирования) требуют, чтобы обращение к полям осуществлялось посредством методов, однако это не всегда удобно. Поэтому класс имеет свойства –специальный механизм, регулирующий доступ к полям. Свойство описывает один или два метода, которые осуществляют некоторые действия над данными того же типа, что и свойство. Обычно свойство связано с некоторым полем и указывает те методы класса, которые должны использоваться при записи в это поле и при чтении из него.

Свойства объявляются с помощью специальной конструкции «property… read… write…;».

Упрощенно описание свойства выглядит так: property имя: тип [read имя_метода_или_поля] {метод получения} [write имя_метода_или_поля] {метод установки} Например:Property x: TPole read GetPole write SetPole;

Метод Getpole служит для чтения, а SetPole – для записи. Если необходимо сделать доступ к полю только для чтения, то следует опустить write.

Метод записи обычно содержит действия по проверке допустимости устанавливаемого значения, метод чтения может содержать, например, поддержку счетчика обращений к полю. При обращении к свойству автоматически вызываются указанные в нем методы чтения и установки.

Примеры классов со свойствами. Использование стандартных объектов при создании приложений не только уменьшает сроки разработки, но и снижает количество ошибок. Отрицательным же следствием их применения явл увеличение размера программы. Библиотека VCL содержит несколько сотен классов, образующих древовидную иерархию. Рассмотрим фрагмент такой иерархии:

*TObject — лежит в основе класса иерархии. В нем нет полей, но заданы методы, обеспечивающие выполнение важнейших функций "жизнедеятельности" любого объекта. Благодаря нему каждый класс получает в наследство механизмы создания экземпляра объекта и его уничтожения. *Exception - явл базовым классом для обработки исключительных ситуаций, которые возникают, например, при попытке деления на нуль, выходе за пределы выделенной области памяти, обращении к не существующему файлу и т.д. В Object Pascal реализован механизм обработки исключений, а VCL включает почти сотню классов для представления всех исключительных ситуаций. *TPersistent — является предком всех классов(происходит от TObject), которые могут иметь раздел published (элементы, заданные в этом разделе, отображаются в инспекторе объектов). Опубликованные свойства объектов сохраняются при записи на диск. *TList — предназначен для хранения произвольного количества элементов разных типов и доступа к ним по индексу аналогично массиву. Для хранения данных предназначены и другие потомки TPersistent, например классы TStack, TCollection, TStrings и их потомки.

*Для сохранения данных и объектов на внешних носителях предназначен класс TStream и его производные.

*TComponent — является предком визуальных и невизуальных компонентов (таких, как объект-приложение TApplication) и реализует основные механизмы, которые обеспечивают функционирование любого компонента. Хар-ка свойств: - возможность отображения компонента в палитре компонентов и помещения на форму;- возможность выступать контейнером для других компонентов;- возможность отображения в инспекторе объектов; - возможность выступать в качестве оболочки вокруг компонентов ActiveX и других объектов, реализующих интерфейсы. Свойства: -Name определяет имя компонента; -Tag типа Longint-определяет произвольный целочисленный параметр, который не используется Delphi и которым программист может распоряжаться по своему усмотрению; -Components-содержит список всех компонентов, владельцем которых является данный компонент. Удобно исп-ть в том случае, когда необходимо обратиться к компонентам, которыми владеет данный компонент, используя их порядковые имена, а не по имени;-Owner- указывает на владельца компонента; -ComponentCount - определяет количество компонентов, владельцем которых является данный компонент; -ComponentIndex - содержит индекс данного компонента в списке Components его владельца.

*TControl -задает основные свойства всех визуальных компонентов. От него наследуются так называемые элементы управления -кнопки, метки, списки, флажки. Через эти элементы осуществляется диалог с пользователем.

Свойства: -ControlState, определяется текущее состояние элемента управления. Доступность элемента управления в целом определяется свойством Enabled; -Enabled определяет, должен ли элемент управления реагировать на события мыши, клавиатуры. Если свойство Enabled имеет значение True, то элемент реагирует на события, иначе эти события игнорируются. Отключенный элемент управления при стандартной установке цветов Windows изображается серым цветом;

-Height задает вертикальный размер компонента или формы в пикселах; - Width определяет ширину элемента управления или формы в пикселах; -Left и Тор определяют вертикальную и горизонтальную координаты верхнего левого угла элемента управления относительно формы или родительского элемента; -Align определяет, как располагаются элементы управления внутри родительского элемента. Свойство может иметь одно из значений: alNone - выравнивание не используется; аlТор - компонент прижимается к верхней границе своего родителя; alBottom, alLeft, alRight - к нижней, левой и правой границам соответственно. Свойство Align необходимо применять, если элемент управления должен оставаться в определенном положении на форме при изменении ее размеров; -Anchors:TAnchors обеспечивает фиксацию элемента управления по сторонам владельца; -AutoSize:Boolean обеспечивает изменение размеров компо­нента в соответствии с размерами его содержимого; -Color определяет цвет элемента управления. Это свойство имеет набор значений, например: clBlack, clGreen, clBlue, clRed и т.д;- Cursor определяет изображение указателя мыши в тот момент, когда он находится на элементе управления; -Font определяет шрифт текстовой строки, его цвет (Color), размер (Size), стиль (Style) и пр.; -Hint задает текст, который будет отображаться при обработке события OnHint, происходящего, если курсор находится в области компонента. При задержке курсора мыши на компоненте всплывает небольшое окно с сообщением, заданным в этом свойстве; -Visible определяет, будет ли данный компонент отображаться на экране. Если свойство Visible имеет значение True, то компонент виден пользователю, в противном случае – нет; - Caption – текстовая строка, явл заголовком для формы; -Text - текстовая строка;- Parent содержит ссылку на родительский элемент.