お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"PageControlの動的なTabSheetの生成・破棄"

この発言に対し以下のコメントが寄せられています
#00345 FuKu さん RE:PageControlの動的なTabSheetの生成・破

みなさんこんにちは。FuKuです。 nifty:FDELPHI/MES/8/5929 に関連したサンプルです。 TPageControlに動的にTTabSheetを追加し、 その上に、StringGridを乗せていくという物です。 ボタンは何回押しても良いです。(^^) TPageControlは使ったこと無いので間違ってるかもしれません。(^_^;)オイオイ 間違っている、もしくはこっちの方が効率よいよ、 という報告をお待ちしております。m(__)m -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- type TForm1 = class(TForm) Button1: TButton; Button2: TButton; PageControl1: TPageControl; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); public StrGridList: TList; {StrGridのインスタンスへの <---手動で追加 ポインタを格納しておく入れ物} end; -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- procedure TForm1.Button1Click(Sender: TObject); var j: Integer; {オブジェクトの生成・破棄はjには依存しない ようになっています} TabSheet: TTabSheet; begin for j:=0 to 9 do {別に何回でも良いです。} begin {TTabSheetはTPageControlがオブジェクトを 格納する入れ物になってくれる} TabSheet := TTabSheet.Create(Self); TabSheet.PageControl := PageControl1; PageControl1.Pages[PageControl1.PageCount-1].Caption := 'TabSheet'+IntToStr(PageControl1.PageCount); StrGridList.Add(Pointer(TStringGrid.Create(Self))); TStringGrid(StrGridList[PageControl1.PageCount-1]).Parent := PageControl1.Pages[PageControl1.PageCount-1]; end; end; procedure TForm1.Button2Click(Sender: TObject); begin {StrGridListもPageControl1も後ろから廃棄しています もしかするとStringGridは明示的に廃棄しなくても TabSheetを廃棄するだけで良いのかもしれません(自信無し(^_^;))} while (StrGridList.Count > 0) do begin TStringGrid(StrGridList[StrGridList.Count-1]).Free; StrGridList.Delete(StrGridList.Count-1); end; while (PageControl1.PageCount > 0) do PageControl1.Pages[PageControl1.PageCount-1].Free; end; procedure TForm1.FormCreate(Sender: TObject); begin StrGridList := TList.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin Button2Click(Sender); StrGridList.Free; end; -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- ------- 98/01/16 (金)11:31:42 FuKu (SGV00305) Original document by FuKu 氏 ID:(SGV00305)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum