Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > #include "File1.cpp" в чем проблема ???


Автор: ROKI 1.2.2009, 23:28
Привет всем!!! Создал файл: "File1.cpp". В нем описал класс:

File1.cpp:
Код

Class show{
show(){};
~show(){};
void mshow(){
Form1->Memo1->Show();}}


Подключаю этот файл в Unit1.cpp:

Unit1.cpp:
Код

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

#include <vcl.h>
#pragma hdrstop

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


 При компиляции компилятор выдает ошибку: "Declaration syntax error" , указывая на TForm1 *Form1 

Автор: A5uKa 1.2.2009, 23:46
Надо думаю добавить в File1 
Цитата

#include "Unit1.cpp"

так как в нём нету Form1

Но почему пишет "Declaration syntax error" я не понимаю...

Если только в File1.cpp нету такой Form1 уже.

Автор: ROKI 2.2.2009, 00:00
вот содержимое файла File1.cpp:

File1.cpp:Код

Код

Class show{
show(){};
~show(){};
void mshow(){
Form1->Memo1->Show();}}

Автор: A5uKa 2.2.2009, 00:20
ну нету у тебя в file1   Form1

Автор: Dmi3ev 2.2.2009, 00:21
; в конце поставь

Добавлено @ 00:23
еще class с маленькой буквы пишется...

Добавлено @ 00:24
Код

class show{
show(){};
~show(){};
void mshow()
 {
  Form1->Memo1->Show();
 };
};

вот так поробуй...

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

Form1->Memo1->Show();


Автор: ROKI 2.2.2009, 00:32
Ура!!!! Зароботало !! Проблема была в ";" Спасибо всем за ответы!

Автор: Dmi3ev 2.2.2009, 00:36
Это делается следующим образом, открываешь файл *.h, который относится к этой самой форме (внизу на панели Unit1.cpp, Unit1.h, Diagram) вот ты должен открыть Unit1.h
Там объявляешь свою функцию mshow() вот так:
Код

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

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TMemo *Memo1;
        TButton *Button1;
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
        void __fastcall mshow();
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

а потом описываешь ее в Unit1.cpp
Код

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

#include <vcl.h>
#pragma hdrstop

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

void __fastcall TForm1::Button1Click(TObject *Sender)
{
this->mshow();
}
//---------------------------------------------------------------------------

и вызываешь, допустим, по нажатию кнопки... зачем делать, как ты не понимаю...
можешь функцию вынести в файл, а класс зачем создавать, точно не понимаю...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)