6. Контрольные вопросы
Какую информацию об объекте управления должен знать управляющий объект?
Каким образом управляющий объект может получать информацию об управляемом объекте в случае переменного состава объектов управления?
Какие состояния выделяются у управляющего объекта?
Какие состояния выделяются у управляемого объекта?
Приложение
Программное описание класса TOb
TUO = class(TObject);//предопределение класса TUpr
TOb = class(TOject)
private
l1:TLabel;
t1:Ttimer;
uUpOb: TUO;
t:integer;
Procedure Ob1(sender:TObject);
Procedure Ob2(sender:TObject);
Public
Procedure Ob_Ob2(sender:TObject);
constructor Create(Owner:TWinControl,U:TUO);
end;
Описание программной реализации методов объекта Ob
implementation
{$R *.DFM}
constructor TOb.Create(Owner: TWinControl, U:TUO);
begin
parent:=Owner;
left:=10;
top:=20;
l1:=TLabel.Create(Owner);
l1.Parent:=Owner;
l1.Caption:='Объект';
t1:=TTimer.Create(Owner);
t1.interval:=50;
t1.OnTimer:=O1;//связывании таймера с методом, обработчиком
uUpOb:= U;//-связывание управляющего объекта c //объектом класса TO
end;
//описание реализации метода соответствующего действию,
// выполняемому в состоянии O1
Procedure TOb.Ob1(sender:TObject);
begin
uo.UO_UO2(self);
end;
//описание реализации метода соответствующего действию,
// выполняемому в состоянии O2
Procedure TOb.Ob2(sender:TObject);
begin
… … … . .
end;
//описание реализации метода соответствующего событию O_O2
Procedure TOb.Ob_Ob2(. . . .);
begin
. . .
T1.enabled:=false;// - выключение таймера, повторяющего
// вызов состояния Ob2;(можно было не выключить, а сделать
// присвоение t1.OnTimer:=nil, тогда бы он работал, но методов // никаких не вызывал)
Ob2;
end;
Описание класса TUO
TUO = class(TObject);//предопределение класса TUpr
private
l1:TLabel;
Ou: TOb;//объект упарвления
Procedure OU2(sender:TObject);
Public
Procedure OU_OU2(ob:TO);
constructor Create(Owner:TWinControl);
end;
Описание программной реализации методов объекта класса TOГ
implementation
{$R *.DFM}
constructor TOU.Create(Owner: TWinControl);
begin
parent:=Owner;
left:=10;
top:=20;
l1:=TLabel.Create(Owner);
l1.Parent:=Owner;
l1.Caption:='УпрОбъект';
Ou:= nill;//-с начала управляемый объект не определен
//описание реализации метода соответствующего действию,
// выполняемому в состоянии U2
Procedure TOU.OU2(sender:TObject);
begin
… … … . .
end;
//описание реализации метода соответствующего событию O_O2
Procedure TOU.OU_OU2(ob:TO);
begin
. . .
Ou:= ob;// - в атрибут, соответствующий управляемому //объекту заносится указание на объект управления
OU2;
end;
Список рекомендуемой литературы
1.Буч, Г., Рамбо, Дж., Якобсон, А. Язык UML руководство пользователя: пер. с англ. / Г. Буч, Дж. Рамбо, А. Якобсон. – М.: Петербург, 2004. – 432с.
2. Шлеер, С., Меллор, С. Объектно-ориентированный анализ: моделирование мира в состояниях: пер. с англ. / С. Шлеер, С. Меллор. – М.: Мир, 1999