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

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

4 Переопределённые методы базового класса

Переопределённые методы базового класса объявлены в секции protected.

5 Переопределение метода CreateWnd().

При работе компоненты необходимо динамически создать экземпляры классов TMarshrut и ТShar. Хотелось бы сделать это непосредственно в конструкторе класса TOsnova, но попытка запуска окончится генерированием исключения времени выполнения:

Control has no parent window (Управляющий элемент не имеет родительского окна). Решение состоит в переопределении метода CreateWnd().

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

void __fastcallTOsnova::CreateWnd()

{

if (ComponentState.Contains(csDestroying))

return; //если компонента разрушается - выход

TCustomControl::CreateWnd(); //базовый метод

Marshrut=new TMarshrut(this); //создаёмэкземпляркласса

Marshrut->Parent=this;

Marshrut->Width=this->Width;

Marshrut->Height=this->Height;

Shar=new TShar(this); //создаёмэкземпляркласса

Shar->Parent=this;

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

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

Shar->Left=(this->Width-D)/2+D-Shar->Width;

Shar->Top=this->Height/2-Shar->Height/2;

if (ComponentState.Contains(csDesigning))

return; //есликомпонентаразрабатывается - выход

else; //иначезапускаемтаймер

SetTimer(Handle, 1, FSkorosty, 0);

}

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

Сначала вызывается функция CreateWnd() базового класса, которая вернёт дескриптор окна. После этого мы можем создать экземпляры наших классов, а также функцией SetTimer() создать таймер.

6 Переопределение метода Paint()

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

void __fastcall TOsnova::Paint()

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