如何讓tabsheet內的DBEdit元件輸入完後,跳入下一個tabsheet |
尚未結案
|
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 小弟的PageControl內有三個tabsheel,每個tabsheet內有好幾個DBEdit,DBGroup,DBMemo,Button,Label元件,user 需求要用enter鍵來做跳動, 但是如果第一個tabsheet跳完之後,要跳到第2個tabsheet,小弟不知道要如何做,請各位前輩指導,謝謝您可以使用PageControl1.SelectNextPage(True);就可以跳到下一個tabsheet ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 再請教前輩,小弟的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 發送簡訊給我 |
引言: 再請教前輩,小弟的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 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 兩位前輩的方式都可以,謝謝幫忙,再請教一個問題,每個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 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |