Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Этап 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;
|