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

如何讓tabsheet內的DBEdit元件輸入完後,跳入下一個tabsheet

尚未結案
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-05 10:21:27 IP:61.220.xxx.xxx 未訂閱
小弟的PageControl內有三個tabsheel,每個tabsheet內有好幾個DBEdit,DBGroup,DBMemo,Button,Label元件,user 需求要用enter鍵來做跳動, 但是如果第一個tabsheet跳完之後,要跳到第2個tabsheet,小弟不知道要如何做,請各位前輩指導,謝謝
------
ivankuo
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-05 10:34:31 IP:211.21.xxx.xxx 未訂閱
引言: 小弟的PageControl內有三個tabsheel,每個tabsheet內有好幾個DBEdit,DBGroup,DBMemo,Button,Label元件,user 需求要用enter鍵來做跳動, 但是如果第一個tabsheet跳完之後,要跳到第2個tabsheet,小弟不知道要如何做,請各位前輩指導,謝謝
您可以使用PageControl1.SelectNextPage(True);就可以跳到下一個tabsheet ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-05 13:59:19 IP:61.220.xxx.xxx 未訂閱
再請教前輩,小弟的pageControl是runtime 時期才create的,且有3個,所以不知如何判斷某DBEdit元件是在哪個tabsheet的,此tabsheet又是在哪個pageControl??
------
ivankuo
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-05 14:14:56 IP:211.21.xxx.xxx 未訂閱
引言: 再請教前輩,小弟的pageControl是runtime 時期才create的,且有3個,所以不知如何判斷某DBEdit元件是在哪個tabsheet的,此tabsheet又是在哪個pageControl??
您可以利用Parent的屬性即可。 例:ShowMessage(TTabSheet(DBEdit1.Parent).Caption); 找tabsheet在哪個pageControl也是一樣用Parent 以您問的上個問題為例: TPageControl(TTabSheet(DBEdit1.Parent).Parent).SelectNextPage(True); ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/05 14:18:30
------
~小弟淺見,參考看看~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-05 14:16:11 IP:211.76.xxx.xxx 未訂閱
引言: 再請教前輩,小弟的pageControl是runtime 時期才create的,且有3個,所以不知如何判斷某DBEdit元件是在哪個tabsheet的,此tabsheet又是在哪個pageControl??
Hi, 請試試: TPageControl(TTabSheet(DBEdit1.Parent).PageControl).SelectNextPage(true); 或是在動態 create PageControl 時, 給定名稱, 利用 findcomponent 來取得亦可!!
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-05 16:56:43 IP:61.220.xxx.xxx 未訂閱
兩位前輩的方式都可以,謝謝幫忙,再請教一個問題,每個tabsheet內的元件有taborder的屬性,如何知道誰是最後一個,假設tabsheet內的這些元件都是runtime時期產生的,taborder的順序也因元件create的順序來排列,那我要怎知道誰是最後的一個,這樣我才能跳到下一個tabsheet,謝謝
------
ivankuo
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-05 17:09:07 IP:211.76.xxx.xxx 未訂閱
引言: 兩位前輩的方式都可以,謝謝幫忙,再請教一個問題,每個tabsheet內的元件有taborder的屬性,如何知道誰是最後一個,假設tabsheet內的這些元件都是runtime時期產生的,taborder的順序也因元件create的順序來排列,那我要怎知道誰是最後的一個,這樣我才能跳到下一個tabsheet,謝謝
hi, 你可以利用 pagecontrol 的 PageCount 和 ActivePageIndex 來判斷. PageCount 是這個 pagecontrol 的 tabsheet 的個數, ActivePageIndex 是 目前被選取的 tabsheet. 如此一來即可判斷是否為最後一個!!
  if (PageControl1.ActivePageIndex = PageControl1.PageCount -1) then
    showmessage('最後一頁');
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-05 17:21:41 IP:61.220.xxx.xxx 未訂閱
不好意思前輩,我可能說的不清楚,我要知道的是每個tabsheet內的DBEdit,DBGroup,DBMemo,Button,Label元件的taborder順序,誰是最後一個
------
ivankuo
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-06 00:02:47 IP:61.221.xxx.xxx 未訂閱
hi, 那你可以利用 GetTabOrderList 來取得某 tabsheet 上的所有元件 taborder 的 list.  然後利用其上面元件的 taborder 來判定是否為最後一個元件!! 假設要判定的元件為 DBEdit1 , 則程式如下:
var
  l: TList;
begin
  l:= TList.Create;
  TWinControl(DBEdit1.Parent).GetTabOrderList(l);
  if (DBEdit1.TabOrder = l.Count - 1) then  
  // 也可以使用 if (DBEdit1 = l.Last) then
    Showmessage('最後一個');
  l.Free;
發表人 - timhuang 於 2003/03/06 00:07:22
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-06 09:17:23 IP:61.220.xxx.xxx 未訂閱
感謝前輩,ok了,謝謝幫忙。
------
ivankuo
系統時間:2024-07-06 4:15:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!