Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Этап 4. Разработка прикладного окна






 

Наступил этап разработки, когда появится прикладное окно приложения с перемещающимися шарами.

Наследовав класс Form или Frame, класс Balls существенно расширит свою функциональность. Теперь можно создать прикладное окно (основную форму) и дочернее окно (дочернюю форму). Но дочернее окно будет создано потом в классе User, порождённым из класса Balls. Диаграмма классов и реализация этого этапа представлены на рис. 5.3.4.1 и в примерах 5.3.4.1 и 5.3.4.2.

 

Рис. 5.3.4.1. Диаграмма классов Balls–приложения четвёртого этапа

 

Пример 5.3.4.1. Реализация четвёртого этапа разработки Balls–приложения на языке C#.

////////////////////

// C# File Balls4Cs.cs

// Файл BallsCc4.cs полностью включает файл BallsCs3.cs, дополнив его

// данными класса Ball икласса Balls, необходимыми для рисования шаров.

// В результате наследования класса Balls из базового класса Form появилось

// прикладное окно, свойства которого установлены в конструкторе класса

// Balls. Переопределена функция OnPaint перерисовки. Функция HandlerEv,

// реагируя на событие ev из потоков, вызывает перерисовку шаров.

// Изменения файла BallsCs3.cs выделены жирным шрифтом

//

using System;

Using System.Drawing;

Using System.Windows.Forms;

using System.Threading;

 

delegate void delEv ();

class Ball // Класс обычного объекта

{

public event delEv ev;

Public int x, y;

Public int w, h;

Public int dx, dy;

...

 

public Ball (int Num, int X, int Y, int Dx, int Dy) // Конструктор

{

num= Num; life= false; run= false;

w= 100; h= 100; x= X; y= Y; dx= Dx; dy= Dy;

Start();

}

//---------------

...

 

void BallFunc () // Выполнить поток

{

int n= 0;

while ((life)) //& & (n< =2))

{

Console.Write (" Объект {0}", num.ToString ());

Console.WriteLine (" n= {0}", n.ToString ());

n++;

x += dx; y += dy;

if (x> w || x< 0) dx= -dx;

if (y> h || y< 0) dy= -dy;

if (ev! = null)

{

Console.WriteLine (" Event");

ev ();

}

Thread.Sleep (100);

}

Console.Write (" Объект {0}", num.ToString ());

Console.WriteLine (" завершён");

}

}

//-------------------------------------

class Balls: Form

{

Ball [] pBall;






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.