回 帖 发 新 帖 刷新版面

主题:求解一题,错误怎么改啊?

简单的只有两个窗体!
   Unit1.cpp的代码是
#pragma hdrstop

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

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->Perform(WM_CLOSE,0,0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
SendMessage(Form2->Handle,WM_CLOSE,0,0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
PostMessage(Form2->Handle,WM_CLOSE,0,0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
TMessage M;
M.Msg=WM_LBUTTONDOWN;
Form2->Broadcast(&M);
}
//---------------------------------------------------------------
的代码是:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
__fastcall TForm2::FormCreate(TObject*Sender)
{
Form2->Show();
}
//-----------------------------------------------------------------------------


void __fastcall TForm2::Panel1Click(TObject *Sender,
               TMouseButton Button,TShiftState Shift,int x,int y)
{
Panel1->Caption="Down";
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Panel2Click(TObject *Sender,
            TMouseButton Button,TShiftState Shift,int x,int y)
{
Panel2->Caption="Down";
}
//---------------------------------------------------------------------------
Unit2.cpp错误提示:
[C++ Error] Unit1.cpp(17): E2316 '_fastcall TForm1::Button1Click(TObject *)' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(22): E2316 '_fastcall TForm1::Button2Click(TObject *)' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(27): E2316 '_fastcall TForm1::Button3Click(TObject *)' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(32): E2316 '_fastcall TForm1::Button4Click(TObject *)' is not a member of 'TForm1'
请问怎么改啊?我照书上写的!

回复列表 (共6个回复)

沙发

板凳

建议另外找本书
你这本书漏掉了某些步骤。。。

3 楼

没有吧,书上也配源代码光盘的,我用那些写好了的,运行就可以,可我自己打一遍就老是运行不行,我都郁闷了好几天拉,对了,我开始装BUILDER是有一些什么Ib5,MDAC,RDEBUG的附带东西没装完,这有影响吗?

4 楼

ib5是interbase数据库,mdac是微软的数据库引擎,这些无所谓的。
你的程序错误在于,cpp文件里有函数体,而在h文件里面却找不到声明,很可能dfm文件里面也差信息。
原因多半是因为事件对应的函数,没有正常生成。

5 楼

是不是就是说只要装了C++Builder就行,它有附带的其他如JAVE什么的不装也可以是不?

6 楼

兄弟你不会是直接在上面代码编辑框里写代码的吧,先要在窗体上拖放对应的按钮控件,然后双击相应的按钮,即是对函数进入相应的消息机制映射,这样就应该不会出现上面的问题了

我来回复

您尚未登录,请登录后再回复。点此登录或注册