線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:998
推到 Plurk!
推到 Facebook!

請教 TLabel 改寫的問題

尚未結案
超肉腳
一般會員


發表:2
回覆:2
積分:0
註冊:2004-02-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-21 20:39:04 IP:211.72.xxx.xxx 未訂閱
請教各位大大: 偶速BCB的初學者,想要改寫 TLabel ,增加一些功能,如下列程式碼, Compiler 過程都沒有錯誤,但是為蝦米一執行就出錯了...T_T 請各位大大幫忙,感恩阿..^_^ class TMyLabel : public TLabel { private: protected: public: __fastcall TMyLabel(); __fastcall ~TMyLabel(); __published: }; class TForm1 : public TForm { __published: // IDE-managed Components void __fastcall FormCreate(TObject *Sender); private: // User declarations public: // User declarations TMyLabel *label99; __fastcall TForm1(TComponent* Owner); }; extern PACKAGE TForm1 *Form1; TForm1 *Form1; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } void __fastcall TForm1::FormCreate(TObject *Sender) { label99->Caption = "test"; // 執行到此就出現錯誤訊息 label99->Visible = true; }
kwu
中階會員


發表:10
回覆:57
積分:58
註冊:2003-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-23 09:12:45 IP:61.63.xxx.xxx 未訂閱
引言: 請教各位大大: 偶速BCB的初學者,想要改寫 TLabel ,增加一些功能,如下列程式碼, Compiler 過程都沒有錯誤,但是為蝦米一執行就出錯了...T_T 請各位大大幫忙,感恩阿..^_^
超肉腳 你好: 請參考下面的程式碼,修改紅色的部份 要貼程式碼請參考下面的連結,以方便閱讀,謝謝! http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44855
以下是 Unit1.h 的內容
class TMyLabel : public TLabel
{
private:    protected:    public:
  __fastcall TMyLabel(TComponent* Owner);
  __fastcall ~TMyLabel();
__published:
};    class TForm1 : public TForm
{
__published:        // IDE-managed Components
        void __fastcall FormCreate(TObject *Sender);
private:        // User declarations
public:                // User declarations
        TMyLabel *label99;
        __fastcall TForm1(TComponent* Owner);
};    以下是 Unit1.cpp 的內容    TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}    void __fastcall TForm1::FormCreate(TObject *Sender)
{
  label99 = new TMyLabel(this);
  label99->Parent = this;
  label99->Caption = "test"; // 執行到此就出現錯誤訊息
  label99->Visible = true;  
}    __fastcall TMyLabel::TMyLabel(TComponent* Owner) : TLabel(Owner)
{
  //加入你要做的程式碼
  //....................
}    //---------------------------------------------------------------------------
__fastcall TMyLabel::~TMyLabel()
{
  //....................
}
//---------------------------------------------------------------------------    
發表人 - kwu 於 2004/02/23 09:17:15
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-23 10:01:27 IP:61.63.xxx.xxx 未訂閱
超肉腳兄你好:               嗯,我覺得應該主要是沒有initialize的問題吧,應該是! 就是只有> > class="code"> public: __fastcall TMyLabel(TComponent* Owner); //上面為一般的寫法,硬要__fastcall TMyLabel();這樣寫也行啦! __> 有宣告就有程式碼:< class="code"> //--------------------------------------------------------------------------- __fastcall TMyLabel::TMyLabel(TComponent* Owner): TLabel(Owner) { //自已要新加的程式碼,當然可以為空 } //--------------------------------------------------------------------------- __fastcall TMyLabel::~TMyLabel() { //自已要新加的程式碼,當然可以為空 } 所以:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 //新增的兩行
 label99=new TMyLabel(Form1);      <---有new,且constructor的參數為這個label的Owner
 label99->Parent=Form1;      <---指定label的parent是Form1     //上面這兩行幾乎可說是固定的VCL視窗元件的寫法,注意Owner和Parent的概念是不同的    以下屬性就可以隨便修改了!不特別指定、又沒有在constructor的時候做調整時,就會被當成default的值,也就是Object Inspector一開始看到的值:     label99->Caption = "test"; // 執行到此就出現錯誤訊息
 label99->Visible = true;
 label99->Font->Size=18;
 label99->Left=50;
 label99->Top=50;
}
that all I know,!
超肉腳
一般會員


發表:2
回覆:2
積分:0
註冊:2004-02-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-25 14:11:07 IP:211.72.xxx.xxx 未訂閱
原來如此!!! 感謝各位大大盡心盡力嘔心瀝血功德無量的回答...
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-26 12:45:16 IP:61.63.xxx.xxx 未訂閱
引言: 原來如此!!! 感謝各位大大盡心盡力嘔心瀝血功德無量的回答... < face="Verdana, Arial, Helvetica"> 嗯,這題有點尷尬,因為是邊上班邊回覆的,所以從回覆到完成回覆差不多一個小時,結果張貼上時發現kwu兄已經有先回覆一份了,且內容還差不多,所以應該給分給kwu兄就可以了,! >!
kwu
中階會員


發表:10
回覆:57
積分:58
註冊:2003-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-26 14:25:51 IP:61.63.xxx.xxx 未訂閱
引言: 嗯,這題有點尷尬,因為是邊上班邊回覆的,所以從回覆到完成回覆差不多一個小時,結果張貼上時發現kwu兄已經有先回覆一份了,且內容還差不多,所以應該給分給kwu兄就可以了,! >! < face="Verdana, Arial, Helvetica"> m8815010你好: 雖然內容差不多,可是解說方面你的比較詳細,所以就讓發問者決定吧,我可不是為了得分才回的喔!
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-27 18:08:31 IP:61.63.xxx.xxx 未訂閱
引言: m8815010你好: 雖然內容差不多,可是解說方面你的比較詳細,所以就讓發問者決定吧,我可不是為了得分才回的喔!
!嗯,了解!知道 >!
超肉腳
一般會員


發表:2
回覆:2
積分:0
註冊:2004-02-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-28 16:24:58 IP:211.72.xxx.xxx 未訂閱
看到這真的速粉尷尬....< > 當時要給分數還找了一下能不能給多人,可惜不行...-____-!!! 所以是用隨機抽點的方式給分的...< > 不管回的內容如何,都速有熱情有奉獻有付出有功德...啦 所以感激的心都速一樣的....< > 感恩阿~...離題了...< >
系統時間:2024-11-25 23:34:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!