Статья
Версия для печати
Обсудить на форуме
Урок 11 VB. Окна ввода и окна сообщений



Предыдущий урок ----

  Если честно, то я хотела дать эту тему позже, намного позже. Не потому, что она какая-то сложная, а просто чтобы не разбивать последовательность уроков по управляющим структурам. Но с другой стороны, выполнение тех заданий, которые мы с Dusk-ом решили для вас приготовить на сегодня, требует того, чтобы вы эту тему знали. Думаю, что не произойдет ничего из ряда вон выходящего, если мы разберем эту тему сегодня, вы с ее помощью сделаете задание на использование структуры if…else…, а после этого мы продолжим изучение управляющих структур.

Итак. Познакомимся с простейшими из диалоговых окон: с окнами сообщения и окнами ввода.

1. Окно сообщения.


Иначе говоря- MessageBox. Выглядит примерно так:



  Чтобы это окно появилось в вашей программе, можно вызвать с помощью функции MsgBox.
  Синтаксис: (кто не знаком с условными обозначениями, скажем, что такие скобки [] обозначают необязательные параметры функции, они могут быть, а могут и не быть, функция будет работать и при их отсутствии.

  MsgBox (prompt [, buttons] [, title] [, helpfile, context])

где:
  prompt - текст сообщения в диалоговом окне. (Максимальная длина его может быть 1024 символа.)
  buttons - описывает кнопки и значки для вашего диалогового окна. Может быть строкой, начинающейся с символов vb (это встроенные константы Visual Basic), а может быть числом, которое значит то же самое. Таблицу этих констант я дам ниже.
  title - текст заголовка диалогового окна
  helpfile - ссылка на файл справочной системы
  context - ссылка на содержание в файле справочной системы.

Константы для значков окна сообщения


ЗначокКонстантаЗначениеТип сообщения
vbExclamation48Предупреждение
vbQuestion32Запрос
vbInformation64Информация
vbCritical16Ошибка

А сделать это можно двумя способами:

  MsgBox “Народ, привет!” , vbYesNo+vbExclamation, “Окно сообщений”

  или

  Call MsgBox (“Народ, привет!” , vbYesNo+vbExclamation, “Окно сообщений”)

  Чем эти строки отличаются друг от друга, разберем позже. Пока запомните- если вы заключаете параметры в скобки, обязательно в начале строки поставьте Call. Или такое выражение можно присвоить соответствующий переменной, но об этом опять же- позже. Что получится в данном случае: при соответствующем событии в обработку которого вы включите эту строку, будет вызвано окно сообщений в котором будет написано «Народ, привет!», будут кнопки Да, Нет, картинка с восклицательным знаком, а в строке заголовка над всей этой радостью будет написано «Окно сообщений».

2. Окно ввода информации.


Часто в диалоговом окне необходимо не только нажать кнопки выбора действия, но и ввести определенную информацию в программу. Для этого в VB можно использовать окно ввода информации InputBox .

  Синтаксис:

  InputBox (prompt [,title] [,default] [,xpos] [,ypos] [,helpfile, context])

где:
  prompt - текст сообщения в окне
  title - текст заголовка диалогового окна
  default - значение текстового поля ввода по умолчанию. Если параметр отсутствует, строка остается пустой
  xpos - позиция по горизонтали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию соответствует середине экрана.
  ypos - позиция по вертикали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию соответствует середине экрана.
  helpfile, context - это как выше.

   В окне InputBox есть всегда только 2 кнопки управления:OK и Cancel.

Задания.


1. Программа "Изменение размеров формы" (3 уровня сложности)


Уровень 1.


    * Сделайте так, чтобы ваша форма при запуске программы располагалась в середине экрана.
    * расположите на форме кнопки Вниз, Вверх, Вправо, Влево, Выход.



    * при щелчке на кнопке Вниз происходит сдвиг формы на 100 единиц вниз и заголовок формы изменяется на "Форма- движение вниз"
    * при щелчке на кнопке Вверх происходит сдвиг формы на 100 единиц вверх и заголовок формы изменяется на "Форма- движение вверх"
    * при щелчке на кнопке Влево происходит сдвиг формы на 100 единиц влево и заголовок формы изменяется на "Форма- движение влево"
    * при щелчке на кнопке Вправо происходит сдвиг формы на 100 единиц вправо и заголовок формы изменяется на "Форма- движение вправо"
    * по кнопке Выход- выйти из программы.

Уровень2.


    * к имеющимся на форме кнопкам добавьте еще4: Плюс по горизонтали, Минус по горизонтали, Плюс по вертикали, Минус по вертикали
    * при щелчке на кнопке “Плюс по горизонтали” форма должна становиться шире на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только расширялась). Заголовок формы изменяется на "Форма- увеличение по горизонтали"
    * при щелчке на кнопке “Минус по горизонтали” форма должна становиться уже на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только становилась уже). Заголовок формы изменяется на "Форма- уменьшение по горизонтали"
    * при щелчке на кнопке “Плюс по вертикали” форма должна становиться больше на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только расширялась). Заголовок формы изменяется на "Форма- увеличение по вертикали"
    * при щелчке на кнопке “Минус по вертикали” форма должна становиться меньше на 100 единиц. Подумайте- как сделать, чтобы она при этом не сдвигалась с места, где расположена (только становилась меньше). Заголовок формы изменяется на "Форма- уменьшение по вертикали"

Уровень3.


   Для первых двух уровней этой программы можно было использовать только те свойства, которые вы уже выучили на предыдущих уроках. Для третьего уровня вы должны познакомиться с функцией Round(). Она округляет до целого аргумент функции. Эта функция понадобится для выполнения задания третьего уровня сложности. Теперь- само задание 3-го уровня.

При изменении размеров формы должно происходить следующее:

    * кнопка Выход всегда остается в середине формы.
    * кнопки Вверх, Вниз, Плюс по вертикали, Минус по вертикали должны оставаться на одном уровне с кнопкой Выход (по вертикали)
    * кнопки Влево, Вправо, Плюс по горизонтали, Минус по горизонтали должны оставаться на одном уровне с кнопкой Выход (по горизонтали)
    * Промежутки между кнопками Вверх, Вниз, Влево и Вправо и краем формы должны оставаться постоянными (равными одному и тому же числу) невзирая на степень изменения размеров формы.
    * Промежутки между внутренними кнопками по горизонтали (кнопки Влево, Плюс по горизонтали, Выход, Минус по горизонтали, Вправо) должны изменяться пропорционально при изменении размеров формы по горизонтали, на одну и ту же величину. Т.е. ширина кнопок не меняется, меняются между ними промежутки и меняются одинаково.
    * Аналогичная картина должна происходить при изменении размеров формы по вертикали.

2.Программа на структуру ветвления.


  Для этого вам понадобится :

  функция Len()-она определяет длину строки. которая вводится как аргумент данной функции. Поскольку мы еще не учили свойства текстовых полей, Скажем, что вводится в текстовое поле ВСЕГДА имеет тип String, т.е. всегда является строкой, независимо от того буквы вы туда ввели или цифры. А получить строку, введенную в текстовое поле можно с помощью свойства Text. Например, если ваше текстовое поле называется txt, то длину введенной в него строки можно измерить с помощью функции Len() так:

  Len(txt.Text)

    * Расположите на форме 2 текстовых поля и 2 командные кнопки



    * сделайте проверку на то заполнены ли поля. Эта проверка должна происходить при нажатии кнопки Применить.
    * Если первое поле не заполнено, выведите окно сообщения с заглавием «Ошибка», единственной кнопкой «ОК», значком ошибки и текстом «Введите ФИО!».
    * Если второе поле не заполнено, выведите аналогичное окно сообщения, только текст сообщения должен быть «Введите возраст!»
    * Если все введено правильно, измените заголовок формы на данные поля ФИО.


Автор: Never+Dusk
Версия для печати
Обсудить на форуме