Структура модуля, содержащего объекты и процедуры
Рассмотрим текст кода модуля, обрабатывающего размещенные на форме два компонента: кнопку Buttonl типа TButton и метку Label1 типа TLabel. Кроме того, в модуле реализован обработчик события, связанного со щелчком мышью на кнопке, и в разных местах модуля добавлены переменные и функции, чтобы можно было видеть, как получить к ним доступ:
unit Unitl;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls:
type
TForml = class(TForm)
Label1: TLabel;
Buttonl: TButton;
procedure ButtonlClick(Sender: TObject);
private
procedure Fl(Ch:char); {Процедура Fl доступна только в
данном модуле}
public
{Переменная Ch1 и процедура F2 доступны для объектов любых классов и для других модулей, но со ссылкой на объект}
Ch1:char;
procedure F2(Ch:char);
end;
var
Forml: TForml;
{Переменная Ch2 и процедура F3 доступны для объектов любых классов и для других модулей}
Ch2:char;
procedure F3(Ch:char);
implementation
{$R *.DFM}
uses unit2;
{Переменная Ch3 и процедура F4 доступны только внутри данного модуля}
var
Ch3:char;
procedure F4(Ch:char):
begin
Forml.Label1.Caption:=Forml.Label1.Caption+Ch+Forml.Ch1;
end;
procedure TForml.Fl(Ch:char);
begin
Label1.Caption:=Label1.Caption+Ch+Chl;
end:
procedure TForml.F2(Ch:char);
begin
Label1.Caption:=Label1.Caption+Ch+Chl;
end;
procedure F3(Ch:char):
begin
Forml.Label1.Caption:=Forml.Label1.Caption+Ch+Forml.Ch1;
end;
procedure TForm1.ButtonlClick(Sender: TObject);
{Переменная Ch4 и процедура F5 доступны только внутри данной процедуры}
var
Ch4:char;
procedure F5(Ch:char);
begin
Label1.Caption :=Label1.Caption+Ch+Chl;
end;
begin
Ch1:='-';
Ch2:= 'A';
Ch3:='B';
Ch4:= 'C';
Label1.Caption := '';
F1(Chl);
F2(Ch2);
F3(Ch3);
F4(Ch4);
F5('D');
Label1.Font.Color:=clRed;
end;
end.
Структура программы является стандартной, но в текст внесены некоторые добавления. В описании класса можно видеть строки
Label1: TLabel;
Buttonl: TButton;
procedure Button1Click(Sender: TObject);
Первые две были вставлены редактором кода Delphi автоматически, как только разработчик приложения разместил на форме метку и кнопку. Эти строки означают, что в форме имеются объекты соответствующих типов. Третью из приведенных строк редактор кода Delphi добавил в тот момент, когда разработчик приложения начал реализовывать обработку события OnClick — щелчка на кнопке Button1.Одновременно с записью в описание класса объявления процедуры Delphi занесла в раздел implementation заготовку соответствующей процедуры:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Здесь между резервированными словами beginи end;можно поместить текст обработчика события.
Помимо этой процедуры в коде присутствует еще несколько одинаковых процедур, Fl—F5, и несколько переменных символьного типа, Chi—Ch4. Рассмотрим работу процедур Fl—F5. У компонента — метки типа TLabel имеется свойство Caption — надпись на метке. Каждая из процедур Fl—F5 берет значение этой надписи, добавляет к ней символ, переданный в нее в качестве параметра Ch, затем добавляет символ, хранящийся в переменной Ch1, и возвращает надпись с этими добавлениями обратно в метку.
Обработчик щелчка мышью по кнопке — процедура TForm1.Button1Click — задает символьным переменным Ch1- Ch4 значения символов «-», А, В и С, затем очищает свойство Caption метки Label1, занося в него пустую строку, а затем поочередно обращается к процедурам Fl—F5, передавая в них в качестве параметров различные символы. В заключение надпись метки окрашивается в красный цвет. Для этого используется свойство Font — шрифт объекта Label1. Это свойство само является объектом, имеющим свойство Color — цвет. Значение этого свойства изменяет последний оператор процедуры TForml.ButtonlClick.