如何將另一個Form使用類別物件? |
尚未結案
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
kswedu
一般會員 發表:9 回覆:13 積分:4 註冊:2004-04-13 發送簡訊給我 |
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 並沒有"Form1.h"這個. 我試過在form2上include unit1.h, 產生一個物件Profile abc,這樣還是不行... 不曉得哪裡出錯了?nlj859你好< >: 試了一下,好像是沒問題的< >! In Unit1.h ~~~ class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; TLabel *Label1; TLabel *Label2; TButton *Button2; void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; class Profile { private: String Name; int Age; public: void InputData(String name,int age) { Name=name; Age=age; } void OutputData(void) { Form1->Label1->Caption=Name; Form1->Label2->Caption=Age; } }; ~~~In Unit1.cpp void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->Show(); }In Unit2.cpp void __fastcall TForm2::Button1Click(TObject *Sender) { Profile* profile=new Profile; profile->InputData("我",29); profile->OutputData(); }嗯,這是我測試的,是ok的,當然要記得Unit1和Unit2互相include彼此的.h檔! 發表人 - m8815010 於 2004/04/18 17:39:07 發表人 - m8815010 於 2004/04/18 17:40:28 |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
恩,謝謝你.
我之前是把那個class放在.cpp裡,現在把他放到.h裡就沒問題了.
雖然說放到.cpp裡的話直接include .cpp就好了.. 但為何一定要放到.h裡面呢?
另外,
請問我建立一個新物件使用
Profile* profile=new Profile; profile->InputData("我",29); profile->OutputData();和使用 Profile newObj; newObj.InputData("我",29); newObj.OutputData();這兩者的差別在哪? 如果我要以傳物件的方式傳到form2裡使用,那該怎麼寫? ex:Form2有一個receivedObj(物件) 要怎麼去表示呼叫和函數宣告? 謝謝. 發表人 - nlj859 於 2004/04/18 18:16:24 發表人 - nlj859 於 2004/04/18 18:18:09 發表人 - nlj859 於 2004/04/18 19:19:16 |
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 恩,謝謝你. 我之前是把那個class放在.cpp裡,現在把他放到.h裡就沒問題了. 雖然說放到.cpp裡的話直接include .cpp就好了.. 但為何一定要放到.h裡面呢? 另外, 請問我建立一個新物件使用nlj859你好: 一個.>>這個新宣告的 class="code"> Form1->Label1->Caption=Name; Form1->Label2->Caption=Age; 另外class宣告在c 中有兩種,一為原始方式,一為指標方式,就如同你寫的那樣,兩種同為標準的寫法,只是指標方式宣告要用delete的指令來release資源,而Builder的VCL視窗元件也都限定用指標方式宣告!嗯,沒辦法說的太清楚,你可以自已查書一下先! 最後,你最後的問題應該都可以用> > >> ~~~<> > <>> <> >>> >!Profile* profile=new Profile; profile->InputData("我",29); profile->OutputData();和使用Profile newObj; newObj.InputData("我",29); newObj.OutputData();這兩者的差別在哪? 如果我要以傳物件的方式傳到form2裡使用,那該怎麼寫? ex:Form2有一個receivedObj(物件) 要怎麼去表示呼叫和函數宣告? 謝謝. |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |