Прикрутка к панели канвы.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by v4567, 25 Oct 2008.

  1. v4567

    v4567 New Member

    Joined:
    9 May 2008
    Messages:
    7
    Likes Received:
    3
    Reputations:
    0
    Здравствуйте форумчане.
    Помогите прикрутить к панели канву. Я создаю свой класс, он является потомком панели и в нём объявляю класс канвы 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()'

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