Информатика. Программирование в Delphi
156
//метки ставим от 1 часа
//по часовой стрелке
a:=60;
//угол 60 градусов это 1 час
h:=1;
//отрисовка циферблата
//-300 это 60-360
while a>-300 do
begin
//координаты маркера
x:=x0+round(r*cos(a*gr));
y:=y0-round(r*sin(a*gr));
//если угол кратен 30 (шагу часовой стрелки), то
//отрисовка цифр и больших маркеров
if a mod 30 =0 then
begin
//отрисовка большого маркера
Canvas.Ellipse(x-2,y-2,x+2,y+2);
//координаты цифры
x:=x0+round((r+15)*cos(a*gr));
y:=y0-round((r+15)*sin(a*gr));
//отрисовка цифры
Canvas.TextOut(x-5,y-7,IntToStr(h));
//следующая цифра
inc(h);
end
//иначе отрисовка маленького маркера
else
Canvas.Ellipse(x-1,y-1,x+1,y+1);
//следующий угол
a:=a-6;
end;
//цвет кисти
Canvas.Pen.Color:=clBlack;
//ширина карандаша
Canvas.Pen.Width:=3;
//стирание старых стрелок (закраска цветом фона)
//отрисовка часовой стрелки цветом фона
Vector(x0,y0,ahr,r-30);
//отрисовка минутной стрелки цвеиом фона
Vector(x0,y0,amin,r-10);
//отрисовка секундной стрелки цветом фона
Vector(x0,y0,asec,r-7);
//считывание текущего времени
I...,146,147,148,149,150,151,152,153,154,155 157,158,159,160,161,162,163,164,165,166,...370