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

再請教有關TabOrder的問題

答題得分者是:timhuang
ivankuo
中階會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-06 18:32:39 IP:61.220.xxx.xxx 未訂閱
小弟遇到一個問題,我的pageControl有好幾個tabsheet,我的元件都是runtime時期才產生的,假設我的tabsheet 1 內擁有taborder的屬性的元件有10個,但是我在判斷 var L:TList; TabSheet1.gettaborderlist(L); L.count 時卻有13個, 我找不出哪裡有另外多的3個 此問題只發生在第一個tabsheel 1 , 其他的tabsheet 不會發生 ,請問有何方式可以查出那多的3個擁有taborder屬性的元件ㄇ??
------
ivankuo
timhuang
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-06 21:02:11 IP:61.221.xxx.xxx 未訂閱
hi, 你可以利用 TComponent(L.Item[i]).Name 來取得該 component 的名稱. 但先決條件是你動態建立的元件必須給定名稱, 如此一來就可以知道多出來的 三個為何!!
procedure TForm1.Button2Click(Sender: TObject);
var
  l: TList;
  i: integer;
begin
  l:= TList.Create ;
  tabsheet1.GetTabOrderList(l);
  for i:= 0 to l.Count -1 do
    showmessage(TComponent(l.Items[i]).Name);
  l.Free;
end;
ivankuo
中階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-07 09:26:24 IP:61.220.xxx.xxx 未訂閱
我竟然找出三個沒有物件名稱,真奇怪。
------
ivankuo
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-07 09:42:57 IP:61.219.xxx.xxx 未訂閱
引言: 我竟然找出三個沒有物件名稱,真奇怪。
改成show classname看看到底是什麼東西 showmessage(TComponent(l.Items[i]).ClassName);
ivankuo
中階會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-07 09:49:52 IP:61.220.xxx.xxx 未訂閱
哇```classname是TGroupButton 有這個class ㄇ 我並沒有用到這類的元件``真奇怪
------
ivankuo
timhuang
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-07 09:58:55 IP:210.58.xxx.xxx 未訂閱
引言: 我竟然找出三個沒有物件名稱,真奇怪。
是否可以試著先不建立 tabsheet 上的元件, 在 tabsheet 建立完成時, 就先 check 看上面是不是已經有元件了.. so strange!!
ivankuo
中階會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-07 10:35:21 IP:61.220.xxx.xxx 未訂閱
我找到了```TGroupButton 是TDBRadioGroup 的items 物件,這樣我必須把他移除gettaborderlist之外,可以這樣做ㄇ
------
ivankuo
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-07 12:19:04 IP:218.187.xxx.xxx 未訂閱
引言: 小弟遇到一個問題,我的pageControl有好幾個tabsheet,我的元件都是runtime時期才產生的,假設我的tabsheet 1 內擁有taborder的屬性的元件有10個,但是我在判斷 var L:TList; TabSheet1.gettaborderlist(L); L.count 時卻有13個, 我找不出哪裡有另外多的3個 此問題只發生在第一個tabsheel 1 , 其他的tabsheet 不會發生 ,請問有何方式可以查出那多的3個擁有taborder屬性的元件ㄇ??
因為 TabOrder 是實作在 TWinControl, 所以只要判斷是不是TWinControl就可以知道有沒有 TabOrder 屬性, 程式碼如下:
var i: Integer;
begin
  for i := 0 to TabSheet1.ControlCount -1 do
  begin
    if (TabSheet1.Controls[i] is TWinControl) then
      ShowMessage(TabSheet1.Controls[i].Name   ':我有TabOrder');
  end;
end;
------
將問題盡快結案也是一種禮貌!
ivankuo
中階會員


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-07 13:49:31 IP:61.220.xxx.xxx 未訂閱
前輩這個方式也可不錯,謝謝告知,多學了一招。不過我已經解決那個問題。再次感謝。
------
ivankuo
系統時間:2024-05-15 4:36:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!