Класс - это определенный пользователем тип данных, который обладает внутренними данными и методами в форме процедур или функций и обычно описывает родовые признаки и способы поведения ряда похожих объектов.
Экземпляр типа класс принято называть объектом. Объекты класса всегда распределяются в куче в отличие от экземпляров объектового типа. Итак, класс - это описание, объект - то, что создано в соответствии с этим описанием.
Тип класс - это структура данных, состоящая из полей, методов, свойств. Поля содержат данные определенного типа. Методы - это функции и процедуры, описанные внутри класса и предназначенные для операций над его полями. Свойства - это специальный механизм классов, регулирующий доступ к полям. Свойство описывает один или два метода, которые осуществляют некоторые действия над данными того же типа, что и свойство. Например, обычная кнопка в окне приложения обладает такими свойствами, как цвет, размеры, положение. Для экземпляра класса "кнопка" значения этих свойств представлены специальными переменными, определяемыми ключевым словом Property. Цвет может задаваться свойством Color, размеры - свойствами Width и Height и т.д. Особым видом свойств являются события. В Object Pascal событие - свойство процедурного типа, предназначенное для создания пользовательской реакции на то или иное входное воздействие: Property OnMyEvent: TMyEvent Read FOnMyEvent1 Write FOnMyEvent2 default asValue; Здесь: OnMyEvent - имя свойства; TMyEvent - тип свойства; FOnMyEvent1 - поле процедурного типа. Вызывается при чтении значения свойства; FOnMyEvent2 - поле процедурного типа. Вызывается при записи нового значения свойства; asValue - значение свойства по умолчанию (может отсутствовать).
FOnMyEvent1, FOnMyEvent2 - поля, содержащие адреса некоторых методов. Присвоить такому свойству значение - значит, указать объекту адрес метода, который будет вызываться в момент наступления события. Такие методы называют обработчиками событий. Таким образом, обработчик события - фрагмент программы, который выполняется в ответ на определенное изменение в программе или в Windows.
Каждый новый класс в Delphi должен быть объявлен глобально. Для этого используется зарезервированное слово Class. Объявление определяет функциональные возможности класса. Объявление классов в модуле производится в разделе объявления типов.