Слайд 2Инструкция Option Explicit –
Она будет требовать явно объявлять переменные.
Переменную надо
объявлять явно с помощью инструкции –
Dim
Long –
длинное целое число со знаком от
–2 147 483 648 до 2 147 483 647
Integer –
целое число со знаком от –32 768 до 32767
String –
строка символов
Boolean –
логическое, принимает два значения или “True” (Истина) или “False” (Ложь)
Слайд 3Таймер. Программа “Часики”.
Слева, где компоненты формы, они же инструменты-элементы, нарисован такой будильничек.
Это таймер и есть. Он всегда невидимый, но нужный элемент. Всего их одновременно можно использовать около 30 штук. Но нам столько не надо. Поместим один его на форму. На основе его мы сделаем сейчас маленькие часики. В свойствах этого таймера поставьте следующие установки:
Слайд 4Таймер. Программа “Часики”.
Enabled – False (по умолчанию True) означает, что таймер выключен
Interval
– 1000 (время, в миллисекундах, через которое таймер срабатывает, если конечно включен). Таймер будет срабатывать каждые 1000 мск, т.е. каждую секунду, как в нормальных часах.
Слайд 5Таймер. Программа “Часики”.
Кроме того, нам понадобятся три лейбла: Label1 для секунд, Label2
для минут и Label3 – для отображения часов.
Поставьте в свойствах лейблов такие установки:
Alignment – 2-Центровка (Это чтоб цифры были по центру лейблов)
BorderStyle – 1-Фиксировано (это чтоб размер формы нельзя было изменить)
Caption – 00 (значение лейблов изначально будет “00”)
Нажмите Font и выберите размер шрифта 14, а начертание – полужирное. После этого подберите подходящий размер окон Лейблов, чтобы цифры в них выглядели покрасивше.
Слайд 6Таймер. Программа “Часики”.
Должно получиться как на рисунке.
Слайд 7Таймер. Программа “Часики”.
Сделаем подпрограмму Form_Load .
Option Explicit
Private Sub Form1_Load()
Затем в теле
процедуры, как у всякой приличной программы меняем заголовок формы.
Form1.Caption = "Часики"
Дальше, для того, чтобы наши часы сразу показывали текущее время, надо его взять из компьютера. Чтобы получить системное время есть функция Time (Label1.Caption=Time). Но она дает полное время одной строкой (16:23:42). Нам надо выбирать из нее секунды, минуты и часы, чтобы распихать по свои лейблам. Для этого возьмем готовые функции, которые предоставят нам это все по частям:
Label1.Caption = Second(Time) 'стало быть секунды
Label2.Caption = Minute(Time) 'ну минуты
Label3.Caption = Hour(Time) ' и часы
Теперь, если мы запустим программу, у нас будет показываться текущее время, но вот только часики-то стоят.
Слайд 8Таймер. Программа “Часики”.
Чтобы у нас показания времени в нашей программе «Часики» до
десятка были с ноликами 01, 02, 03, а не 1, 2, 3 мы проверяем условие, меньше ли длина числа, записанного в лейбле двух. Если да, то прибавляем впереди нолик. Для этого используем функцию Len("строка"), которая определит число символов в строке. Если в строке, например 5 символов, то Len даст число 5. У нас получится:
Слайд 9Таймер. Программа “Часики”.
Private Sub Zero()
If Len(Label1.Caption) < 2 Then Label1.Caption = "0"
& Label1.Caption
If Len(Label2.Caption) < 2 Then Label2.Caption = "0" & Label2.Caption
If Len(Label3.Caption)< 2 Then Label3.Caption = "0" & Label3.Caption
End Sub
Слайд 10Таймер. Программа “Часики”.
Ну вот, с ноликами все в порядке, зато часы не
работают. В подпрограмме Timer1_Timer() у нас всего один оператор. Чтобы часы работали, как настоящие, нам надо, чтобы, когда секунд становилось больше 59, они обнулялись, при этом минуты увеличивались бы на один. Используем оператор If:
Слайд 11Таймер. Программа “Часики”.
If Label1.Caption > 59 Then
Label1.Caption = "0"
Label2.Caption = Label2.Caption +
1
End If
То же самое для Лейбла2:
If Label2.Caption > 59 Then
Label2.Caption = "0"
Label3.Caption = Label3.Caption + 1
End If
Ну, а для Лейбла3. Надо, чтоб, если больше 23 часов, показывало не 24, а 00:
If Label3.Caption > 23 Then Label3.Caption = "0"
Теперь ставим ссылочку на нашу программу проверки ноликов Zero :
Zero
Слайд 12Таймер. Программа “Часики”.
Option Explicit
Private Sub Form_Load()
Form1.Caption = "Часики"
Label1.Caption = Second(Time)
Label2.Caption = Minute(Time)
Label3.Caption
= Hour(Time)
Timer1.Enabled = True
Zero
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Label1.Caption + 1
If Label1.Caption > 59 Then
Label1.Caption = "0"
Label2.Caption = Label2.Caption + 1
End If
If Label2.Caption > 59 Then
Label2.Caption = "0"
Label3.Caption = Label3.Caption + 1
End If
If Label3.Caption > 23 Then Label3.Caption = "0"
Zero
End Sub
Private Sub Zero()
If Len(Label1.Caption) < 2 Then Label1.Caption = "0" & Label1.Caption
If Len(Label2.Caption) < 2 Then Label2.Caption = "0" & Label2.Caption
If Len(Label3.Caption) < 2 Then Label3.Caption = "0" & Label3.Caption