Студопедия

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

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

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






  • Этап 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.