Жарков Валерий Алексеевич - Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 4: Программирование на Visual Basic искусственного интеллекта стр 8.

Шрифт
Фон

Для ввода в проект новой формы, в меню 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 с нашим кодом для первой формы.

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

Dim A, B As Double

A = Convert.ToDouble(TextBox1.Text)

B = Convert.ToDouble(TextBox2.Text)

Dim myForm2 As New Form2

myForm2.C = A

myForm2.D = B

myForm2.Show()

End Sub

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

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

Public C, D As Double

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

Dim F, G As Double

F = C : G = D

TextBox1.Text = F.ToString

TextBox2.Text = G.ToString

TextBox3.Text = (F * G).ToString

End Sub

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

3.4. Методика разработки анимации в виде бегущей строки

На основании разработанной в предыдущей главе методики создания анимационного заголовка формы в данной главе мы разработаем методику создания бегущей строки любого текста, как в заголовке формы, так и внутри какого-либо элемента управления. Эту методику опишем на примерах двух вариантов подвижного заголовка, а именно: бегущий слева направо заголовок первой формы; бегущий справа налево заголовок следующей формы. Алгоритм бегущего слева направо заголовка первой форме формулируем так: начиная с первой буквы, поэтапно появляются буквы заголовка (по одной букве) с заданным нами в панели Properties интервалом времени Interval; после появления всех букв заголовка он исчезает, и цикл поэтапного (побуквенного) вывода заголовка повторяется. Для программной реализации этого алгоритма дважды щёлкаем значок для компонента Timer ниже первой формы в режиме проектирования. Появляется файл Form1.vb с шаблоном метода Timer1_Tick для обработки события Tick, периодически (с заданным интервалом) возбуждаемого объектом (таймером) Timer. Этот автоматически генерируемый шаблон мы уже приводили выше. Здесь мы будем давать лишь наш код, который следует записать в этот шаблон.

Листинг 3.3. Код для бегущего слева направо заголовка.

'Записываем текст заголовка:

Dim myString As String = "Калькулятор2_2 (Calculator2_2) "

'Объявляем статическую переменную, по умолчанию равную нулю:

Static i As Integer

'Справа налево появляются буквы заголовка:

Me.Text = myString.Substring(0, i)

i = i + 1

'Организовываем цикл вывода заголовка:

If i = myString.Length Then i = 1

Алгоритм бегущего справа налево заголовка следующей формы формулируем иначе (чем предыдущий): появляются все буквы заголовка; начиная с последней буквы, поэтапно исчезают буквы заголовка (по одной букве) с заданным нами в панели Properties интервалом времени Interval; после исчезновения последней буквы заголовка снова появляются все буквы заголовка и цикл поэтапного (побуквенного) удаления заголовка повторяется. Дважды щёлкаем значок для компонента Timer ниже формы в режиме проектирования. Появляется файл Form1.vb с шаблоном, в который записываем код:

Листинг 3.4. Код для бегущего справа налево заголовка.

'Записываем текст заголовка:

Dim myString As String = _

"Калькулятор2_2 (Calculator2_2). Форма2 (Form2) "

'Статическая переменная, равная числу знаков заголовка:

Static i As Integer = myString.Length()

'Слева направо удаляются буквы заголовка:

Me.Text = myString.Substring(0, i)

i = i 1

'Организовываем цикл удаления букв заголовка:

If i = -1 Then i = myString.Length()

Аналогично можно запрограммировать бегущую строку внутри какого-либо элемента управления (или нескольких элементов управления), если на листингах 3.3 и 3.4 в строке (Me.Text = myString.Substring(0, i) после оператора (Me.) мы допишем имя этого элемента управления (свойство Name), например, (Button1.) для кнопки.

3.5. Выполнение расчётов

Проверяем в действии созданное нами приложение (проект) в виде программы-калькулятора, например, для вычисления произведения двух чисел:

1. Запускаем программу: Build, Build Selection; Debug, Start Without Debugging.

В ответ Visual Basic выполняет программу и выводит первую форму с пустыми окнами и мигающим курсором в первом окне. Мы видим также бегущий слева направо заголовок формы.

2. В первое окно вводим первый сомножитель (рис. 3.1).

3. Щёлкаем во втором окне, вводим второй сомножитель и щёлкаем кнопку =.

Появляется вторая форма (рис. 3.2) с пустыми окнами. Мы видим также бегущий справа налево заголовок формы.

4. На второй форме щёлкаем кнопку OK.

В ответ Visual Basic на второй форме показывает (рис. 3.2):

в первом окне значение первого сомножителя;

во втором окне значение второго сомножителя;

в третьем окне результат умножения двух чисел.

После окончания расчётов щёлкаем значок x (Close). В ответ Visual Basic закрывает вторую форму, но оставляет открытой первую форму. Мы можем ввести другие значения в окна первой форме и аналогично получить результат умножения других чисел.

Однако после окончания расчётов мы можем и не закрывать вторую форму и далее выполнять расчёты следующим образом.

1. Щёлкаем в окнах первой формы (активизируем её), вводим два (или одно) других числа (например, результат предыдущего расчёта) и щёлкаем кнопку =.

Появляется второй вид второй формы с пустыми окнами.

2. Щёлкаем OK и на этой форме получаем результат умножения уже других чисел.

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

После окончания расчётов последовательно щёлкаем значок x (Close) на каждой форме, и формы также последовательно (по одной) закрываются.

Таким образом, мы получили решение задач согласно разработанным выше алгоритмам с учётом анимации.

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

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

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке