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