執行期貼上frame的問題 |
尚未結案
|
Sanyuan
一般會員 發表:24 回覆:32 積分:11 註冊:2002-06-23 發送簡訊給我 |
小弟在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 發送簡訊給我 |
這是因為 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 發送簡訊給我 |
|
Sanyuan
一般會員 發表:24 回覆:32 積分:11 註冊:2002-06-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |