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()'
Помогите пожалуйста кто знает в чём дело, за помощь заранее благодарен.
Помогите прикрутить к панели канву. Я создаю свой класс, он является потомком панели и в нём объявляю класс канвы 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()'
Помогите пожалуйста кто знает в чём дело, за помощь заранее благодарен.