Так, ну адаптировал я Вашу программу к тем типам и процедурам, к которым привык, получилось так:
Код:
uses CRT, graph, DOS;
var x1,y1,xh,yh,xm,ym,xc,yc,gd,gm,X,Y,i,a,Hour,Minute,Second,S100:integer;
n:array[0..12] of string;
s:string;
procedure ShowCurArrows(ShowColor:BYTE);
begin
SetColor(ShowColor);
xc:=round(X-180*cos(pi/180*(90+6*Second)));
yc:=round(Y-180*sin(pi/180*(90+6*Second)));
line(x,y,xc,yc);
xm:=round(X-155*cos(pi/180*(90+6*Minute)));
ym:=round(Y-155*sin(pi/180*(90+6*Minute)));
line(x,y,xm,ym);
xh:=round(X-115*cos(pi/180*(90+6*((Hour mod 12)*5+ Minute div 12))));
yh:=round(Y-115*sin(pi/180*(90+6*((Hour mod 12)*5+ Minute div 12))));
line(x,y,xh,yh);
end;
begin
Initgraph(<тут должны быть индивидуальные пераметры>);
n[1]:=' 1'; n[2]:=' 2'; n[3]:='3';
n[4]:='4'; n[5]:='5'; n[6]:='6';
n[7]:='7'; n[8]:='8'; n[9]:='9';
n[10]:='10'; n[11]:='11'; n[12]:='12';
X:=GetMaxX div 2;
Y:=GetMaxY div 2;
circle(X,Y,190);
a:=270;
for i:=1 to 60 do
begin
x1:=round(X-205*cos(pi/180*a));
y1:=round(Y+205*sin(pi/180*a));
a:=a+6;
if (a-6) mod 30=0 then OutTextXY(x1-16,y1-18,n[12-(i div 5)])
else
end;
xh:=X; yh:=Y;
xm:=X; ym:=Y;
xc:=X; yc:=Y;
circle(X,Y,3);
circle(X,Y,6);
circle(X,Y,9);
repeat
GetTime(Hour,Minute,Second,S100);
ShowCurArrows(Black);
delay(1000);
ShowCurArrows(White);
until keypressed;
CloseGraph;
end.
Можете убедиться, что ничего по сути не изменилось. И вот что увидел (нечто странное):
Так что еще работать и работать.