Шаг №1 - Постановка задачи

С помощью этой программы Вы научитесь работать с полем ввода текста, с панелями сообщений (MessageBox), а также научитесь распечатывать форму со всей информацией, расположенной на этой форме. Но самое главное - я раскажу Вам, какие преимущества даст использование массивов элементов в ваших программах. При выполнении программы Вы сможете ввести в соответствующие поля нужную информацию, а затем распечатать ее на принтере. Из-за удивительной простоты кода, распечатывание будет проводиться самым простым образом: форма, сохраняя все свои параметры (цвет, размер, помещенные на ней элементы и т.д.) будет вырисовываться в верхнем левом углу листа. Кстати, программа будет работать только с той машиной, на которой установлен принтер... Так что, перед использованием программы советую включить/подсоединить/проинсталлировать принтер, если таковой имеется...


Шаг №2 - визуальная реализация программы.

В этом разделе будут описаны элементы, помещаемые на форму с теми свойствами, которые требуют своего изменения. Для избежания непредвиденных ошибок, просьба указывать свойства так же, как это сделал автор. Итак, поехали...

Форма
Name = frmPrint
Caption = Information for printing
BorderStyle = Fixed Single
MaxButton = False
MinButton = True

Кнопка #1
Name = cmdPrint
Caption = Print
Default = True

Свойство Default = True указывает, что программный код кнопки будет исполняться при нажатии Enter'а.

Кнопка #2
Name = cmdExit
Caption = Exit
Cancel = True

Свойство Cancel = True указывает, что программный код кнопки будет исполняться при нажатии Escape'а.

Тут необходимо кое-что пояснить. При выполнении следующего действия программа скажет, что элемент с таким именем уже существует, и спросит, хотите ли Вы создать массив элементов. Ответьте "Да". Итак, поместите на форму элемент TextBox со следующими свойствами:

Name = txtInform
Text = <пустой>

Затем, поместите на форму еще 6 (шесть) текстбоксов с таким же именем (может просто скопировать первый и вставлять их на форму). Затем рядом с каждым текстовым полем поместите Label'ы с названиями, объясняющими назначения полей ввода: First name, Last name, Nick, Date of birth, E-mail, Phone.

На этом этап визуальной разработки Вашего приложения закончен. Теперь ваша форма должна выглядеть примерно вот так:

 


Шаг №3 - Программирование в коде

Ну вот. Теперь можно переходить к наисанию кода. Как я уже говорил, код программы будет несложнным. Вообще есть программы с простейшей визуальной реализацией и очень запутанным кодом, а наша программа, наоборот, заставила Вас повозиться с установкой на форме различных элементов, но зато код ее будет элементарным. Во-первых, в коде кнопки выхода напишите команду выхода из программы. Но это мы сделаем интереснее, используя панели сообщения (Message Box). Итак, пишите:

If MsgBox("Do you really wanna leave us?", vbYesNo + vbQuestion, "Exit?") = vbYes Then
End
End If

В данном случае, при нажатии кнопки выхода появится панель с вопросом, хотите ли вы выйти, и двумя кнопками: "Да" и "Нет". Подробно об использовании MessageBox я рассказывать не буду - всю информацию можно найти в хелпе.

Теперь давайте напишем код для кнопки "Print". Ключевые моменты я выделил синим цветом.

'b - индекс поля ввода
'Проверяем все поля с индексом
'от 0 до 5
For b = 0 To 5
'Если какое-то поле пустое
If txtInform(b).Text = "" Then
'Выдаем сообщение
'Если ответ - Да, то иди к метке 1
If MsgBox("One of the fields is clear. Continue?", vbQuestion + vbYesNo, "Printing") = vbYes Then
GoTo 1
'Если ответ - Нет, то иди к метке 2
Else
GoTo 2
End If
End If
Next
'Метка 1
1
frmPrint.PrintForm
Exit Sub
'Метка 2
2
MsgBox "Please, fill the fields."
Exit Sub


Шаг №4 - Подведение итогов

В принципе, все действия объяснены в комментариях. Но кое-что стоит объяснить.
Во-первых, индекс элементов в массиве начинается с нуля. Это надо запомнить, потому что понять это невозможно. Это - ошибка многих, только начавших работать с массивами элементов.
Во-вторых, мы не случайно использовали метки. Дело в том, что при использовании такого цикла, действие будет повторяться столько раз, сколько раз выполняется условие. Т.е. в нашем случае, если Вы не заполнили несколько полей, то программа выдаст Вам несколько сообщений подряд. Но нам-то нужно только одно сообщение! Поэтому мы прерываем процедуру с помощью ссылки на метку. В принципе, это можно было сразу делать с помощью команды Exit Sub (выйти из процедуры), но мне хотелось показать еще и работу с метками.
Кстати, мы использовали эту команду для того, чтобы разделить две метки: первую и вторую, а иначе вторая метка принадлежала бы первой.

На этом и второй этап создания программы завершен. Вы можете откомпилировать Вашу программу и посмотреть ее в действии.
Эту программу можно значительно усовершенствовать, добавив другие поля ввода. Для большей красоты отпечатанной формы ее размеры можно увеличить, а шрифт я настоятельно рекомендую сделать побольше.

Прим. Редактора.: Если у вас что - то не работает, можете посмотреть исходники.