: .
: , , ' .
:
, , .
C++ Builder , . , C++ Builder . .
C++ Builder. C++ Builder, . C++ Builder , . C++ Builder , , .
() (). , . . . , (, , Windows .)
. , , .
C++ Builder : , .
, , . , .
TOsnova :
1. .
2. .
3. , .
4. C++Builder.
. , .
, TCustomControl.. TCustomControl , Handle ( ) Canvas ( ). TCustomControl , , , .
|
|
TMarshrut Shar, . , TCustomGraphic.
. Component New Component. (Ancestor type) - TCustomControl, (Class Name) - TOsnova, , (Palette page) - Samples, , . C++ Builder .
TMarshrut Shar. h - #include.
. TMarshrut Shar , Paint():
virtual void __fastcall Paint();
Paint() . Paint() Shar:
void __fastcall TShar::Paint()
{
Canvas->Brush->Color=clGreen;
Shar->Width=(Dd)/2;
Shar->Height=(Dd)/2;
Canvas->Ellipse(0,0,Shar->Width,Shar->Height);
}
Paint() TMarshrut
//--------------------------------------------------------------------------- //------------------------------------------------ ---------------------------
//
void __fastcall TMarshrut::Paint()
{
Canvas->Brush->Color=clRed;
Marshrut->Ris_Marshrut(D/2);
Canvas->Brush->Color=clBtnFace;
Marshrut->Ris_Marshrut(d/2);
}
//--------------------------------------------------------------------------- //------------------------------------------------ ---------------------------
Ris_Marshrut(int R) ( protected Marshrut):
//--------------------------------------------------------------------------- //------------------------------------------------ ---------------------------
//
void __fastcall TMarshrut::Ris_Marshrut(int R)
{
Marshrut->Canvas->Ellipse(Marshrut->Width/2-R,Marshrut->Height/2-R,
Marshrut->Width/2+R,Marshrut->Height/2+R);
}
//--------------------------------------------------------------------------- //------------------------------------------------ ---------------------------
(, ..) , Paint() Ris_Marshrut (int R).
Marshrut.
TOsnova.
__fastcall TOsnova::TOsnova(TComponent* Owner): TCustomControl(Owner)
{
|
|
Width=200;//
Height=200;//
D=this->Width/5*4;//
d=this->Width/5*3; //
a=0;//
N=true;//
FSkorosty=20;//
}
TMarshrut Shar void __fastcall CreateWnd().
, FSkorosty. int. , , , . FSkorosty private. - ( __published)
__property int Skorosty = { read=FSkorosty, write=SetSkorosty },
.
Skorosty , SetSkorosty
//---------------------------------------------------------------------------
void __fastcall TOsnova::SetSkorosty(int Skorosty)
{
FSkorosty=Skorosty;
if (FSkorosty<5) FSkorosty=5; // FSkorosty=0,
SetTimer(Handle, 1, FSkorosty, 0);
}
4
protected.
CreateWnd().
TMarshrut Shar. TOsnova, :
Control has no parent window ( ). CreateWnd().
//---------------------------------------------------------------------------
void __fastcall TOsnova::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=(Dd)/2;
Shar->Height=(Dd)/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() .