繼承下來的 Form 不會跑到 Constructor ?? |
尚未結案
|
xgray
一般會員 發表:12 回覆:14 積分:10 註冊:2002-04-14 發送簡訊給我 |
我在專案裡設計了一個 MDI Child 的 Form,上面放了一些元件,並且撰寫了 OnCreate、OnActive一些event,當做 base form 用~~目前有另外二個 MDI Child (A、B)是由這個 Form 繼承下來的(使用 File | New | Other),本來程式都跑得好好的,但突然間在 Create A or B 時卻出現了 Access Violation,查看之後發現,我的 A、B 在 Create 時,竟然不會跑到 Constructor,檢查再檢查,想了再想,實在想不出個所以然,可否請各位幫忙看看~~謝謝
class TFmdi_base : public TForm { protected: void Change_Base_Toolbar(); public: __fastcall TFmdi_base(TComponent* Owner); __fastcall ~TFmdi_base(void); }; __fastcall TFmdi_base::TFmdi_base(TComponent* Owner) : TForm(Owner) { } __fastcall TFmdi_base::~TFmdi_base(void) { } class TFa : public TFmdi_base { public: // User declarations __fastcall TFa01(TComponent* Owner); __fastcall ~TFa(void); } __fastcall TFa::TFa(TComponent* Owner) : TFmdi_base(Owner) { // create some objects.. } __fastcall TFa::~TFa(void) { // delete some objects... }我用以下的方法去 Create Form a if(Application->FindComponent("Fa")==0) Fa = new TFa(Application); else if (Fa->WindowState != wsMaximized) Fa->WindowState = wsMaximized;======================== 原來...我還是個C 白痴 |
xgray
一般會員 發表:12 回覆:14 積分:10 註冊:2002-04-14 發送簡訊給我 |
ㄟ....又是自問自答~~呵
我發現每當我的 Form A Compile 之後,BCB 會自動幫我把我的 Form 的 OldCreateOrder 設為 True,導致 OnCreate 事件會在 Constructor 之前就觸發了,所以我在 Constructor 中初始值設定、建立物件的動作...這些動作都晚了一步,所以就出錯了~~
可是我搞不懂,為什麼它會硬是要把我的 OldCreateOrder 設為 True?? ========================
原來...我還是個C 白痴
|
xgray
一般會員 發表:12 回覆:14 積分:10 註冊:2002-04-14 發送簡訊給我 |
=.= 呼~~真不知道這算不算是 bug,BCB 5 有的問題,在 BCB 6 還在 ~~ http://cc.borland.com/ccweb.exe/listing?id=20376 ========================
原來...我還是個C 白痴
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |