Linker Error c++ builder

0

Witam,
W programie, który ma wczytywać pliki do zakładek, pojawia mi się błąd.
Robione w C++ Builder 6. Dzięki za wszelkie podpowiedzi, bo próbuję na różne strony
i już nie wiem.

nagłówek:

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

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
#include <ComCtrls.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TMainMenu *MainMenu1;
        TMenuItem *Plik1;
        TMenuItem *OtwrzPlik1;
        TPageControl *PageControl1;
        TOpenDialog *OpenDialog1;
        TSaveDialog *SaveDialog1;
        TMenuItem *Zapisz1;

        void __fastcall OtwrzPlik1Click(TObject *Sender);
        void __fastcall DodajZakladke(TPageControl *PageControl1);
        void __fastcall Wczytaj(TPageControl *PageControl1);
private:	// User declarations
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------

class TDocument : public TTabSheet
{
public:
 
  TDocument(TPageControl *PageControl1);
  __fastcall ~TDocument();
  void LoadFromFile(String AFileName);
  TRichEdit *RichEdit;
  String FileName;

};
TDocument::TDocument(TPageControl *PageControl1): TTabSheet(PageControl1)
{
  PageControl = PageControl1;
  Caption = "Nowy dokument";
  RichEdit = new TRichEdit(this);
  RichEdit->Parent = this;
  RichEdit->Align = alClient;
  RichEdit->WordWrap = false;
  RichEdit->ScrollBars = ssBoth;
}

#endif

treść:

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

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

int i=1;
 void __fastcall TForm1::DodajZakladke(TPageControl *PageControl1)
{
  TTabSheet *Zakladka;
  Zakladka = new TTabSheet(PageControl1);
  Zakladka->PageControl = PageControl1;
  Zakladka->Caption="Dokument " +IntToStr(i++);
  TRichEdit *RichEdit;
  RichEdit = new TRichEdit(Zakladka);
  RichEdit->Parent = Zakladka;
  RichEdit->Align = alClient;
  RichEdit->ScrollBars = ssBoth;
}

void TDocument::LoadFromFile(String AFileName)
{
  FileName =  AFileName;
  RichEdit->Lines->LoadFromFile(FileName);
  Caption = ExtractFileName(FileName);
}

void __fastcall TForm1::Wczytaj(TPageControl *PageControl1)
{
    TDocument *Doc1;
    Doc1 = new TDocument(PageControl1) ;
    if (OpenDialog1->Execute())
    {
     Doc1->RichEdit->Lines->LoadFromFile(OpenDialog1->FileName);
    }
}

void __fastcall TForm1::OtwrzPlik1Click(TObject *Sender)
{
       DodajZakladke(PageControl1);
       Wczytaj(PageControl1);
}
//---------------------------------------------------------------------------

 

A błąd to:
[Linker Error] Unresolved external '__fastcall TDocument::~TDocument()' referenced from D:\EDYTOR\UNIT1.OBJ

0

Brakuje implementacji destruktora w klasie TForm1 TDocument

0

jak już mam ~TDocument() w klasie

jak masz jak nie masz, dlatego właśnie błąd dostajesz. w klasie deklarujesz destruktor

  __fastcall ~TDocument();

a potem nigdzie nie ma jego definicji.

0

Dzięki wielkie za cierpliwość :) Udało się.

1 użytkowników online, w tym zalogowanych: 0, gości: 1