Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1

Урок 9. Таймер с ProgressBar’ом

Вот мы снова встретились… пусть виртуально, но все равно приятно.

Сегодня мы рассмотрим создание таймера. Нет не часов, а таймера, отсчитывающего заданное время.

Создаем проект: Standard.exe. На форму устанавливает объекты:


  • 3 Label’a – для индикации прошедшего времени;

  • 2 Label’a – для разделения секунд, минут и сотых;

  • 1 Label – для записи напоминания о процессе;

  • 1 TextBox – для задания интервала времени (по умолчанию зададим 1 минуту = 60 сек.);

  • 2 Timer’a – один будет показывать текущее время (Interval=10, т.е. сотые доли секунды), а второй – для таймера (Interval=500) для индикации записи;

  • 1 кнопку (CommandButton) – для запуска timer’a отсчета;

  • 1 ProgressBar (max=60)– для графического изображения оставшегося времени.

Примечание. Прежде чем продолжить выполнение задания – необходимо изучить свойства установленных объектов

Если не знаешь, как установить ProgressBar (ведь его нет на стандартной панели инструментов), то щелкни правой кнопкой на ней и выбери Компоненты (Components) откроется окно, в котором необходимо выбрать (поставить флажок) Microsoft Windows Common Controls 6.0 (SP6) и нажать ОК.



На панели инструментов появятся дополнительные объекты. Выберите ProgressBar.



После установки объектов и изменения свойства объектов у нас получится нечто вроде:



Осталось написать код для программы:



Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Form_Load() ‘ задаем свойства ProgressBar’a

Call SendMessage(ProgressBar1.hwnd, 1033, 0, ByVal vbRed) ‘ полоса будет красной

Call SendMessage(ProgressBar1.hwnd, 8193, 0, ByVal &HFFFF00;) ‘ фон должен слиться с фоном формы

End Sub

Private Sub Command1_Click()

Text1.Enabled=False ‘ текст1 делаем недоступным для изменения

ProgressBar1.Max = 60 * Text1.Text ‘задаем максимальное значение ProgressBar’a

Label5.Caption = "Идет отсчет!" ‘ при нажатии кнопки надпись на Label5 меняется

Timer1.Enabled = Trueпри нажатии кнопки включается таймер

End Sub

Private Sub Timer1_Timer()

x = Val(Label3.Caption)

x = x + 1 ‘ запускается таймер сотых секунды

Label3.Caption = x

If Label3 > 59 Thenесли сотых более 59, то

Label3 = 0 ‘запись3 обнуляется

Label2 = Label2 + 1 ‘в записи3 добавляется 1 секунда

End If

If Label2 > 59 Thenесли секунд более 59, то

Label2 = 0 ‘запись2 обнуляется

Label1 = Label1 + 1 ‘в записи1 добавляется 1 минута

End If

If Len(Label1) < 2 Then Label1 = "0" & Label1 ‘добавляем по нолику

If Len(Label2) < 2 Then Label2 = "0" & Label2 ‘ в записи для двузначности чисел

If Len(Label3) < 2 Then Label3 = "0" & Label3

If Label1 = "0" & Text1.Text Thenесли число на записи1 и текстовом поле

Timer1.Enabled = Falseсовпадает, то останавливаем таймер1

Timer2.Enabled = False ‘ и таймер2

MsgBox ("Время вышло!!!") выводим сообщение

End If

ProgressBar1.Value = ProgressBar1.Value + 1 / 60 ‘ при отсчете времени величину прогрессбара увеличиваем на 1/60

If ProgressBar1.Value = ProgressBar1.Max Thenпри достижении максимума ProgressBar1.Value = 0 ‘прогрессбар обнуляем

End If

End Sub

Private Sub Timer2_Timer() ‘ таймеру2 задание: сигнализировать запись5

If Label5.Visible = True Then

Label5.Visible = False

Else: Label5.Visible = True

End If

End Sub

Для любознательных

Добавим в наш проект строку меню, как в любой программе Windows. Для этого нажмем кнопку в меню



и создадим несколько команд меню:



Для команды File




Для команды Фон формы




Для команды Шрифт, предварительно установив эти шрифты (их можно скачать из Интернета);




Для команды Цвет Прогрессбара



Теперь необходимо этим командам написать код:

  1. Команда File

  • Запуск. Она заменяет нам кнопку Start – ее можно удалить:



Private Sub mnurun_Click()

ProgressBar1.Max = 60 * Text1.Text

Label5.Caption = "Идет отсчет!"

Timer1.Enabled = True

End Sub

- Выход – она дублирует нам крестик на Строке заголовка:

Private Sub mnuexit_Click()

End

End Sub

  1. Команда Фон формы:

- Синий:

Private Sub mnublue2_Click(Index As Integer)

Form1.BackColor = &HFF0000;

Label1.BackColor = &HFF0000;

Label2.BackColor = &HFF0000;

Label3.BackColor = &HFF0000;

Label4(0).BackColor = &HFF0000;

Label4(1).BackColor = &HFF0000;

End Sub



Так как при этом плохо виден отсчет для них тоже заменим цвет цифр, допустим на «Золотой». Впишем код до End Sub:



Label1.ForeColor = &HC0C0;&



Label1.ForeColor = &HC0C0;&

Label2.ForeColor = &HC0C0;&

Label3.ForeColor = &HC0C0;&

Label4(0).ForeColor = &HC0C0;&

Label4(1).ForeColor = &HC0C0;&



End Sub



Красный цвет «Задайте время» и «Идет отсчет» хорошо виден на синем фоне:



Фон полосы ПрогессБара также желательно заменить на цвет формы: Там же, но ниже:



Call SendMessage(ProgressBar1.hwnd, 8193, 0, ByVal &HFF0000;)







Таким же образом меняем цвета и на «Зеленый» и «Золотой». Это я оставляю выполнить тебе самостоятельно…

  1. Шрифт. При выборе на команды меню Шрифт - AG_Cooper весь шрифт на форме меняется:

на

Private Sub mnufont2_Click()

Text1.Font = "AG_Cooper"

Label1.Font = "AG_Cooper"

Label2.Font = "AG_Cooper"

Label3.Font = "AG_Cooper"

Label5.Font = "AG_Cooper"

End Sub

Аналогично проделайте с другими типами шрифта самостоятельно…

и

Цвет ПрогрессБар’а можно выбрать любой, но так, чтобы он был хорошо виден на фоне формы.

Вот и все виражи…

До скорой встречи…

Скачать проект можно по ссылке: https://www.fayloobmennik.net/2341433

Запустить проект

2012 год, город Тараз, сш 18

учитель информатики Башмаков Ильдар Шарифович

E-mail: [email protected]

Урок Таймер с ProgressBar’ом Вот мы снова встретились… пусть виртуально, но все равно приятно

Сегодня мы рассмотрим создание таймера. Нет не часов, а таймера, отсчитывающего заданное время

83.96kb.

12 10 2014
1 стр.


Учиться жить, и главное значение имеет необходимость учиться любить

Аждый день. Только большей частью мы не обращаем внимания на эти уроки, и не делаем выводы. Миру приходится повторять снова и снова один и тот же урок, всё более настойчиво, всё бо

1308.16kb.

16 12 2014
8 стр.


-

Все утащили, все! – навзрыд плакала старуха. – Сволочи! Пусть это им поперек горла встанет! Ничего не оставили! Только вот вчера пенсию получила…

82.81kb.

09 09 2014
1 стр.


Дорогие Лена и Алёша! 15. 05. 1998

Ваш огненный жим. Конец несколько спасает дело. Приятно то, что нет всё тех же Соль мажоров. Наверное, всё-таки он, собака, трудный, другие люди (на слух) написали удобнее, вот и и

195.73kb.

11 10 2014
1 стр.


Книга первая и пусть страданье и отрада, и пусть удача и досада

Что-что, а уж помечтать-то мы любим! Помечтать, окунуться в вымышленную жизнь литературных и киногероев, а после… снова вернуться к повседневной рутине, постоянным недо­моганиям, с

2599.88kb.

09 09 2014
10 стр.


Книга 11. Колесо времени. Шаманы Древней Мексики: их мысли о жизни, смерти и Вселенной

Итак, «Колесо времени», очевидно, итоговая книга Карлоса Кастанеды. Может быть, он все же напишет что-нибудь еще, но эта книга все равно будет итоговой. Так она задумана. И пусть к

875.23kb.

15 12 2014
11 стр.


Вот некоторые фразы, которые помогут вам правильно построить разговор с ребенком

Но мы все равно тебя любим!" или "Так сложилось, что папа переезжает, больше с тобой жить не будет, но будет приходить, и ты сможешь с ним видеться столько, сколько захочешь". Все

41.79kb.

14 12 2014
1 стр.


Характеристика: Доступность: 40

Шан-Цунг чувак ещё тот. По моему взгляду он самый слабый боец в игре. Можно даже им не учится играть, всё равно будет бестолку. Что сделаешь, всё равно придётся про него описывать.

13.19kb.

16 12 2014
1 стр.