全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1128
推到 Plurk!
推到 Facebook!

元件繼承的範例或說明

尚未結案
peterjudy
一般會員


發表:4
回覆:2
積分:1
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-06 11:08:15 IP:210.192.xxx.xxx 未訂閱
請問各位大大: 那裡可以找到元件繼承的範例和改寫元件的說明資料....例如DBGRID設定COLOR的元件...如何繼承MOTHED和屬性及設定新屬性和MOTHOD
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-07 02:31:45 IP:203.204.xxx.xxx 未訂閱
peterjudy 你好    在本站資源中心,有各式各樣的元件(大部份都有含SourceCode)就是最好的範例啦!當然網路上還有為數眾多的網站有提供含SourceCode的免費元件,都可拿來學習,同樣的本站資源中心也有很多的好站連連。     至於撰寫元件的說明,一般坊間的書籍對於這個部份的說明倒是不多,或只是簡單帶過(也許有,但我並沒看過,因為也很久沒到書店逛了),反而是Borland原版的書(Delphi 5軟體隨附的)資料庫應用程式設計手冊中第三部份寫的還滿完整的(約160頁)。    _______________________________________ 深藍的魚,祝您好運..........連連
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-08 21:45:25 IP:202.39.xxx.xxx 未訂閱
1.繼承元件的方式很簡單, 比方說要繼承 TEdit, 則
type
  TMyEdit = class(TEdit)
  end;
這樣 TMyEdit 就繼承自 TEdit, TEdit 有什麼 property/method, TMyEdit 也有 2.繼承 method 部份, 由 1. 來看就己繼承了, 應該說是改寫 TEdit 的 method, 例改寫 TEdit 的 constructor
type
  TMyEdit = class(TEdit)
  public // 宣告部份(注意 override 關鍵字)
    constructor Create(AOwner: TComponent); override;
  end;    // ...    // 實作部份
constructor TMyEdit.Create(AOwner: TComponent);
begin
  inherited; // 表 TEdit 父代的 constructor 這部份也要執行      // 這裡做要 override 的事
  Color := clRed; // 比方說更改的顏色
end;
3.新增屬性, 比方說要為 TMyEdit 加一個 Title 的屬性
  TMyEdit = class(TEdit)
    FTitle: string;
  public
    property Title: read FTitle write FTitle; // 注意 property 關鍵字, 表示它是 TMyEdit 的屬性, 這裡我們是宣告在 public 區段, 若要在 Title 屬性在 Object Inspector 也看得到的話, 要宣告在 published 區段
  end;
4.新增 method, 方法就是在 private / public / published / protected 等區段宣告一 procedure 或 function 即可, 比方說 TMyEdit 在 public 區段要新增一 Test 的 method
  TMyEdit = class(TEdit)
  public
    procedure Test; // 宣告部份
  end;    // ...    procedure TMyEdit.Test;
begin
  // 這裡寫 Test 這個 method 要做哪些事
end;
以上只是簡單描述而已, 有錯誤的地方請大家指正. 以下兩篇有比較詳細的說明, 可以參考看看: http://delphi.about.com/library/bluc/text/uc080701a.htm http://delphi.about.com/library/bluc/text/uc083101a.htm -- 向 KTop 的弟兄們致敬!
系統時間:2024-05-17 15:51:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!