Пример использования циклов

Следующий пример наглядно показывает, как организуется совместная работа цик-лов, условий и логических операторов. В нем описанные ранее разновидности циклов используются для заполнения нескольких текстовых полей на форме. Хотя такая программа не обладает особой практической ценностью, она хорошо демонстрирует работу различных циклов.

1. Создайте новый проект командой File > New Project.

2. В диалоговом окне New Project выберите значок Standard EXE и нажмите кнопку ОК.

3. Задайте свойству Name формы Form1 значение frmMain, а свойству Caption — значение Циклы.

4. Откройте редактор меню клавишами Ctrl+E. 5. Создайте меню верхнего уровня, указывая в поле Caption значение &Цикл. Введите в поле Name значение mnuLoop.

6. Создайте новый объект меню (нажмите кнопку Next в редакторе меню).

7. Нажмите кнопку со стрелкой , расположенную прямо над списком (рис. 6.7), чтобы снабдить созданный объект единичным отступом. При этом он становится командой меню верхнего уровня.

 

Рис. 6.7. Создание команды меню

 

8. Введите в поле Caption значение &For... Next, а в поле Name — значение mnuLoop ForNext.

9. Нажмите кнопку Next, чтобы создать следующую команду меню. Обратите внимание: она уже снабжена необходимым отступом, поэтому нажимать кнопку со стрелкой не нужно.

10. Введите в поле Caption значение &Do... Loop, а в поле Name — значение mnuLoopDo-Loop.

11. Нажмите кнопку Next, чтобы создать следующую команду меню. Введите в поле Caption значение &While... Wend, а в поле Name — значение mnuLoopWhileWend.

12. Нажмите кнопку Next, чтобы создать следующую команду меню. Введите в поле Caption значение «-» (дефис), а в поле Name — значение mnuLoopSep1.

 

ПОДСКАЗКА

Когда в поле Caption объекта меню вводится дефис (-), объект представляет собой разделитель, предназначенный для визуальной группировки команд меню. Более подробная информация о создании меню приведена в уроке 5, «Создание и использование меню и панелей инструментов».

 

13. Создайте следующую команду меню,введите в поле Caption значение&Очис-тить,а в поле Name — значение mnuLоорС1еаг.

14. Нажмите кнопку OK, чтобы закрыть редактор меню.

15. Сохраните проект командой File > Save Project.

 

ВНИМАНИЕ При выполнении длинных или сложных операций почаще сохра-няйте свою работу. Если система «зависнет», потери будут минимальными.

 

16. Создайте на форме frmMain текстовое поле, расположите его в левом верхнем углу формы и задайте его свойству Name значение txtTextBox. Удалите текущее содержимое свойства Text.

17. Активизируйте элемент, щелкнув на элементе txtTextBox в конструкторе форм.

18. Нажмите Ctrl+C, чтобы скопировать элемент в буфер обмена.

19. Щелкните на форме frmMain.

20. Нажмите Ctrl+V, чтобы вставить текстовое поле из буфера на форму. Появляется диалоговое окно (рис. 6.8), в котором вам предлагается создать массив элементов. Нажмите кнопку Yes.

 

 

Рис. 6.8. Создание массива элементов

 

21.Расположите новое текстовое поле справа от первого.

22. Снова щелкните на форме и нажмите Ctrl+V, чтобы вставить из буфера следующее текстовое поле. Расположите его справа от полей, созданных при выполнении шагов 20 и 21.

Мы создали ряд из трех текстовых полей. Продолжайте вставлять на форму копии текстового поля и расположите их в виде таблицы, состоящей из трех столбцов и пяти строк. Форма с 15 текстовыми элементами должна выглядеть так, как показано на рис. 6.9.

23. Выберите команду For...Next из меню Циклы формы frmMain. Открывается окно программы с процедурой события mnuLoopForNext_Click.

24. Вставьте в процедуру следующий фрагмент:

 

Private Sub mnuLoopForNext_Click()

Dim i As Integer

 

'Заполнить текстовые поля в цикле

For...Next For i = 0 to 14

txtTextBox(i).Text = "i = " & Trim$(Str$(i))

Next

End Sub

 

 

Рис. 6.9. Форма с массивом текстовых полей

 

25. Перейдите к процедуре события mnuDoLoop_Click и вставьте в нее следующий фрагмент:

 

Private Sub mnuDoLoop_Click()

Dim i As Integer

 

'Заполнить текстовые поля в цикле For...Next

i = 0

Do While i < 15

txtTextBox(i).Text = "i = " & Trim$.(Str$(i'))

i = i + 1

Loop

End Sub

 

26. Вставьте следующий фрагмент в процедуру события mnuWhileWend_Click:

 

Private Sub fnnuWhileWend_Click()

Dim i As Integer

 

'Заполнить текстовые поля в цикле For...Next

i = 0

While i < 15

txtTextBox(i).Text = "i = " & Trim$(Str$(i))

i = i + 1

Wend

End Sub

 

27. Вставьте следующий фрагмент в процедуру mnuLoopClear_Click:

 

Private Sub mnuWhileWend_Click()

Dim x As Control

' Перебрать все текстовые поля на форме

' и стереть их содержимое

For Each x In frmMain.Controls

If UCase$(Left$(x.Name, 3)) = "TXT" Then

x.Text = ""

End If

Next

End Sub

 

28.Coxpaните и запустите проект.

Выберите один из циклов, перечисленных в меню Циклы, и проследите за изменением текстовых полей. Все типы циклов дают одинаковый результат, но разными способами (рис. 6.10). Как вы вскоре убедитесь, одна и та же задача в программировании может решаться по-разному. Проследив за работой циклов, выберите из меню Циклы команду Очистить. Программа перебирает все объекты на форме и очищает свойство Text каждого текстового поля. Запомните этот прием, он пригодится вам при создании ваших собственных приложений.

 

ПОДСКАЗКА Если вы — начинающий программист или новичок в Visual Basic,

выделите немного времени на просмотр программ-примеров.

Запустите их, чтобы понять, что они делают, а затем просмотрите текст программы. Изучение программ, написанных другими, — лучший способ освоить язык программирования!

 

Рис. 6.10. Пример работы с циклами

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: