Te nagłówki domyślnie dodał c++ Builder, gdy nowy moduł dodałem.
Zrezygnowałem, z dodawania tej klasy w oddzielnym module i o dziwo program zadziałał, ale mam problem z użyciem funkcji LoadFromFile, próbuje jej użyć w niżej pokazany sposób, ale kompilator wykrywa błąd, nie wiem co robię nie tak.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDocument::LoadFromFile(OpenDialog1->FileName) ;
}
[C++ Error] Unit1.cpp(85): E2283 Use . or -> to call 'TDocument::LoadFromFile(AnsiString)'
Nagłówek:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <Buttons.hpp>
#include <Menus.hpp>
#include <ActnList.hpp>
#include <ImgList.hpp>
#include <ToolWin.hpp>
#include <Dialogs.hpp>
#include <String>
#include "Unit2.h"
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPageControl *PageControl1;
TMainMenu *MainMenu1;
TMenuItem *Plik1;
TMenuItem *Z1;
TMenuItem *Wczytaj1;
TMenuItem *Zamknij1;
TMenuItem *OProgramie1;
TMenuItem *Nowakarta1;
TActionList *ActionList1;
TToolBar *ToolBar1;
TImageList *ImageList1;
TToolButton *ToolButton1;
TToolButton *ToolButton2;
TMenuItem *Zamknijkart1;
TButton *Button1;
TOpenDialog *OpenDialog1;
void __fastcall DodajZakladke(TPageControl *PageControl1);
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall ToolButton1Click(TObject *Sender);
void __fastcall ToolButton2Click(TObject *Sender);
void __fastcall OProgramie1Click(TObject *Sender);
void __fastcall Zamknijkart1Click(TObject *Sender);
void __fastcall Nowakarta1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
class TDocument : public TTabSheet
{
public:
TDocument(TPageControl *APageControl);
__fastcall ~TDocument();
void LoadFromFile(AnsiString AFileName);
TRichEdit *RichEdit;
String FileName;
};
TDocument::TDocument(TPageControl *APageControl): TTabSheet(APageControl)
{
PageControl = APageControl;
Caption = "Nowy dokument";
RichEdit = new TRichEdit(this);
RichEdit->Parent = this;
RichEdit->Align = alClient;
RichEdit->WordWrap = false;
RichEdit->ScrollBars = ssBoth;
}
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
extern PACKAGE TDocument *Document;
//---------------------------------------------------------------------------
#endif
Implementacja:
//---------------------------------------------------------------------------
#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 __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
DodajZakladke(PageControl1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
DodajZakladke(PageControl1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton2Click(TObject *Sender)
{
delete(PageControl1->ActivePage);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OProgramie1Click(TObject *Sender)
{
AboutBox->ShowModal();
if (AboutBox->ModalResult==mrOk)
{
AboutBox->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Zamknijkart1Click(TObject *Sender)
{
delete(PageControl1->ActivePage);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Nowakarta1Click(TObject *Sender)
{
DodajZakladke(PageControl1);
}
//---------------------------------------------------------------------------
void TDocument::LoadFromFile(AnsiString AFileName)
{
FileName = AFileName;
RichEdit->Lines->LoadFromFile(FileName);
Caption = ExtractFileName(FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TDocument::LoadFromFile(OpenDialog1->FileName) ;
}
//---------------------------------------------------------------------------