全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:984
推到 Plurk!
推到 Facebook!

PageControl為題

尚未結案
joon
一般會員


發表:35
回覆:41
積分:14
註冊:2004-01-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-25 10:38:03 IP:218.72.xxx.xxx 未訂閱
用PageControl,建有4個TabSheet。希望每到一個TabSheet時,運行一段程式。我使用pagecntrol的activepage,可是在選到TabSheet1運行其上的button時,也運行這段程式。怎樣就只在選中Tabsheet后執行?謝謝
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-25 11:33:56 IP:218.15.xxx.xxx 未訂閱
引言: 用PageControl,建有4個TabSheet。希望每到一個TabSheet時,運行一段程式。我使用pagecntrol的activepage,可是在選到TabSheet1運行其上的button時,也運行這段程式。怎樣就只在選中Tabsheet后執行?謝謝
小弟试了不会啊
procedure TForm1.Button3Click(Sender: TObject);
begin
  showmessage('this is the button3 on TabSheet1');
end;    procedure TForm1.Button4Click(Sender: TObject);
begin
  showmessage('this is the button4 on TabSheet2');
end;    procedure TForm1.Button5Click(Sender: TObject);
begin
  showmessage('this is the button5 on TabSheet3');
end;    procedure TForm1.PageControl1Change(Sender: TObject);
begin
  if PageControl1.ActivePage=TabSheet1 then
    showmessage('the ActivePage is the TabSheet1');
  if PageControl1.ActivePage=TabSheet2 then
    showmessage('the ActivePage is the TabSheet2');
  if PageControl1.ActivePage=TabSheet3 then
    showmessage('the ActivePage is the TabSheet3');    end;
对照试试看
     <>~~~静心养德~~~ 

        
markov
中階會員


發表:55
回覆:135
積分:53
註冊:2003-12-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-25 11:41:46 IP:211.21.xxx.xxx 未訂閱
提供一個想法, 在pagecontrol的form的formcreate中設一個flag, 並預設為flag=true; 當按下button時,flag=false; 當執行activepage時if(flag)才do something 當離開acitvepage時flag=true; 試試看也許問題就解了 雖然笨了點的方法
totony
一般會員


發表:3
回覆:20
積分:14
註冊:2004-05-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-25 15:25:36 IP:203.73.xxx.xxx 未訂閱
我在BCB上試也不會,跟deity用一樣的方法~不曉得是不是我們誤會妳的問題呢? 我是開個新專案,在上面新增一個PageControl1物件,然後再新增四個TabSheet(1~4),然後在每個TabSheet裡面都放一個Button(1~4). 這樣試的結果,不會發生如您所說的 「選到TabSheet1運行其上的button時,也運行這段程式」 在按下任何一個Button時,只會秀出按到的Button名稱,不會秀出TabSheet的名稱,這表示只有Button Click事件被執行而已。    
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ShowMessage("Button1");
}    void __fastcall TForm1::Button2Click(TObject *Sender)
{
    ShowMessage("Button2");
}    void __fastcall TForm1::Button3Click(TObject *Sender)
{
    ShowMessage("Button3");    
}    void __fastcall TForm1::Button4Click(TObject *Sender)
{
    ShowMessage("Button4");
}    void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
    //判斷目前選到的TabSheet
    //假設這就是您所謂的「每到一個TabSheet時,運行一段程式」
    //您按Button時這段程式碼應該是不會執行到才是
    if(PageControl1->ActivePage==TabSheet1)
        ShowMessage("TabSheet1");
    if(PageControl1->ActivePage==TabSheet2)
        ShowMessage("TabSheet2");
    if(PageControl1->ActivePage==TabSheet3)
        ShowMessage("TabSheet3");
    if(PageControl1->ActivePage==TabSheet4)
        ShowMessage("TabSheet4");
}
joon
一般會員


發表:35
回覆:41
積分:14
註冊:2004-01-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-25 15:45:20 IP:218.72.xxx.xxx 未訂閱
呵呵~對不起對不起,是我搞錯了,謝謝deity,markov,totony~
系統時間:2024-05-12 3:35:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!