Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
17.04.2013
Размер:
146.43 Кб
Скачать

4.2 Листинг программы

Uses Crt, Dos, App, Dialogs, Objects, Drivers, Views;

Type

PProg=^Tprog;

TProg=object(TApplication)

Constructor Init;

end;

PDial=^TDial;

TDial=object(TDialog)

Procedure HandleEvent(var Event: TEvent); Virtual;

end;

Const

cmPrint=100;

cmVyhod=101;

cmLeft=102;

cmRight=103;

cmMiddle=104;

Constructor TProg.Init;

label

lab1;

var

R: Trect;

Dia: PDial;

hr1,hr2,min1,min2,sec1,sec2,msec1,msec2:word;

hr,min,msec,sec:longint;

begin

Inherited Init;

DisableCommands([cmPrint]);

DisableCommands([cmRight]);

DisableCommands([cmMiddle]);

lab1:

R.Assign (18,8,62,19);

Dia :=New(PDial,Init(R,''));

R.Assign (4,4,13,6);

Dia^.Insert(New(PButton,Init(R,'Старт',cmLeft,bfNormal)));

R.Assign (18,4,27,6);

Dia^.Insert(New(PButton,Init(R,'Пауза',cmMiddle,bfNormal)));

R.Assign (30,4,38,6);

Dia^.Insert(New(PButton,Init(R,'Стоп',cmRight,bfNormal)));

R.Assign (4,8,19,10);

Dia^.Insert(New(PButton,Init(R,'Еще разок',cmPrint,bfNormal)));

R.Assign (30,8,39,10);

Dia^.Insert(New(PButton,Init(R,'Выход',cmCancel,bfNormal)));

Case ExecView(Dia) of

cmPrint:

begin

GotoXY(30,4);

Write('Продолжаем…');

DisableCommands([cmPrint]);

EnableCommands([cmLeft]);

goto lab1;

end;

cmLeft:

begin

GotoXY(30,4);

TextColor(Black);

TextBackGround(White);

Write(' ');

GetTime(hr1,min1,sec1,msec1);

DisableCommands([cmLeft]);

EnableCommands([cmMiddle]);

EnableCommands([cmRight]);

goto lab1;

end;

cmMiddle:

begin

GotoXY(30,4);

GetTime(hr2,min2,sec2,msec2);

hr:=hr2-hr1;

min:=min2-min1;

sec:=sec2-sec1;

msec:=msec2-msec1;

if min2-min1>=60 then

begin

min:=(min2+60)-min1;

hr:=hr-1;

end;

if sec2-sec1>=60 then

begin

sec:=(sec2+60)-sec1;

min:=min-1;

end;

if msec2-msec1>=100 then

begin

msec:=(msec2+100)-msec1;

sec:=sec-1;

end;

Write(' ',hr2-hr1,':',min,':',sec,':',msec,' ');

goto lab1;

end;

cmRight:

begin

GotoXY(30,4);

GetTime(hr2,min2,sec2,msec2);

hr:=hr2-hr1;

min:=min2-min1;

sec:=sec2-sec1;

msec:=msec2-msec1;

if min2-min1>=60 then

begin

min:=(min2+60)-min1;

hr:=hr-1;

end;

if sec2-sec1>=60 then

begin

sec:=(sec2+60)-sec1;

min:=min-1;

end;

if msec2-msec1>=100 then

begin

msec:=(msec2+100)-msec1;

sec:=sec-1;

end;

Write(' ',hr2-hr1,':',min,':',sec,':',msec,' ');

DisableCommands([cmRight]);

EnableCommands([cmPrint]);

DisableCommands([cmMiddle]);

goto lab1;

end;

end;

end;

Procedure TDial.HandleEvent(var Event:TEvent);

begin

Inherited HandleEvent(Event);

if (Event.What= evCommand) then

case Event.Command of

cmPrint: EndModal (cmPrint);

cmRight: EndModal (cmRight);

cmLeft: EndModal (cmLeft);

cmMiddle: EndModal (cmMiddle);

end;

end;

Var

Prog:TProg;

Begin

Prog.Init;

Prog.Run;

Prog.Done;

End.

Соседние файлы в папке Курсач по ОВП