關於class共用結構的問題.... |
尚未結案
|
linda_wei
一般會員 發表:44 回覆:31 積分:20 註冊:2004-04-08 發送簡訊給我 |
****我有一個class
class CMemberManage
{
private: public:
CMemberManage();
virtual ~CMemberManage(); _MemberData m_memberlist[500]; void AddMemberForm();
void UpdateMemberForm();
int Save(int type, int iID);
}; void CMemberManage::AddMemberForm()
{
Form2->Show();
}
void CMemberManage::UpdateMemberForm()
{
Form3->Show();
} int CMemberManage::Save(int type, int iID)
{
int x=-1; switch(type)
{
case 1:
if(m_memberlist[iID].memberNo==0)
{
//Save_Append(iID);
int t1=0,t2=0,t3=0,t4=0;
if(Form2->ComboBox2->ItemIndex<=31)
t1=Form2->ComboBox2->ItemIndex 1;
else
t1=Form2->ComboBox2->ItemIndex 3; if(Form2->ComboBox3->ItemIndex<=31)
t2=Form2->ComboBox3->ItemIndex 1;
else
t2=Form2->ComboBox3->ItemIndex 3; if(Form2->ComboBox4->ItemIndex<=31)
t3=Form2->ComboBox4->ItemIndex 1;
else
t3=Form2->ComboBox4->ItemIndex 3; if(Form2->ComboBox5->ItemIndex<=31)
t4=Form2->ComboBox5->ItemIndex 1;
else
t4=Form2->ComboBox5->ItemIndex 3; m_memberlist[iID].camera1_presentno=t1;
m_memberlist[iID].camera2_presentno=t2;
m_memberlist[iID].camera3_presentno=t3;
m_memberlist[iID].camera4_presentno=t4; m_memberlist[iID].memberNo=Form2->ComboBox1->ItemIndex 1;
strcpy(m_memberlist[iID].name,Form2->Edit1->Text.c_str());
x=0;
}
break;
} return x;
} ****我有Form1, Form2...............
****在form1裡
class TForm1 : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TButton *Button1;
TButton *Button2;
TButton *Button3;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender); private: // User declarations
CMemberManage A_class; public: // User declarations
__fastcall TForm1(TComponent* Owner); }; ****在form1裡按下button1
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Enabled=false;
A_class.AddMemberForm();
}
****在form1裡按下button2
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Enabled=false;
A_class.UpdateMemberForm();
} ****問題來了, 我在Form2裡新增一筆記錄在m_memberlist[4]裡...
但是當我開出Form3時, 這筆記錄卻不見了...為什麼?!
|
zcecil
初階會員 發表:0 回覆:28 積分:45 註冊:2003-06-27 發送簡訊給我 |
|
jim1247
一般會員 發表:8 回覆:20 積分:5 註冊:2003-01-30 發送簡訊給我 |
因為你把該class宣告在Form1的Private區段
private: // User declarations CMemberManage A_class;所以只有Form1能使用它 當你Form2.3就算include Form1.h,一樣不能使用 我猜你每個Form都有宣告1次吧? 這樣變成每個Form都有各自的A_class 把宣告那行放到Public後 然後在Form2.3 各自include Form1.h 因為在Form1已經宣告了, 所以Form2.3不用再宣告 在Form2.3使用A_class時, 要寫成 Form1.A_class |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |