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

執行期貼上frame的問題

尚未結案
Sanyuan
一般會員


發表:24
回覆:32
積分:11
註冊:2002-06-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-24 19:33:17 IP:211.75.xxx.xxx 未訂閱
小弟在pagecontrol下動態新增tabsheet 並在每個tabsheet貼上做好的frame 但下面的程式碼不行耶. 請幫忙看一下 procedure TForm1.Button1Click(Sender: TObject); VAR NewTabSheet:TTabSheet; NewFrame:TFrame; begin NewTabSheet:=TTabSheet.Create(self); NewFrame:=TFrame.Create(frame21); NewTabSheet.Caption :='New'; NewFrame.Parent := NewTabSheet; NewTabSheet.PageControl :=PageControl1; end; --------- 小弟觀念不好再請教各位 NewTabSheet:=TTabSheet.Create(self); 與 application.Create(TComponent); 有何不同呢 且....TTabSheet.Create(self); 裡的self 放其他的component可以嗎 基礎問題勞煩各位解答
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-24 21:16:25 IP:61.221.xxx.xxx 未訂閱
這是因為 TFrame 的部分你寫的有問題. 你用 File -> New -> Frame 來進行一個 Frame 的設計. 這樣 Delphi 會幫你產生一個 Frame 出來, Default 的 class name 命名為 TFrame2 , 由 TFrame 繼承而來 ( 如同 Form1 繼承 TForm 而來一般), 接下來在你原來的 unit 中使用該 TFrame2 的 unit 即可. 以下為一個程式 範例:    
procedure TForm1.Button1Click(Sender: TObject);
var
  ts1: TTabSheet;
  tf: TFrame2;
begin
  ts1:= TTabSheet.Create(self);
  ts1.PageControl := PageControl1;
  ts1.Caption := 'ts1';
  tf:= TFrame2.Create(self);
  tf.Parent := ts1;
end;
TTabSheet.Create(Self) 中的 self 指的是 form, 也就是 owner. Application.Create(TComponent) 是用來建立一個 application 的. 一般的狀況下不會使用到!! 至於 TTabSheet.Create(Self) 不放 self 可以放 nil, 但該 instance 的 owner 就不是該 form 了, 而是 nil!!
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-25 07:43:55 IP:61.219.xxx.xxx 未訂閱
有關owner及parent的觀念建議你再參考一下 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20036 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20813
Sanyuan
一般會員


發表:24
回覆:32
積分:11
註冊:2002-06-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-25 11:15:18 IP:211.75.xxx.xxx 未訂閱
終於有點搞懂了 感謝兩位 這個網站真是讓我獲益良多阿!
系統時間:2024-05-05 4:35:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!