Опубликован: 01.11.2004 | Уровень: для всех | Доступ: свободно | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 24:

Библиотека классов VCL среды проектирования Delphi

< Лекция 23 || Лекция 24: 1234 || Лекция 25 >
Аннотация: В лекции рассматривается библиотека классов VCL среды проектирования Delphi, описывается иерархия классов, описывается применение классов TApplication, TScreen, TForm, TMainMenu, TMenuItem и TPopupMenu.

Компоненты Delphi

Объекты

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

Все объекты имеют общего предка - класс TObject.

Компоненты

Компонент Delphi - это особый вид объектов - визуальный объект (визуальный для проектирования, а не для отображения пользователя). Создавать и редактировать такой объект можно как программным путем, так и на этапе проектирования.

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

Все компоненты имеют общего предка - класс TComponent.

Delphi предоставляет широкий набор компонентов, называемый иногда VCL- библиотекой. Все компоненты Delphi могут быть доступны через палитру компонентов.

В настоящее время в Borland Developer Studio входит Delphi 2006 for Win32 (использует библиотеку VCL) и Delphi 2006 for Microsoft .NET (использует библиотеку Framework 1.1).

Часть компонентов являются элементами управления. В основном это элементы управления Windows. Доступ к элементам управления возможен не только на этапе проектирования, но и во время выполнения приложения.

Элементы управления можно подразделить на оконные и неоконные. Оконные элементы могут получать фокус и имеют дескриптор окна. Предком всех оконных элементов управления является абстрактный класс TWinControl. Предком неоконных элементов управления является абстрактный класс TGraphicControl.

При добавлении в форму любого компонента из палитры компонентов Delphi автоматически формирует программный код для создания объекта (переменной) данного типа. Переменная добавляется как член класса данной формы.

Библиотека VCL

Иерархия классов

Классы библиотеки VCL используют механизм простого наследования: один класс может иметь только одного предка. Корнем иерархии классов является класс TObject. Любой класс VCL-библиотеки наследуется от класса TObject.

На рис. 24.1 представлена корневая часть дерева иерархии классов VCL-библиотеки.

Иерархия классов VCL-библиотеки

Рис. 24.1. Иерархия классов VCL-библиотеки

Класс TObject

Класс TObject инкапсулирует общие черты поведения всех объектов VCL-библиотеки. Если при создании нового объекта не указан базовый класс, то Delphi автоматически использует как предка класс TObject.

Объявление нового класса выполняется в секции type. Если после слова class в скобках не указано никакого наследуемого класса, то по умолчанию предполагается, что создаваемый класс наследуем от класса TObject.

Например:

type TMyClass = class 		// Эти два объявления
type TMyClass = class(TObject) 	//являются эквивалентными

Класс TComponent

TComponent является предком всех компонентов VCL-библиотеки.

Все потомки данного класса могут быть расположены в палитре компонентов.

Класс TComponent позволяет определять родительский элемент управления и владельца компонента.

Родительским элементом управления называется тот, в который непосредственно помещен данный компонент.

Владельцем всех компонентов, расположенных в форме, является сама форма.

Владельцем всех форм является приложение.

Если компонент расположен не непосредственно в форме, а, например, в компоненте типа TPanel, то владелец и родительский элемент управления у него будут различны.

Класс предоставляет большой набор свойств, включая следующие:

  • ComObject - определяет ссылку на интерфейс, наследуемый от IUnknown и реализованный компонентом. Используется только для компонентов, поддерживающих СОМ-интерфейс.
  • ComponentCount - указывает количество компонентов, принадлежащих данному компоненту.
  • ComponentIndex - указывает индекс компонента в массиве Components владельца данного компонента. Первый компонент в списке имеет индекс 0.
  • Components - список всех компонентов, принадлежащих данному компоненту. Используется для ссылки на компонент по его индексу или для последовательного доступа ко всем компонентам, принадлежащих данному компоненту.
  • Name - указывает имя компонента, используемое в коде программы для доступа к его свойствам и методам. При создании компонента Delphi автоматически назначает ему имя на основе имени класса компонента.
  • Owner - указывает компонент, владеющий данным компонентом. Компонент всегда удаляется (освобождается память) при удалении его владельца.
< Лекция 23 || Лекция 24: 1234 || Лекция 25 >
Александр Демьяненко
Александр Демьяненко

Можно ли сдавать один и тот же тест несколько раз?
Или же один и тот же тест можно сдать лишь однажды?

Максим Стогний
Максим Стогний

Добрый день!

Скажите, пожалуйста, если в терминологии объектно-ориентированного программирования функции также называются методами или методами - членами класса, в примере объявления указателя на метод использовали в формальном описании оба названия:

тип_метода (имя_класса::*имя_метода_указателя)
    (список параметров);
тип_функции (*имя_ функции_указателя)
    (список параметров);

при этом можно было  тип_функции во втором описании заменить на тип_метода? Т.е.:

тип_метода (*имя_ метода_указателя)
    (список параметров);