YourLib.net
Твоя библиотека
Главная arrow Информатика (Под общ. ред. А.Н. Данчула) arrow 4.9.7. Событийные процедуры и связи между ними
4.9.7. Событийные процедуры и связи между ними

4.9.7. Событийные процедуры и связи между ними

   Идея разработки программы очень простая: уже известно, что существует массив со значениями введенных коэффициентов (это действие распространяется на все приложение независимо от того, в какой момент и в какой форме его использовать). Поэтому надо «вытаскивать» те данные, которые нужны, и включать режим их обработки. С алгоритмом и программой обработки мы уже знакомы по первому приведенному примеру, следовательно, надо позаботиться о так называемых локальных и общих переменных, которые будем использовать в данной форме. Начнем с того, что для второй формы, имя которой REZ, объявим имена и типы новых переменных, как это показано на рис. 4.44.
   Напомним, что работа с первой формой заканчивается командой загрузки второй формы, поэтому начинаем с события Form_Load (), которое выполняет начальные установки. В нашем случае надо позаботиться о скрытии окон вывода результатов и отображении в окне списка введенных вариантов данных, которые должны появиться в окне ListBox. Этот объект имеет

Рис. 4.44. Объявление новых переменных для работы со второй формой 

Рис. 4.44. Объявление новых переменных для работы со второй формой

свойство автоматически накапливать индексы (порядковые номера строк). Для изменения номера индекса целесообразно воспользоваться методом Addltem (добавить значение), который добавляет в список свой аргумент в качестве нового элемента. При составлении программного кода надо помнить о синтаксисе, заключающемся в следующем:
   <Имя Поля Списка> . АddItem(Новый элемент)
   Удалить элемент из списка можно с помощью метода RemoveItem, только в этом методе в качестве аргумента указывается целочисленный номер удаляемого из списка элемента (но надо помнить, что отсчет элементов в списке начинается с нуля — 0).
   Для нашего примера в качестве начальной строки в списке создадим текстовое сообщение «ВВЕДЕННЫЕ КОЭФФИЦИЕНТЫ», а затем поместим построчно в список номер шага (варианта) и обозначения коэффициентов с их численными значениями. Так как массив данных содержит значения коэффициентов в числовой форме, а все окна экрана работают только с символьным типом данных, необходимо преобразовать эти значения, используя встроенную функцию Format$. Для вывода в окно списка текстовых сообщений, например а=, Ь= и т. д., сформируем выводимый текст, используя функцию Format (это можно сделать и другим способом). Перенос всех введенных вариантов в поле списка осуществляется с помощью конструкции оператора For..., запись которого подчиняется следующему синтаксису:
   For <имя переменной = начальное значение> То <конечное значение>
   [ Step приращение ]
   [[ оператор ]... ]
   Next [ переменная ]
   Использование этой конструкции позволяет записать в цикле столько же строк списка, сколько их было задано в первой форме.

Рис. 4.45. Формирование списка при загрузке второй формы

Рис. 4.45. Формирование списка при загрузке второй формы

   На рис. 4.45 показано окно редактора программ для оформления событийной процедуры загрузки начального состояния второй формы.
   Чтобы у пользователя не было сомнений в завершении списка введенных им вариантов, в конце формируется еще одна запись со словом «End».
   Написав такую короткую программу, можно запустить все приложение и посмотреть первые результаты. На рис. 4.46 показано окно, содержащее только список введенных вариантов. Следует отметить, что объект типа ListBox, так же как и Label, выбирается для отображения результатов с той целью, чтобы исключить возможность внесения изменений на экране. Это можно сделать, только изменяя их характеристики с помощью программных кодов.
   Поле списка (ListBox) реагирует на событие event — установка курсора или щелчок мыши на выбранной строке, с которым можно

Рис. 4.46.  Фрагмент второй формы со списком введенных данных  

Рис. 4.46.  Фрагмент второй формы со списком введенных данных 

связать событийную процедуру. Воспользовавшись этим, можно выбрать одно или несколько событий и составить для них отдельные событийные процедуры, например реакция на нажатие клавиши, двойной или одинарный щелчок мыши и т. д. Наиболее часто используется мышь, поэтому составим событийную процедуру щелчка мыши (Click). Суть разрабатываемой программы заключается втом, чтобы отметить строку с нужным вариантом данных, затем подключить программу вычисления корней квадратного уравнения и вывести полученные результаты на экран.
   Воспользуемся ранее разработанной программой первого примера и скопируем блок программных кодов процедуры Solve Click в событийную процедуру List1_Click. Чтобы новое приложение могло работать, придется сделать кое-какие замены и вставки. Во-первых, надо помнить, что работать придется с массивом данных, который переписан в поле списка. Во-вто- рых, в новом приложении некоторые переменные были объявлены как массив данных, и, значит, придется использовать другие имена. В-третьих, нам придется создать условия для выбора решения о просмотре новых вариантов, о повторении уже выполненных расчетов, о вводе новых данных и, наконец, о целесообразности завершения работы с приложением. По этой причине придется несколько видоизменить программу анализа возможных ответов и вывода результатов вычислений. На помещенных ниже рисунках, где изображены окна редактора программ, можно просмотреть программные коды, которые придется составить, чтобы выполнить поставленные условия.
   Начнем по порядку. Выберем из списка объектов процедуру List1_Click, куда уже скопировали готовый модуль вычисления корней квадратного уравнения. Добавим в модуль локальную переменную n1, которая предназначена для хранения номера варианта текстового сообщения после выполнения анализа, т. е. заменим п на n1. Присвоим переменной k1 порядковый номер (Index — индекс) отмеченной строки в поле списка. Чтобы возвратить переменную индекса строки, используется характеристика Listindex в сочетании с именем объекта, который рассматривается в данный момент. Можно эту характеристику использовать и с другими объектами, например TextBox, но в этом случае надо иметь в виду, что в приложении участвует несколько текстовых объектов и все они имеют одно и то же имя, а различаются только порядковым номером. Для нашего примера первая часть событийной процедуры показана на рис. 4.47.

Рис. 4.47. Начало событийной процедуры выбора строки из поля списка 

Рис. 4.47. Начало событийной процедуры выбора строки из поля списка

   В представленном окне редактора программ блок анализа введенных коэффициентов и значения детерминанта остался без изменений с точки зрения построения программы, хотя использованы новые обозначения используемых переменных.
   Следующий блок программных кодов, выполняющий вычисления действительных корней квадратного уравнения и осуществляющий вывод результатов на экран, по своей структуре полностью совпадает с рассмотренным ранее блоком.
   Закончить событийную процедуру следует дополнениями о выборе дальнейших шагов пользователя после того, как он получит ответ по выбранному варианту. Вид окна с отображением результатов и запросом для дальнейшего выбора приведен на рис. 4.48.
   Коды, завершающие указанную событийную процедуру, показаны на рис. 4.49.
   Как видно из этого рисунка, в составленной программе новшеством является только использование встроенной функции MsgBox, где в первом случае для придания большей выразительности

Рис. 4.48. Отображение результатов решения уравнения с выбранным вариантом 

Рис. 4.48. Отображение результатов решения уравнения с выбранным вариантом

всплывающему окну на нем расположена пиктограмма , а выбор принимаемого решения обеспечивается кнопками «Повторить» и «Отмена».
   Такое представление запроса достигается путем использования кода 5+32, где цифра «пять» обозначает перечень указанных кнопок, при этом возвращаемый код 5 соответствует нажатию на кнопку «Повторить», а цифра 32 соответствует пиктограмме. Для принятия решения о завершении работы с приложением в функции MsgBox использовано сочетание кодов 4+16, что соответствует появлению на всплывающем окне кнопок «Да» и «Нет». При нажатии на кнопку «Да» возвращаемый код переменной k1 составит число 6, поэтому произойдет операция закрытия формы и выгрузки приложения из оперативной памяти машины.

Рис. 4.49. Завершение работы с окном приложения и выбор дальнейших действий. 

Рис. 4.49. Завершение работы с окном приложения и выбор дальнейших действий.

Рис. 4.50. Сообщение о выборе решения, выводимое перед закрытием приложения 

Рис. 4.50. Сообщение о выборе решения, выводимое перед закрытием приложения

   На рис. 4.50 представлен вариант, когда пользователь отказался от просмотра списка введенных коэффициентов и теперь должен принять решение о дальнейшем выполнении приложения.

Выводы

   Прикладное программное обеспечение может быть реализовано с использованием различных классов языков программирования, которые в своем развитии прошли путь от машиннозависимых до процессно- и объектно-ориентированных.
   При разработке программного обеспечения выделяют следующие фазы: анализ, проектирование, реализация.
   В программе можно выделить три базисные составные части: данные, процессы, интерфейс.
   Исходная информация, требующаяся для решения поставленных задач, должна быть представлена в виде переменных и констант и структурирована в соответствии с имеющимися типами данных.
   Программа на языке визуального программирования, в частности Visual Basic, состоит из набора диалоговых процессов, позволяющих пользователю посредством интерфейса общаться с ПК.
   Разработка интерфейсов связана с использованием визуальных объектов, указанием их свойств и методов, а также событий, позволяющих последовательно реализовывать событийные процедуры, из которых состоит программа.
   Большие возможности программирования связаны с использованием широкого набора средств языка: панели инстру ментов, объектов, процедур, операторов, методов, событий, встроенных функций, различных модулей, позволяющих отображать информацию в символьном и графическом видах.
   Примеры разработки программ наглядно демонстрируют возможности объектно-ориентированного программирования.

Контрольные вопросы

   1.  Как развивались и классифицируются языки программирования?
   2.  Какие методы и модели используются при разработке программных средств?
   3.  Что такое объектно-ориентированный язык программирования и в чем заключается методология его использования?
   4.  Перечислите основные компоненты графической оболочки Visual Basic.
   5.  Что входит в алфавит ЯП Visual Basic и какие типы данных в нем используются?
   6.  Назовите основные компоненты ЯП Visual Basic и укажите зоны действия переменных.
   7.  Что такое управляющие элементы и каковы их характеристики?
   8.  Каково назначение и как используются событийные процедуры?
   9.  В чем заключается анализ и проектирование программы?
   10.  Что такое визуальное проектирование интерфейса пользователя?
   11.  Как осуществляется написание кодов событийных процедур и управление объектами?
   12.  Опишите оператор условия и приведите примеры его применения.
   13.  Для чего используются логические функции?
   14.  Как записывают и для чего используют оператор выбора по ключу?
   15.  Как осуществляется форматирование выводимой текстовой информации?
   16.  В каких случаях и каким оператором формируется окно сообщения?
   17.  Какие существуют и для чего применяются операторы цикла?
   18.  Зачем нужно сохранение проекта и создание исполняемого файла, как осуществляются данные операции?
   19.  Перечислите основные особенности реализации многооконного проекта.
   20.  Как осуществляется создание и редактирование элементов списка?

Литература

   1.  Вендров А.М. Проектирование программного обеспечения экономических информационных систем. М.: Финансы и статистика, 2001. С. 59-120.
   2.  Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учеб. пособие / Под ред. С.В. Назарова. М: Финансы и статистика, 2001. С. 11-86, 109-114, 121-170, 180-202.
   3.  Ананьев А.И., Федоров А.Ф. Самоучитель Visual Basic 6.0. СПб.: БХВ — Санкт-Петербург, 2000. С. 19—44, 94—130, 151—247.
   4.  Маккелви М., ВебДж., Магтинсон Р., Ризельман Б. Visual Basic 5 / Пер. с англ. СПб.: BHV — Санкт-Петербург, 1998. С. 8—83, 145—148, 159-167,201-278, 409-412.

 
< Пред.   След. >