Если честно, то я хотела дать эту тему позже, намного позже. Не потому, что она какая-то сложная, а просто чтобы не разбивать последовательность уроков по управляющим структурам. Но с другой стороны, выполнение тех заданий, которые мы с Dusk-ом решили для вас приготовить на сегодня, требует того, чтобы вы эту тему знали. Думаю, что не произойдет ничего из ряда вон выходящего, если мы разберем эту тему сегодня, вы с ее помощью сделаете задание на использование структуры if…else…, а после этого мы продолжим изучение управляющих структур.
Итак. Познакомимся с простейшими из диалоговых окон: с окнами сообщения и окнами ввода.
Иначе говоря- MessageBox. Выглядит примерно так:
Чтобы это окно появилось в вашей программе, можно вызвать с помощью функции MsgBox.
Синтаксис: (кто не знаком с условными обозначениями, скажем, что такие скобки
[] обозначают необязательные параметры функции, они могут быть, а могут и не быть, функция будет работать и при их отсутствии.
MsgBox (prompt [, buttons] [, title] [, helpfile, context])где:
prompt - текст сообщения в диалоговом окне. (Максимальная длина его может быть 1024 символа.)
buttons - описывает кнопки и значки для вашего диалогового окна. Может быть строкой, начинающейся с символов vb (это встроенные константы Visual Basic), а может быть числом, которое значит то же самое. Таблицу этих констант я дам ниже.
title - текст заголовка диалогового окна
helpfile - ссылка на файл справочной системы
context - ссылка на содержание в файле справочной системы.
Значок | Константа | Значение | Тип сообщения |
| vbExclamation | 48 | Предупреждение |
| vbQuestion | 32 | Запрос |
| vbInformation | 64 | Информация |
| vbCritical | 16 | Ошибка |
А сделать это можно двумя способами:
MsgBox “Народ, привет!” , vbYesNo+vbExclamation, “Окно сообщений” или
Call MsgBox (“Народ, привет!” , vbYesNo+vbExclamation, “Окно сообщений”) Чем эти строки отличаются друг от друга, разберем позже. Пока запомните- если вы заключаете параметры в скобки, обязательно в начале строки поставьте Call. Или такое выражение можно присвоить соответствующий переменной, но об этом опять же- позже. Что получится в данном случае: при соответствующем событии в обработку которого вы включите эту строку, будет вызвано окно сообщений в котором будет написано «Народ, привет!», будут кнопки Да, Нет, картинка с восклицательным знаком, а в строке заголовка над всей этой радостью будет написано «Окно сообщений».
Часто в диалоговом окне необходимо не только нажать кнопки выбора действия, но и ввести определенную информацию в программу. Для этого в VB можно использовать окно ввода информации InputBox .
Синтаксис:
InputBox (prompt [,title] [,default] [,xpos] [,ypos] [,helpfile, context])где:
prompt - текст сообщения в окне
title - текст заголовка диалогового окна
default - значение текстового поля ввода по умолчанию. Если параметр отсутствует, строка остается пустой
xpos - позиция по горизонтали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию соответствует середине экрана.
ypos - позиция по вертикали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию соответствует середине экрана.
helpfile, context - это как выше.
В окне InputBox есть всегда только 2 кнопки управления:OK и Cancel.
* Сделайте так, чтобы ваша форма при запуске программы располагалась в середине экрана.
* расположите на форме кнопки Вниз, Вверх, Вправо, Влево, Выход.
* при щелчке на кнопке Вниз происходит сдвиг формы на 100 единиц вниз и заголовок формы изменяется на "Форма- движение вниз"
* при щелчке на кнопке Вверх происходит сдвиг формы на 100 единиц вверх и заголовок формы изменяется на "Форма- движение вверх"
* при щелчке на кнопке Влево происходит сдвиг формы на 100 единиц влево и заголовок формы изменяется на "Форма- движение влево"
* при щелчке на кнопке Вправо происходит сдвиг формы на 100 единиц вправо и заголовок формы изменяется на "Форма- движение вправо"
* по кнопке Выход- выйти из программы.
* к имеющимся на форме кнопкам добавьте еще4: Плюс по горизонтали, Минус по горизонтали, Плюс по вертикали, Минус по вертикали
* при щелчке на кнопке “Плюс по горизонтали” форма должна становиться шире на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только расширялась). Заголовок формы изменяется на "Форма- увеличение по горизонтали"
* при щелчке на кнопке “Минус по горизонтали” форма должна становиться уже на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только становилась уже). Заголовок формы изменяется на "Форма- уменьшение по горизонтали"
* при щелчке на кнопке “Плюс по вертикали” форма должна становиться больше на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только расширялась). Заголовок формы изменяется на "Форма- увеличение по вертикали"
* при щелчке на кнопке “Минус по вертикали” форма должна становиться меньше на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только становилась меньше). Заголовок формы изменяется на "Форма- уменьшение по вертикали"
Для первых двух уровней этой программы можно было использовать только те свойства, которые вы уже выучили на предыдущих уроках. Для третьего уровня вы должны познакомиться с функцией Round(). Она округляет до целого аргумент функции. Эта функция понадобится для выполнения задания третьего уровня сложности. Теперь- само задание 3-го уровня.
При изменении размеров формы должно происходить следующее:
* кнопка Выход всегда остается в середине формы.
* кнопки Вверх, Вниз, Плюс по вертикали, Минус по вертикали должны оставаться на одном уровне с кнопкой Выход (по вертикали)
* кнопки Влево, Вправо, Плюс по горизонтали, Минус по горизонтали должны оставаться на одном уровне с кнопкой Выход (по горизонтали)
* Промежутки между кнопками Вверх, Вниз, Влево и Вправо и краем формы должны оставаться постоянными (равными одному и тому же числу) невзирая на степень изменения размеров формы.
* Промежутки между внутренними кнопками по горизонтали (кнопки Влево, Плюс по горизонтали, Выход, Минус по горизонтали, Вправо) должны изменяться пропорционально при изменении размеров формы по горизонтали, на одну и ту же величину. Т.е. ширина кнопок не меняется, меняются между ними промежутки и меняются одинаково.
* Аналогичная картина должна происходить при изменении размеров формы по вертикали.
Для этого вам понадобится :
функция Len()-она определяет длину строки. которая вводится как аргумент данной функции. Поскольку мы еще не учили свойства текстовых полей, Скажем, что вводится в текстовое поле ВСЕГДА имеет тип String, т.е. всегда является строкой, независимо от того буквы вы туда ввели или цифры. А получить строку, введенную в текстовое поле можно с помощью свойства Text. Например, если ваше текстовое поле называется txt, то длину введенной в него строки можно измерить с помощью функции Len() так:
Len(txt.Text) * Расположите на форме 2 текстовых поля и 2 командные кнопки
* сделайте проверку на то заполнены ли поля. Эта проверка должна происходить при нажатии кнопки Применить.
* Если первое поле не заполнено, выведите окно сообщения с заглавием «Ошибка», единственной кнопкой «ОК», значком ошибки и текстом «Введите ФИО!».
* Если второе поле не заполнено, выведите аналогичное окно сообщения, только текст сообщения должен быть «Введите возраст!»
* Если все введено правильно, измените заголовок формы на данные поля ФИО.