Показать сообщение отдельно
Старый 23.11.2010, 15:14   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Так, ну адаптировал я Вашу программу к тем типам и процедурам, к которым привык, получилось так:
Код:
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.
Можете убедиться, что ничего по сути не изменилось. И вот что увидел (нечто странное):
Название: AA101.jpg
Просмотров: 837

Размер: 26.4 Кб
Так что еще работать и работать.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070