Курсовая работа: Построение компоненты в Builder C++

Также нам понадобится создать класс TMarshrut для рисования маршрута движения шарика и класс ТShar, рисующий сам шарик. Оба этих класса должны лишь уметь рисовать себя, поэтому в качестве базового класса выбираем TCustomGraphic.

Теперь можно приступать к созданию компоненты. Открываем вкладку Component и выбираем NewComponent. В появившемся окне выбираем базовый класс (Ancestortype) - TCustomControl, вводим имя своего класса (ClassName) -TOsnova, выбираем вкладку палитры компонентов, на которую компонента будет установлена (Palettepage) -Samples, и путь, где будут хранится файлы компоненты. После щелчка на кнопке ОК C++ Builder создаст для нашей компоненты новый модуль и сохранит его в указанном месте.

Аналогичным образом создаём два класса TMarshrut и ТShar. Для совместной работы трёх классов необходимо подключить h-файлы с помощью директивы #include.

Теперь рассмотрим созданные нами классы. TMarshrut и ТShar должны уметь рисовать себя, поэтому в них достаточно переопределить виртуальный метод базового класса Paint():

virtualvoid __fastcallPaint();

Переопределенный метод Paint() этих классов должен включать в себя код их рисования. Ниже показан исходный код метода Paint() класса ТShar:

void __fastcall TShar::Paint()

{

Canvas->Brush->Color=clGreen;

Shar->Width=(D-d)/2;

Shar->Height=(D-d)/2;

Canvas->Ellipse(0,0,Shar->Width,Shar->Height);

}

Исходный код метода Paint() класса TMarshrut

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

// рисуем две окружности заданного цвета

void __fastcallTMarshrut::Paint()

{

Canvas->Brush->Color=clRed;

Marshrut->Ris_Marshrut(D/2);

Canvas->Brush->Color=clBtnFace;

Marshrut->Ris_Marshrut(d/2);

}

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

Реализация функции Ris_Marshrut(intR) (прототип находится в секции protected класса ТMarshrut):

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

//рисуем окружность заданного радиуса

void __fastcall TMarshrut::Ris_Marshrut(int R)

{

К-во Просмотров: 514
Бесплатно скачать Курсовая работа: Построение компоненты в Builder C++