Стрелочные часы на VB. Нужно улучшить работающую программу
Формулировка задачи:
Добрый день, помогите пожалуйста улучшить программу. Всё работает, показывает реальное время, но проблема в том что есть Cls и каждую секунду форма полностью очищается и чертятся заново все линии и окружности. Мне нужно чтобы очищались только линии (стрелки часов), например каждую секунду старая стрелка очищалась и новая рисовалась, так само с минутными и часовыми стрелками. Преподаватель говорит что это делается через исключающее или но я пока не знаю как. Буду рад любому совету, заранее спасибо. Ниже приведён мой код
Решение задачи: «Стрелочные часы на VB. Нужно улучшить работающую программу»
textual
Листинг программы
Option Explicit Dim x As Integer, y As Integer 'точки центра часов Dim rad_b As Integer, rad_m As Integer, rad_ch As Integer, rad_s As Integer Dim vr As String Dim chas As Integer, min As Integer, sek As Integer, a As Integer, x1_a As Integer, y1_a As Integer, x2_a As Integer, y2_a As Integer Dim x_m As Integer, y_m As Integer, x_ch As Integer, y_ch As Integer, x_s As Integer, y_s As Integer Const PI As Single = 3.1415926 Private Sub Form_Load() Me.AutoRedraw = True x = Width / 2: y = (Height / 2) - 300 rad_b = y - 50 DrawWidth = 5 'толщина линий Circle (x, y), rad_b, vbBlue a = 1 'прорисовка точечек For a = 0 To 11 x1_a = x + rad_b * Cos(a * PI / 6 - PI / 2) y1_a = y + rad_b * Sin(a * PI / 6 - PI / 2) x2_a = x + (rad_b - 100) * Cos(a * PI / 6 - PI / 2) y2_a = y + (rad_b - 100) * Sin(a * PI / 6 - PI / 2) Line (x1_a, y1_a)-(x2_a, y2_a) Next a End Sub Private Sub Timer1_Timer() 'Cls vr = Time Text1.Text = Time 'Выдергиваем из строки время chas = Mid(vr, 1, 2) min = Mid(vr, 4, 2) sek = Mid(vr, 7, 2) a = 1 'длина линий rad_m = rad_b - 350 rad_ch = rad_b - 650 rad_s = rad_b - 200 'стираем старые If x_m <> 0 Then DrawWidth = 4 Line (x, y)-(x_m, y_m), Me.BackColor 'минутная Line (x, y)-(x_ch, y_ch), Me.BackColor 'часовая DrawWidth = 2 Line (x, y)-(x_s, y_s), Me.BackColor 'секундная End If 'задание координат линиям x_m = x + rad_m * Cos(min * PI / 30 - PI / 2) y_m = y + rad_m * Sin(min * PI / 30 - PI / 2) x_ch = x + rad_ch * Cos(chas * PI / 6 - 1.3) y_ch = y + rad_ch * Sin(chas * PI / 6 - 1.3) x_s = x + rad_s * Cos(sek * PI / 30 - PI / 2) y_s = y + rad_s * Sin(sek * PI / 30 - PI / 2) 'прорисовка линий DrawWidth = 4 Line (x, y)-(x_m, y_m) 'минутная Line (x, y)-(x_ch, y_ch) 'часовая DrawWidth = 2 Line (x, y)-(x_s, y_s) 'секундная End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д