Студопедия

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

КАТЕГОРИИ:

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






Этап 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;


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.015 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал