Добавить в цитаты Настройки чтения

Страница 7 из 14



Листинг 2.7. Код для приостановки и возобновления анимации. Вариант 2.

Текст программы опубликован в предыдущем Издании данной книги.

Для проверки реализации алгоритма запускаем программу, например, так: Ctrl+F5. В ответ Visual Basic выполняет программу и выводит форму в режиме выполнения.

На этой форме с заданной нами частотой в 500 миллисекунд (или 0,5 секунды) заголовок “Калькулятор (Calculator)” сменяется на “Калькулятор с анимацией (Calculator with animation)” (рис. 2.11), и таким образом создаётся эффект анимации.

Анимация прекращается и возобновляется поочерёдно после каждого щелчка кнопки (рис. 2.12). Так как в свойстве Text мы записали &Stop/Start Animation с символом &, то первая буква S подчёркнута, и, следовательно, эту кнопку можно нажать не только мышью, но и комбинацией клавиш Alt+s.

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

Рис. 2.12.

2.9. Методика подачи звукового сигнала

Целесообразно, чтобы в работающем приложении эффекты анимации и мультипликации сопровождались звуковыми эффектами, и самым простым из них является подача звукового сигнала. Подача звукового сигнала основана на том, что в процедуру по обработке какого-либо события в данном приложении мы записываем стандартную функцию Beep().

Если мы запишем эту функцию Beep() в процедуру для обработки события Tick таймера, то звуковой сигнал будет периодически создаваться согласно генерируемому событию Tick с заданным нами интервалом времени Interval. Если мы хотим ограничить число звуковых сигналов величиной N, то выше процедуры объявляем и задаём (инициализируем, приравнивая, например, 10) эту переменную N:

Dim N As Integer = 10

а в самой процедуре организовываем цикл по статической переменной i:

Static i As Integer

i = i + 1

If i <= N Then

Beep()

End If

В дальнейшем мы разработаем программы для подачи звукового сигнала в различные моменты анимации, например, в момент каждого удара вечно прыгающего мяча о преграду (внутри которой прыгает мяч).

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

В заключении этой главы отметим, что данная методология (парадигма) проектирования классического калькулятора для сложения двух чисел позволяет нам не только самостоятельно и быстро изучить (понять и осознать) некоторые основы Visual Basic с учётом анимации, но и одновременно (параллельно с освоением) создать открытое (для дополнения) приложение, которое мы уже можем применять в нашей индивидуальной практической и повседневной деятельности.



В следующей главе мы опишем более сложную методику создания приложения-калькулятора не на одной, а на двух (и более) формах с другими анимационными эффектами и разработаем методику передачи данных с одной формы на другую.

Глава 3. Методика разработки приложений на нескольких формах и передачи данных с одной формы на другую

3.1. Алгоритм приложения и проектирование первой формы

Будем усложнять методические примеры. Поэтому, если в предыдущей главе мы разработали методику ввода исходных данных в одну форму и вывода результатов проектирования на эту же форму, в этой главе рассмотрим пример (который может найти широкое применение на практике) и разработаем методику ввода исходных данных в одну форму, а вывода результатов проектирования на другую форму. Эта же методика может быть применена и при создании вычислительной системы для вывода результатов проектирования на большое число форм в соответствии с потребностями пользователя. Так как на практике (например, на производстве) важным является решение различных расчётных задач, то продолжим разработку методического примера расчёта, например, умножения двух чисел.

Алгоритм этого примера сформулируем так: на первой (главной) форме: в первое окно вводим первый сомножитель; во второе окно вводим второй сомножитель; щёлкаем по кнопке со знаком равенства; на появившейся второй форме (с пустыми тремя окнами) щёлкаем кнопку OK, после чего во всех трёх окнах мы увидим числа. Проверяем (контролируем) правильность вывода программой двух сомножителей в первые два окна второй формы (эти значения мы просто передадим с первой формы и подробно объясним, как это делается); анализируем результат умножения, который мы увидим в третьем окне.

Кратко, чтобы не повторяться (более подробно приведено выше и в [Литература]), опишем создание проекта для нового приложения-диалога. В VS щёлкаем значок New Project (или выбираем File, New, Project). В панели New Projects в окне Project Types выбираем тип проекта Visual Basic, Windows, в окне Templates проверяем, что выделено (по умолчанию) Windows Forms Application, в окне Name записываем имя проекта, например, Calculator2_2 (первая цифра 2 означает второй вариант калькулятора, а вторая цифра 2 – на двух формах). Щёлкаем OK. В ответ Visual Basic создаёт проект нашего приложения и выводит рабочий стол с формой Form1(аналогично форме в предыдущей главе). По разработанной выше методике осуществляем визуальное проектирование формы (рис. 3.1) и вводим элементы управления (рамку группы GroupBox, окна TextBox, кнопки Button, тексты Label) и компонент таймер (свойства таймера Timer: Enabled – True; значение Interval, например, оставляем по умолчанию, равным 100).

Рис. 3.1. Form1 в режиме выполнения.

3.2. Проектирование следующей формы

Для ввода в проект новой формы, в меню Project выбираем Add Windows Form, в панели Add New Item щёлкаем кнопку Add (или Open). В ответ Visual Basic выводит рабочий стол с новой формой Form2 и добавляет в панель Solution Explorer новый пункт Form2.vb. Аналогично, как первую, проектируем вторую форму (рис. 3.2). По этой схеме можно добавлять и большее количество форм, сколько необходимо для каждого конкретного приложения.

Рис. 3.2. Form2 в режиме выполнения.

3.3. Код программы

Дважды щёлкаем кнопку “=” на форме Form1 в режиме проектирования. Появившийся шаблон (после записи нашего кода) принимает вид следующей процедуры.

Листинг 3.1. Процедура Button1_Click с нашим кодом для первой формы.

Текст программы опубликован в предыдущем Издании данной книги.

Дважды щёлкаем кнопку OK на Form2. Перед появившимся шаблоном объявляем две открытые глобальные переменные C и D, а внутри этого шаблона записываем наш код, после чего шаблон принимает вид следующей процедуры.

Листинг 3.2. Строка и процедура Button1_Click с нашим кодом для Form2.

Текст программы опубликован в предыдущем Издании данной книги.

Таких локальных переменных, как A и B, и, соответственно, глобальных переменных C и D, в общем случае, мы записываем попарно столько, сколько на первой форме имеется окон TextBox, из которых мы будем передавать значения на другую форму. Переменные F, G можно не вводить (мы их ввели для наглядности) и заменить их на C, D. Отметим, что мы разработали несколько вариантов кода для передачи данных с одной формы на другую, но в этой книге приводим только один вариант (листинги 3.1 и 3.2), как наиболее простой. Другие варианты кода даны и подробно объяснены в наших книгах [Литература].