По умолчанию при создании программных модулей Object Pascal раздел protected не создается, а раздел published не указывается явно. Все члены класса, которые не определены в разделах private и public, по умолчанию относятся к категории published.
Рассмотрим, к примеру, фрагмент объявления класса TForm (модуль Forms.pas), базового для форм в приложениях Delphi:
TForm = class(TCustomForm) public
procedure ArrangeIcons;
procedure Cascade;
…
published
property Action;
property ActiveControl;
…
end;
В данном случае видно, что класс TForm является производным от класса TCustomForm (реализован в том же модуле Forms.pas) и содержит открытые методы ArrangeIcons, Cascade и т.д., а также опубликованные свойства Action, ActiveControl и т.д.
Примечание
Объявление класса и его членов осуществляется в разделе interface программного модуля, а непосредственная реализация свойств и методов — в разделе implementation (структура программного модуля Object Pascal рассматривается ниже).
Во всех модулях форм, автоматически создаваемых Delphi, можно увидеть исходный код следующего вида:
type TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
Это означает, что в модуле приложения объявлен класс TForm1, производный от класса TForm, а затем объявлена переменная типа TForm1. Такие переменные — экземпляры класса — называют объектами.Все компоненты Delphi — это объекты, экземпляры того или иного класса.
Свойства— это именованные интерфейсы доступа к данным объекта. Например, у объекта класса tform, есть свойства height ("высота"), Width ("ширина"), Color ("цвет") и др. Присваивая свойствам значения соответствующего типа, можно изменять внешний вид или характер поведения объекта.
Для доступа к свойствам объекта используется такая же конструкция , как и для доступа к полям записи, например:
var Form1: TForm1;
…
Form1.Caption:= 'Заголовок формы';
Form1.Font.Color := clWhite;
…
В данном случае, свойство Font ("шрифт") — это тоже объект класса TFont, у которого есть свойство Color ("цвет").
Такой же способ доступа используется и для всех компонентов, размещенные на форме в Delphi:
type TForm1 = class(TForm)
Edit1: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
…
Form1.Edit1.Text:= '';
Метод— это процедура или функция, реализованная в классе. В качестве примера пользовательских методов можно привести процедуры обработки событий. Кроме того, методом становится любая процедура или функция, заголовок которой указан в объявлении класса.
Для доступа к методам используется тот же подход, что и для свойств:
Button1.Click; //вызов метода, реализующего нажатие клавиши
Для упрощения программного кода при работе с записями и классами в языке Object Pascal используется конструкция with-do. Например, фрагмент кода
MyCD.Group:= 'Название группы';
MyCD.Year:= 2005;
MyCD.Title:= 'Название альбома';
Form1.Caption:= 'Заголовок формы';
Form1.Font.Color:= clWhite;
можно записать в виде:
with MyCD do begin
Group:= 'Название группы';
Year:= 2005;
Title:= 'Название альбома';
end;
with Form1 do begin
Caption:= 'Заголовок формы';
Font.Color: = clWhite;
end;
Еще один вариант записи этого же фрагмента:
with MyCD, Form1 do begin
Group:= 'Название группы';
Year:= 2005;
Title:= 'Название альбома';
Caption:= 'Заголовок формы';
Font.Color:= clWhite;
end;
При такой записи подстановка имен объектов осуществляется в порядке их следования. Однако в этом случае требуется следить за тем, чтобы для объектов, указанных после слова with, не использовались поля, свойства или методы с одинаковыми названиями, поскольку это может привести к путанице.
Проект Delphi состоит из файлов трех основных типов:
• файл проекта с расширением .dpr;
• программные модули форм — файлы с расширением .pas;
• двоичные данные формы — файлы с расширением .dfm.
Файл .dfm Delphi формирует автоматически на основании значений, присвоенных свойствам формы и размещенных на ней компонентов. Файлы .dpr и .pas также создаются Delphi автоматически, но в них можно вносить изменения вручную. Рассмотрим их структуру.
Читать дальше