Методика разработки приложений для выполнения расчетов с эффектами анимации
Листинг 2.1. Наш основной код с тремя переменными.
double a, b, c;
a = Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
c = a + b;
textBox3.Text = c.ToString();
Второй вариант – с двумя переменными:
double a, b;
a = Convert.ToDouble(textBox1.Text);
b = Convert.ToDouble(textBox2.Text);
textBox3.Text = (a + b).ToString();
Третий вариант – с одной переменной:
double a;
a = Convert.ToDouble(textBox1.Text);
textBox3.Text = (a +
Convert.ToDouble(textBox2.Text)).ToString();
Четвертый вариант – без использования переменных:
textBox3.Text = (Convert.ToDouble(textBox1.Text) +
Convert.ToDouble(textBox2.Text)).ToString();
Листинг 2.2. Метод для включения таймера и задания интервала времени.
private void InitializeTimer()
{
//Включаем таймер:
timer1.Enabled = true;
//Генерируем событие Tick через каждый интервал времени,
//равный значению свойства Interval:
timer1.Interval = 500;
}
Листинг 2.3. Код для создания анимации. Вариант 1.
//Объявляем булеву переменную myText и присваиваем ей false:
bool myText = false;
private void timer1_Tick(object sender, EventArgs e)
{
//Задаем чередование "Калькулятор(Calculator)" и
//"Калькулятор с анимацией (Calculator with animation)":
if (myText == false)
{
this.Text = "Калькулятор(Calculator)";
//Изменяем значение myText на противоположное:
myText = true;
}
else
{
this.Text = "Калькулятор с анимацией " +
"(Calculator with animation)";
//Изменяем значение myText на противоположное:
myText = false;
}
}
Листинг 2.4. Код для создания анимации. Вариант 2.
//Объявляем счетчик (counter) числа интервалов
//и задаем его начальное значение:
private int counter = 0;
//Объявляем и задаем число интервалов N_Interval,
//после которого один текст сменяется другим:
private int N_Interval = 3;
private void timer1_Tick(object sender, EventArgs e)
{
//Проверяем, значение счетчика counter
// равно или еще нет числу интервалов N_Interval,
//после которого один текст сменяется другим:
if (counter >= N_Interval)
{
//Если значение счетчика накопилось и равно
//N_Interval, то выводим другой текст:
this.Text = "Калькулятор(Calculator)";
//Значение счетчика counter снова обнуляем:
counter = 0;
}
else
{
//Если значение счетчика еще не накопилось
//и не равно N_Interval,
//то выводим первый текст:
this.Text = "Калькулятор с анимацией " +
"(Calculator with animation)";
//Значение счетчика увеличиваем на 1:
counter = counter + 1;
}
}
Листинг 2.5. Код для создания анимации. Вариант 3.
//Объявляем счетчик (counter) числа интервалов
//и задаем его начальное значение:
private int counter = 0;
//Объявляем и задаем число интервалов N_Interval,
//после которого один текст сменяется другим:
private int N_Interval = 3;
//Объявляем и обнуляем счетчик i_Interval_Stop,
//который считает число интервалов
//до остановки анимации:
private int i_Interval_Stop = 0;
//Объявляем и задаем число интервалов N_Interval_Stop,
//по достижении которого анимация прекращается:
private int N_Interval_Stop = 10;
private void timer1_Tick(object sender, EventArgs e)
{
//Значение счетчика i_Interval_Stop,
//который считает число интервалов
//до остановки анимации, увеличиваем на 1:
i_Interval_Stop = i_Interval_Stop + 1;
//Проверяем число интервалов i_Interval_Stop,
//по достижении которого анимация прекращается:
if (i_Interval_Stop >= N_Interval_Stop)
timer1.Enabled = false;
//Проверяем, значение счетчика counter
// равно или еще нет числу интервалов N_Interval,
//после которого один текст сменяется другим:
if (counter >= N_Interval)
{
//Если значение счетчика накопилось и равно
//N_Interval, то выводим другой текст:
this.Text = "Калькулятор (Calculator)";
//Значение счетчика counter снова обнуляем:
counter = 0;
}
else
{
//Если значение счетчика еще не накопилось
//и не равно N_Interval,
//то выводим первый текст:
this.Text = "Калькулятор с анимацией " +
"(Calculator with animation)";
//Значение счетчика увеличиваем на 1:
counter = counter + 1;
}
}
Листинг 2.6. Строка кода, останавливающая анимацию.
timer1.Enabled = false;
Недостаток записи только этой одной строки кода заключается в том, что после остановки анимации мы не сможем запустить ее вновь.
Чтобы возобновить анимацию, мы должны в обработчик события записать другую строку кода:
Листинг 2.7. Строка кода, возобновляющая анимацию.
timer1.Enabled = true;
Листинг 2.8. Код для приостановки и возобновления анимации.
//Объявляем булеву переменную OffOn и задаем ей false:
bool OffOn = false;
private void button2_Click(object sender, EventArgs e)
{
//Задаем чередование остановки и возобновления анимации
//после каждого щелчка кнопки button2:
if (OffOn == false)
{
//Останавливаем анимацию:
timer1.Enabled = false;
//Изменяем значение OffOn на противоположное:
OffOn = true;
}
else
{
//Возобновляем анимацию:
timer1.Enabled = true;
//Изменяем значение OffOn на противоположное:
OffOn = false;
}
}
Далее в шаблоне метода организовываем цикл по переменной i:
i = i + 1;
if (i <= N_Beep)
Microsoft.VisualBasic.Interaction.Beep();