Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базові компоненти.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
112.36 Кб
Скачать

Базові компоненти

Загальні зауваження

Процес створення програми в Visual Basic складається з двох кроків. Спочатку потрібно створити форму програми (діалогове вікно), потім написати процедури обробки подій. Форма додатка (так прийнято називати прикладні програми, що працюють в Windows) створюється шляхом додавання у форму компонентів і подальшій їх налаштування. У формі практично будь-якого застосування є компоненти, які забезпечують інтерфейс (взаємодія) між програмою і користувачем. Такі компоненти називають базовими. До базових компонентів можна віднести наступні:

  • Label — поле виведення тексту;

  • TextBox — поле введення/редагування тексту;

  • CommandButton — командна кнопка;

  • Checkbox — незалежна кнопка вибору;

  • OptionButton — залежна кнопка вибору;

  • ListBox — список вибору;

  • ComboBox — комбінований список вибору.

Вид компоненту, його розмір і поведінку визначають значення властивостей (характеристик) компоненту. Основну роботу в програмі виконують процедури обробки подій. Початкову інформацію програма може отримати з полів введення/редагування (компонент — TextBox), списку вибору (компонент — ListBox) або комбінованого списку (компонент — Combo Box).

Для введення значень логічного типа можна використовувати компоненти CheckBox і OptionButton. Кінцеві або проміжні результати програма може вивести в полі виведення тексту (компонент — Label) або у вікно повідомлення (функція — MsgBox).

Для перетворення тексту, що знаходиться, наприклад, в йолі введення/редагування, в число потрібно використовувати функцію Val. Для перетворення числа, наприклад значення змінної, в рядок можна використовувати функцію Format або CStr.

Завдання 1. Програма перераховує швидкість вітру з "метрів в секунду" в "кілометри в годину". Форма програми приведена на рис. 1.1.

ч. Швидкість вітру

Програма перераховує швидкість з метрів/секунду у кілометри/годину. Введіть швидкість (ціле число] і клацнггь по кнопці Перерахунок.

Перерахунок

Швидкість (м/сек.)

Label3

Рис.1.1. Форма програми «Швидкість вітру»

клацання на кнопці Перерахунок Private Sub Commandi_Click()

Dim ms As Integer ' швидкість м/сек

Dim kmh As Single ' швидкість км/ч

ms = Val(Texti.Text) ' введення початкових даних kmh = ms *3. 6 ' перерахунок виведення результату Label3.Caption = Format$(ms)+ "л«/сек - це " + _ Format$(kmh)+ " км/ч"

End Sub

Завдання 2. Програма, як і в прикладі і, перераховує швидкість вітру з "метрів в секунду" в "кілометри в годину". Форма програми приведена на рис.і.і. Програма складена таким чином, що

користувач зміг ввести в поле Швидкість [м/сік] тільки ціле

позитивне число.

клацання на кнопці Перерахунок Private Sub Commandi _Click()

Dim ms As Integer ' швидкість м/сек

перевіримо, чи ввів користувач число в полі Швидкість JfLen(Texti.Text) = о Then

якщо число не введене, то виводиться повідомлення "Потрібно ввести швидкість''

Label3.Caption = "Потрібно ввести швидкість"

Else

ms = Val(Texti.Text) ' введення початкових даних kmh = ms *3.6’ перерахунок виведенню результату ЬаЬеїз.СарНоп = Format$(ms)+ п м/сек - це " +_ Format$(kmh)+ "км/ч"

End If End Sub

натиснення клавіші в полі Швидкість

Private Sub Texti_KeyPress(KeyAscii As Integer)

До поля Швидкість можна вводити тільки цифри. Дана процедура перевіряє, чи є введений символ цифрою. Якщо немає, то введений символ замінюється нульовим і в молі редагування не відображається. KeyAscii - це код клавіші, що натискає. 48 - 51 - коди цифр від одо д, 8- код клавіші <Backspace>.

If Not (KeyAscii >= 48 And KeyAscii <=57 Or KeyAscii=8)

Then KeyAscii=o End If End Sub

Завдання 3. Програма перераховує швидкість вітру з "метрів в секунду" в "кілометри в годину". Форма програми приведена на рис.і.і. Програма складена таким чином, що користувач може ввести в поле Швидкість тільки ціле позитивне число. Обчислення виконується як в результаті клацання мишею на кнопці Перерахунок, так і в результаті натиснення клавіші < Enter>, після введення останньої цифри даних в полі Швидкість.

процедура перераховує швидкість з м/сек в км/ч Private Sub WindSpeedQ Dim ms As Integer ' швидкість м/сек

Dim kmh As Single ' швидкість км/ч

перевіримо, чи ввів користувач число в полі Швидкість

IfLen(Texti.Text)= о Then якщо число не введене то виводиться повідомлення "Потрібно ввести швидкість"

ЬаЬеІз.Сарііоп = " Потрібно ввести швидкість "

If sec <> o Then sec = sec - і Else sec =59 min = min - і End If

Call ShowTime ’ виведення часу, що залишився If (min = o) And (sec = o) Then заданий інтервал витік

Timen.Enabled = False ' зупинка таймера

Call MsgBox("Заданий інтервал витік,", _ vbOKOnly, "Таймер")

"Заданий інтервал витік." -текст повідомлення vbOKOnly - вікно повідомлення міститиме тільки кнопку "ОК" "Таймер" - заголовок повідомлення.

Commandi.Caption = "Пуск"

Labels.Visible = False ' приховування індикатора поля введення

інтервалу і підпису полів потрібно зробити видимими

Labeli. Visible = True

Texti.Visible = True

Labels.Visible = True

Texts.Visible = True

Texti.Text = "o"

Texts.Text = "o"

End If End Sub

Завдання 15. Програма "Таймер". Після закінчення заданого інтервалу часу, відтворюється звуковий сигнал. Форма і вікно програми приведені на рис.1.12. Відтворення звуку здійснюється за допомогою АРІ-функции Playsound з бібліотеки winmm.dll (бібліотека Windows Multimedia).

Таймер

JË iüLJ

05:58 Хвилини :q Секунди о

Стоп

Пуск

Puc.X.Is Форма та вікно програми «Таймер»

функція відтворення звукового файлу

Private Declare Function PlaySound Lib "winmm.dll"_ Alias "PlaySoundA" (ByVal IpszSoundName As String _ ByVal hModule As Long, ByVal uFlags As Long) As Long

IpszSoundName - ім'я файлу або інший ідентифікатор, hModule - номер модуля прикладної програми, що містить звук (якщо даний параметр не потрібний, то йому встановлюється ' значення о), uFlags - прапори специфікації відтворного файлу, наприклад: SND ALIAS - &Н10000 - відтворення системного звуку, SND_ASYNC = &Ні - асинхронне відтворення, тобто додаток не чекає завершення відтворення звуку, а паралельно продовжує роботу, SND_FILENAME = &Н20000 - вказівка повного шляху до файлу, SND_LOOP " &Н8 - відтворення файлу по кругу до тих пір, поки не буде викликана команда зупинки відтворення звуку, SND_NODEFAULT " &Н2 - у випадку, якщо вказаний файл не знайдений, не програється стандартний звук Windows, SND PURGE = &Н40 - зупинка відтворення всіх звуків, при цьому полі IpszSoundName повинно бути порожньо (""), SND_SYNC = &Но - синхронне відтворення, тобто додаток чекає завершення відтворення звуку, перш ніж продовжити роботу, і ін.

Const SND_ALIAS = &Н10000

Const SND_ASYNC = &Hi

Const SND_FILENAME = &H20000

Const SND_LOOP = &H8

Const SNDNODEFAІЛЛ' = &II2

Const SND_PURGE = &H40

Const SND_SYNC = &Ho

Dim min As Integer ’ кількість хвилин

Dim sec As Integer ' кількість секунд

клацання на кнопці "Пуск/стоп"

Private Sub Commandl_Click()

IfTimen.Enabled Then таймер працює, потрібно зупинити

Timen.Enabled - False ' зупинка таймера

Commandi.Caption = "Пуск"

Labelß. Visible = False ’ приховування індикатора поля введення інтервалу і підпису полів потрібно зробити видимими Labeli.Visible = True Texti.Visible = True Label2.Visible = True Text2.Visible = True виведення кількості хвилин, що залишилися, і секунд Texti.Text - Format$(min)

Text2.Text = Format$(sec)

Else

таймер стоїть, потрібно запустити min = Val(Texti.Text) sec = Val(Text2.Text)

If (sec = o)And (min = o) Then

Call MsgBox("Потрібно задати інтервал.

Завдання 5. Програма обчислює швидкість (км/год), з якою бігун пробіг дистанцію. Форма програми приведена на рис.1.3. Кількість хвилин задається цілим числом, кількість секунд - дробом.

Програма обрамовує швидкість з якою спортсмен пробіг дистанцію.

Дистанція [м]

Обрамувати

Завершити

Час

Хвилини

Секунди

Рис. 3.1 Форма програми «Швидкість бігу»

клацання на кнопці Обчислити Private Sub Commandi_Click()

Dim dist As Integer 'дистанція, метрів Dim min As Integer ' час, хвилини Dim sek As Single ' час, секунди Dim u As Single ' швидкість

отримання початкових даних з полів введення dist = Val(Texti.Text) min = Val(Text2.Text) sek = Val(Text3.Text)

дистанція і час не мають дорівнювати нулю If (dist = о) Or ((min = о) And (sek = o)) Then Labelß.Caption = "Потрібно задати дистанцію і час."

Exit Sub End If

обчислення

v = (dist /1000) / ((min *60 + sek) / 3600)

виведення результату

Label5.Caption = "Дистанція: " + Format$(dist) + _ "м " + СИг(із) + _ "Час: " + Format$(min) + "мін" + _ Vorrnat$(sek) +

"сек" + СНг(із) + _ "Швидкість: " + Format$(v, "о.оо") + _ "км/год" функція ChrQ повертає символ за значенням числової коди в Ascii End Sub

клацання на кнопці Завершити Private Sub Command2__Click() закриття головної форми Unload Formi End Sub

натиснення клавіші в полі Дистанція

Private Sub Texti__KeyPress(KeyAscii As Integer)

KeyAscii - код символу, відповідного що натискає клавіші. Якщо символ неприпустимий, то процедура замінює його на символ з кодом о. В результаті цього символ в полі редагування не з'являється.

Select Case KeyAscii

Case 48 To 57, 8 ' цифри о - 9 і <Backspace>

Case 13

при натисненні клавіші <Enter> курсор переводиться у поле Время:мінут

Text2.SetFocus Case Else

KeyAscii = о ' решта символів не відображається End Select End Sub

натиснення клавіші в полі Час:хвилин

Private Sub Text2__KeyPress(KeyAscii As Integer)

Select Case KeyAscii

Case 48 To 57, 8 ' цифри Про - 9 і <Backspace>

Case 13

при натисненні клавіші <Enter> курсор переводиться у полі Час:секунд Text3.SetFocus Case Else

KeyAscii = о ' решта символів не відображається

End Select End Sub

натиснення клавіші в полі Час:секунд

Private Sub Text3_KeyPress(KeyAscii As Integer)

Select Case KeyAscii

Case 48 To 57, 8 ' цифри Про -9І <Backspaee>

Case 44, 46 ' десятковий роздільник KeyAscii =46

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]