С помощью этой программы Вы научитесь работать с полем ввода текста, с панелями сообщений (MessageBox), а также научитесь распечатывать форму со всей информацией, расположенной на этой форме. Но самое главное - я раскажу Вам, какие преимущества даст использование массивов элементов в ваших программах. При выполнении программы Вы сможете ввести в соответствующие поля нужную информацию, а затем распечатать ее на принтере. Из-за удивительной простоты кода, распечатывание будет проводиться самым простым образом: форма, сохраняя все свои параметры (цвет, размер, помещенные на ней элементы и т.д.) будет вырисовываться в верхнем левом углу листа. Кстати, программа будет работать только с той машиной, на которой установлен принтер... Так что, перед использованием программы советую включить/подсоединить/проинсталлировать принтер, если таковой имеется...
В этом разделе будут описаны элементы, помещаемые на форму с теми свойствами, которые требуют своего изменения. Для избежания непредвиденных ошибок, просьба указывать свойства так же, как это сделал автор. Итак, поехали...
Форма
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.
На этом этап визуальной разработки Вашего приложения закончен. Теперь ваша форма должна выглядеть примерно вот так:
Ну вот. Теперь можно переходить к наисанию кода. Как я уже говорил, код программы будет несложнным. Вообще есть программы с простейшей визуальной реализацией и очень запутанным кодом, а наша программа, наоборот, заставила Вас повозиться с установкой на форме различных элементов, но зато код ее будет элементарным. Во-первых, в коде кнопки выхода напишите команду выхода из программы. Но это мы сделаем интереснее, используя панели сообщения (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
В принципе, все действия объяснены в комментариях. Но кое-что стоит
объяснить.
Во-первых, индекс элементов в массиве начинается с нуля. Это надо
запомнить, потому что понять это невозможно. Это - ошибка многих, только
начавших работать с массивами элементов.
Во-вторых, мы не случайно
использовали метки. Дело в том, что при использовании такого цикла, действие
будет повторяться столько раз, сколько раз выполняется условие. Т.е. в нашем
случае, если Вы не заполнили несколько полей, то программа выдаст Вам несколько
сообщений подряд. Но нам-то нужно только одно сообщение! Поэтому мы прерываем
процедуру с помощью ссылки на метку. В принципе, это можно было сразу делать с
помощью команды Exit Sub (выйти из процедуры), но мне хотелось показать еще и
работу с метками.
Кстати, мы использовали эту команду для того, чтобы
разделить две метки: первую и вторую, а иначе вторая метка принадлежала бы
первой.
На этом и второй этап создания программы завершен. Вы можете откомпилировать
Вашу программу и посмотреть ее в действии.
Эту программу можно значительно
усовершенствовать, добавив другие поля ввода. Для большей красоты отпечатанной
формы ее размеры можно увеличить, а шрифт я настоятельно рекомендую сделать
побольше.
Прим. Редактора.: Если у вас что - то не работает, можете посмотреть исходники.