Public
Type
End.
Begin
Begin
Implementation
Var
Type
Interface
Begin
Begin
Implementation
Var
Public
Type
TFor1 = class (TForm)
Buttonl: TButton; // Эта секция обслуживается Delphi. Ее элементы доступны всем.
private // Эта секция доступна в модуле Unit1
FlntField: Integer;
Procedure SetValue(Value: Integer);
Function GetValue: Integer;
published // Эта секция доступна в любом модуле
Property IntField: read GetValue write SetValue;
Protected // Эта секция доступна классам-потомкам
Procedure Procl;
Procedure Proc2';
end;
Forml: TForml;
Procedure TForml.Procl;
Buttonl.Color:= clBtnFace; // Так можно
FIntField: = 0; // Так можно
IntField:= 0; // Так можно
Procl; // Так можно
Proc2; // Так можно
end;
Forml.Buttonl.Color:= clBtnFace; // Так можно
Forml.FlntField:= 0; // Так можно
Forml.IntField:= 0; // Так можно
Forml.Procl; // Так нельзя
Form1.Proc2; // Так можно
end;
Unit Unit2;
Uses Controls, Unitl;
TForm2 = class(TForm1)
Button2: TButton;
Procedure Button2Click(Sender: TObject);
end;
Form2: TForm2;
Procedure TForm2.Button2Click(Sender: TObject);
Buttonl.Color:= clBtnFace; // Так можно
FIntField: = 0; // Так нельзя
IntField:= 0; // Так можно
Procl; // Так можно
Proc2; // Так можно
end;
Forml.Buttonl.Color:= clBtnFace; // Так можно
|
|
Forml.FlntField:= 0; // Так нельзя
Forml.IntField:= 0; // Так можно
Forml.Procl; // Так нельзя
Forml.Proc2; // Так можно
При объявлении класса-потомка разрешается перемещать элементы класса из одной области видимости в другую. Для предыдущего примера допустимо такое объявление:
TForm2 = class (TForml)
...
procedure Procl;
...
end;
После этого в модуле Unit2 возможно следующее обращение: Form2.Procl;
После перемещения в секцию private элемент объявления становится невидим потомкам (если потомок, как это обычно бывает, объявляется в другом модуле) и, следовательно, его уже нельзя переместить в другую секцию.
Класс может объявляться только в интерфейсной части модуля или в самом начале области реализации, Нельзя определять классы в разделе описаний подпрограмм.
Язык Delphi реализует концепцию объектно-ориентированного программирования (ООП). Это означает, что функциональность приложения определяется набором взаимосвязанных задач, каждая из которых становится самостоятельным объектом. У объекта есть свойства (т. е. характеристики, или атрибуты), методы, определяющие его поведение, и события, на которые он реагирует. Одним из наиболее важных понятий ООП является класс. Класс представляет собой дальнейшее развитие концепции типа и объединяет в себе задание не только структуры и размера переменных, но и выполняемых над ними операций. Объекты в программе всегда являются, экземплярами того или иного класса (аналогично переменным определенного типа).