能动态新增pagecontrol里面tabsheet页面,要求在页面里预先设置好的) |
尚未結案
|
linuxnc
一般會員 發表:1 回覆:0 積分:0 註冊:2004-08-08 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
unit1(TForm1)是你的主程式畫面
unit2(TForm2)是你的功能顯示畫面(由Panel1所承載的顯示元件)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,Forms,Dialogs, StdCtrls, Grids, BaseGrid, AdvGrid, Menus, ComCtrls, Unit2; type TMyTabSheet = class(TTabSheet) protected F: TForm2; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; TForm1 = class(TForm) PageControl1: TPageControl; MainMenu1: TMainMenu; miOpen: TMenuItem; miClose: TMenuItem; miAction: TMenuItem; procedure miOpenClick(Sender: TObject); procedure miCloseClick(Sender: TObject); private public end; var Form1: TForm1; TabSheetID: Integer = 0; implementation {$R *.dfm} procedure TForm1.miOpenClick(Sender: TObject); var NewSheet: TMyTabSheet; begin NewSheet := TMyTabSheet.Create(Self);//Self = TForm1 NewSheet.PageControl := PageControl1; PageControl1.ActivePage := NewSheet; end; procedure TForm1.miCloseClick(Sender: TObject); begin if Assigned(PageControl1.ActivePage) then PageControl1.ActivePage.Free; end; { TMyTabSheet } constructor TMyTabSheet.Create(AOwner: TComponent); begin inherited; Tag := TabSheetID; Caption := 'MySheet' IntToStr(TabSheetID); F := TForm2.Create(Self); F.Panel1.Parent := Self; Inc(TabSheetID); end; destructor TMyTabSheet.Destroy; begin FreeAndNil(F); inherited; end; 在TForm2上放置一個TPanel(Name=Panel1,此元件為必需的), 然後在Panel1上放置你用來顯示的元件(optional) unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, StdCtrls; type TForm2 = class(TForm) Panel1: TPanel; private public end;發表人 - jow 於 2005/11/28 18:02:53 發表人 - jow 於 2005/11/28 18:03:44 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |