Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ванеев О.Н. МУ к ЛР5 по ТИПИС.doc
Скачиваний:
0
Добавлен:
21.08.2019
Размер:
139.26 Кб
Скачать

6. Контрольные вопросы

    1. Какую информацию об объекте управления должен знать управляющий объект?

    2. Каким образом управляющий объект может получать информацию об управляемом объекте в случае переменного состава объектов управления?

    3. Какие состояния выделяются у управляющего объекта?

    4. Какие состояния выделяются у управляемого объекта?

Приложение

Программное описание класса 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