PDA

Просмотр полной версии : Прикрутка к панели канвы.


v4567
25.10.2008, 14:15
Здравствуйте форумчане.
Помогите прикрутить к панели канву. Я создаю свой класс, он является потомком панели и в нём объявляю класс канвы TControlCanvas.
Привожу код.
h файл

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

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------

class Tpan : public TPanel
{

__published:
private:
public:

__fastcall Tpan(TWinControl* Owner, TCanvas *Canvas);
__fastcall ~Tpan(void);
TControlCanvas *FCanvas;

};

extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

cpp файл

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

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Tpan *pan;
//int aa = 222, bb = 137, cc = 50;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------


__fastcall Tpan::Tpan(TWinControl* Owner, TCanvas *Canvas):TPanel(Owner)
{
pan = new Tpan;
pan -> Name = AnsiString("pan");
pan -> Parent = Form1;
pan -> Caption = AnsiString("");
pan -> Left = 20;
pan -> Top = 20;
pan -> Height =30;
pan -> Width = 30;
FCanvas = new TControlCanvas;
FCanvas -> Control = this;

}

__fastcall Tpan::~Tpan(void)
{

FCanvas -> Free();

}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
//Tpan *pan;
//pan = new Tpan;
//pan -> BringToFront();
//pan -> FCanvas -> Pen -> Color = (TColor)RGB(aa, bb, cc);
//pan -> FCanvas -> Rectangle(0, 0, pan -> Width, pan -> Height);
//pan -> FCanvas -> Rectangle(1, 1, pan -> Width - 1, pan -> Height - 1);

}
//---------------------------------------------------------------------------


на стороке pan = new Tpan;

выдаёт ошибку [C++ Error] Unit1.cpp(23): E2285 Could not find a match for 'Tpan::Tpan()'

Помогите пожалуйста кто знает в чём дело, за помощь заранее благодарен.