Ну вот Вам часы:
Код:
program jfj;
uses graph,CRT,DOS;
var
i:integer;
X1,X2,Y1,Y2,H,M,S,S100:word;
SS:String;
begin
{Здесь нужно инициализировать графический режим}
REPEAT
ClearDevice;
SetColor(Yellow);
SetLineStyle(SolidLn,0,ThickWidth);
Circle(320,240,200);
SetTextStyle(DefaultFont,HorizDir,2);
SetTextJustify(CenterText,CenterText);
For i:=1 to 12 do
begin
X1:=320+ROUND(180*Sin(30*i*Pi/180));
X2:=320+ROUND(200*Sin(30*i*Pi/180));
Y1:=240-ROUND(180*Cos(30*i*Pi/180));
Y2:=240-ROUND(200*Cos(30*i*Pi/180));
Line(X1,Y1,X2,Y2);
X1:=320+ROUND(160*Sin(30*i*Pi/180));
Y1:=240-ROUND(160*Cos(30*i*Pi/180));
STR(i,SS);
OutTextXY(X1,Y1,SS);
end;
SetLineStyle(SolidLn,0,NormWidth);
For i:=1 to 60 do
begin
X1:=320+ROUND(190*Sin(6*i*Pi/180));
X2:=320+ROUND(200*Sin(6*i*Pi/180));
Y1:=240-ROUND(190*Cos(6*i*Pi/180));
Y2:=240-ROUND(200*Cos(6*i*Pi/180));
Line(X1,Y1,X2,Y2);
end;
SetLineStyle(SolidLn,0,ThickWidth);
SetColor(LightRed);
GetTime(H,M,S,S100);
If H>=12 then H:=H-12;
Line(320,240,320+ROUND(100*Sin(30*(H+M/60)*Pi/180)),
240-ROUND(100*Cos(30*(H+M/60)*Pi/180)));
Line(320,240,320+ROUND(160*Sin(M*6*Pi/180)),
240-ROUND(160*Cos(M*6*Pi/180)));
SetColor(LightBlue);
Circle(320,240,10);
Delay(60000);
UNTIL KeyPressed;
CloseGraph;
END.
Несколько замечаний:
1. Часы идут и даже показывают правильное время (если, конечно, на компьютере установлено таковое).
2. Выход из программы - нажатие любой клавиши. Правда, придется с минутку подождать, пока кончится время задержки. Установлена задержка в 1 минуту; в принципе, можно поставить и меньше.
3. Название Вашего графического модуля (поправите, если надо) и инициализация графического режима - самостоятельно (зависит от реализации Паскаля и свойств системы).