Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
17.04.2013
Размер:
3.32 Кб
Скачать
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.