Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 21.10.2014
Сообщений: 4

Механические часы

20.12.2014, 18:46. Показов 2774. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят,помогите часы написанные на паскале,перекинуть в с++ builder
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Vector(x0,y0,a,L: integer);
    procedure DrawClock;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 uses
DateUtils; // äëÿ äîñòóïà ê SecondOf,
          // MinuteOf è HourOf
const
  R = 200; // ðàäèóñ öèôåðáëàòà ÷àñîâ
var
  x0,y0: integer;   // öåíòð öèôåðáëàòà
  ahr, amin, asec: integer;         // ïîëîæåíèå ñòðåëîê (óãîë)
 
  // èíèöèàëèçàöèÿ ôîðìû
procedure TForm1.FormCreate(Sender: TObject);
var
  t: TDateTime;
begin
  // çàäàäèì ðàçìåð ôîðìû â ñîîòâåòñòâèè ñ ðàçìåðîì öèôåðáëàòà
  ClientHeight := (R+10)*2;
  ClientWidth := (R+10)*2;
  x0:= R+10;
  y0 :=R+10;
  t := Now();
 
  // ïîëîæåíèå ñòðåëîê
  ahr := 90 - HourOf(t)*30-(MinuteOf(Today)div 12)*6;
  amin := 90 - MinuteOf(t)*6;
  asec := 90 - SecondOf(Today)*6;
  Timer1.Interval := 1000; // ïåðèîä ñèãíàëî îò òàéìåðà 1 ñåê
  Timer1.Enabled := True; // ïóñê òàéìåðà
end;
 
// âû÷åð÷èâàåò âåêòîð çàäàííîé äëèíû èç òî÷êè (õ0,ó0)
procedure TForm1.Vector(x0,y0: integer; a, L: integer);
// x0,y0 — íà÷àëî âåêòîðà
//à — óãîë ìåæäó îñüþ õ è âåêòîðîì
// l — äëèíà âåêòîðà
const
GRAD = 0.0174532; // êîýôôèöèåíò ïåðåñ÷åòà óãëà èç ãðàäóñîâ  â ðàäèàíû
var
  x,y: integer; // êîîðäèíàòû êîíöà âåêòîðà
  begin
    Canvas.MoveTo(x0,y0);
    x := Round(x0 + l*cos(a*GRAD));
    y := Round(y0 - l*sin(a*GRAD));
    Canvas.LineTo(x,y);
  end;
  // ðèñóåò ñòðåëêè
procedure TForm1.DrawClock;
 var
    t: TDateTime;
  begin
  // øàã ñåêóíäíîé è ìèíóòíîé ñòðåëîê 6 ãðàäóñîâ, ÷àñîâîé — 30.
  // ñòåðåòü èçîáðàæåíèå ñòðåëîê
Canvas.Pen.Color := clBtnFace;
 Canvas.Pen.Width :=6;
// ÷àñîâóþ
Vector(x0,y0, ahr, R-20);
//ìèíóòíóþ
Vector(x0,y0, amin, R-15);
// ñåêóíäíóþ
Vector(x0,y0, asec, R-7);
 t := Now();
// íîâîå ïîëîæåíèå ñòðåëîê
ahr := 90 - HourOf(t)*30-(MinuteOf(t) div 12)*6;
amin := 90 - MinuteOf(t)*6;
 asec := 90 - SecondOf(t)*6;
// íàðèñîâàòü ñòðåëêè
// ÷àñîâàÿ ñòðåëêà Canvas.Pen.Width := 3;
Canvas.Pen.Color := clBlack;
Vector(x0,y0, ahr, R-20);
// ìèíóòíàÿ ñòðåëêà
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clBlue;
Vector(x0,y0, amin, R-15);
// ñåêóíäíàÿ ñòðåëêà
 Canvas.Pen.Width := 1;
 Canvas.Pen.Color := clRed;
 Vector(x0,y0, asec, R-7);
end;
// ïðîðèñîâêà öèôåðáëàòà è íà÷àëüíûõ ñòðåëîê
 
 
procedure TForm1.FormPaint(Sender: TObject);
var
  x,y: integer; // êîîðäèíàòû ìàðêåðà íà öèôåðáëàòå
  a: integer;   // óãîë ìåæäó ÎÕ è ïðÿìîé (õ0,ó0) (õ,ó)
  pc: TColor;   // öâåò êàðàíäàøà
  pw: integer;  // øèðèíà êàðàíäàøà
begin
  pc := Canvas.Pen.Color;
  pw := Canvas.Pen.Width;
  Canvas.Pen.Width := 1;
  Canvas.Pen.Color := clBlack;
  a:=0; // ìåòêè ñòàâèì îò 3-õ ÷àñîâ, ïðîòèâ ÷àñîâîé ñòðåëêè
  // öèôåðáëàò
  while a < 360 do
  begin
    x:=x0+Round( R * cos(a*2*pi/360));
    y:=y0-Round( R * sin(a*2*pi/360)); Form1.Canvas.MoveTo(x,y);
    if (a mod 30) = 0
    then Canvas.Ellipse(x-2,y-2,x+3,y+3)
    else Canvas.Ellipse(x-1,y-1,x+1,y+1);
    a:=a+6; // 1 ìèíóòà — 6 ãðàäóñîâ
  end;
  // âîññòàíîâèòü êàðàíäàø-êèñòü
  Canvas.Pen.Width := pw;
  Canvas.Pen.Color := pc;
  DrawClock;
end;
 
// ïðîðèñîâêà òåêóùèõ ïîëîæåíèé ñòðåëîê ÷àñîâ
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  DrawClock;
end;
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2014, 18:46
Ответы с готовыми решениями:

Механические часы с будильником
Добрый день всем нужно сделать программу &quot;Механических часов с таймером&quot; написать нужно на С++ Билдере , спасибо за внимание.

Механические часы с будильником
Ребят, нужна помощь, нужны механические часы с будильником на С++ Builder, часы должны тикать когда работают, время будильника выбирать...

Механические часы в java
Доброе время суток. Прошу вас помочь разобраться с программой. Здесь осталось секундную стрелку сделать по аналогии с минутной и таймер...

1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
20.12.2014, 20:18
Ваш код, это как пример из книги Культин Н.Б..он так же есть как и на делфи,так и на BCB..(В архиве прикрепил вариант для BCB)
Вложения
Тип файла: rar Ходики.rar (16.0 Кб, 71 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2014, 20:18
Помогаю со студенческими работами здесь

Механические часы со стрелками в java!
Помогите решить задачу!!! Реализовать приложение, которое рисует на экране механические часы с секундной, минутной и часовой...

Как создать механические часы (с циферблатом и стрелками)
Всем привет) Мне в универе задали написать мех. часы, но как я поняла, они создаются при помощи классов... Меня это удивило, потому что...

Есть ли разница, если часы будут механические или электронные
Ребят, у меня вопрос по теории относительности... согласно ей чем сильнее гравитация, тем дольше идет время... земля имеет форму эллипса,...

Нарисовать механические часы, в котором будут двигаться часовая, минутная и секундная стрелка
Нарисовать механические часы, в котором будут двигаться часовая, минутная и секундная стрелка.

Механические колебания
Помогите разобраться с задачами: 1) Идеальная жидкость, заполняющая вертикальный участок длины l тонкой L-образной трубки, в момент t = 0...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru