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

請問如何動態增減PageControl的TabSheet

尚未結案
Flame
一般會員


發表:15
回覆:16
積分:6
註冊:2003-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-29 23:33:59 IP:211.74.xxx.xxx 未訂閱
動態增加我是這樣寫的    //使用元件PageControl1,btnAdd(增加按鈕),btnDel(刪除按鈕)
const int MAXTABS=50;
TTabSheet* pts[MAXTABS];
//----------------------
void __fastcall TForm1::btnAddClick(TObject *Sender)
{
int i=PageControl1->PageCount 1;
pts[i] = new TTabSheet(this);
pts[i]->PageControl = PageControl1;
pts[i]->Name = AnsiString("pts")   IntToStr(i);
pts[i]->Caption = AnsiString("pts")   IntToStr(i);
}
方法似乎不是很好,動態刪除與FormDestroy的delete (刪除全部new產生的 元件)我就不知道該如何處理了,煩請幫忙,謝謝。
------
~人世變成了一場夢,夢境成為真實~
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-30 00:09:43 IP:140.135.xxx.xxx 未訂閱
您好: 下面的code不知是否符合您的需求
//一次刪除一個
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   int i = PageControl1->PageCount;
   if (pts[i]!=NULL)
   {
      delete pts[i];
      pts[i]=NULL;
   }
}
//---------------------------------------------------------------------------
//一次全部刪除
void __fastcall TForm1::Button3Click(TObject *Sender)
{
   for (int i=PageControl1->PageCount; i>=0; i--)
   {
      if (pts[i]!=NULL)
      {
         delete pts[i];
         pts[i]=NULL;
      }
   }
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-01 16:21:23 IP:203.73.xxx.xxx 未訂閱
引言: 動態增加我是這樣寫的 //使用元件PageControl1,btnAdd(增加按鈕),btnDel(刪除按鈕)
const int MAXTABS=50;
TTabSheet* pts[MAXTABS];
//----------------------
void __fastcall TForm1::btnAddClick(TObject *Sender)
{
int i=PageControl1->PageCount+1;
pts[i] = new TTabSheet(this);
pts[i]->PageControl = PageControl1;
pts[i]->Name = AnsiString("pts") + IntToStr(i);
pts[i]->Caption = AnsiString("pts") + IntToStr(i);
}
方法似乎不是很好,動態刪除與FormDestroy的delete (刪除全部new產生的 元件)我就不知道該如何處理了,煩請幫忙,謝謝。
Flame 你好:
(1)請參考以下的範例程式碼
// >
   >>>>>>>Name="TAB">Count);
   tab->Caption="TAB"+IntToStr(list->Count);
   list->Add((void*)tab);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   if(list->Count>0)
   {
      TTabSheet *tab=(TTabSheet*)list->Items[list->Count-1];
      delete tab;
      list->Delete(list->Count-1);
   }
}
(2)請再依照自己的需求,自行修改
    < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
Flame
一般會員


發表:15
回覆:16
積分:6
註冊:2003-05-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-02 22:56:08 IP:203.67.xxx.xxx 未訂閱
感謝各位幫忙,我正在努力試
------
~人世變成了一場夢,夢境成為真實~
系統時間:2024-05-15 3:38:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!