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

請問能否判斷容器下是否有物件存在?

答題得分者是:pillar62
kenny236
一般會員


發表:5
回覆:6
積分:2
註冊:2005-04-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-11 14:54:31 IP:61.218.xxx.xxx 未訂閱
狀況如下: 有一個容器GroupBox1,內有兩個元件Button1(TButton)與Memo1(TMemo)。 希望的結果: 透過程式判斷(TButton)是否存在於GroupBox1。 也就是類似以下這樣(這種寫法當然是錯的): If GroupBox1.TButton.Name = 'Button1' Then Begin ShowMessage('HAHA'); End;
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-11 15:18:36 IP:61.218.xxx.xxx 未訂閱
hi,kenny236:  應該沒有像你說的那麼方便,必需自己寫 function ,利用TComponent.GetParent的特性,達到你要的目地,如下:
procedure TForm1.Button2Click(Sender: TObject);
var
  i:Integer;
  str:String;
  cmp:TComponent;
begin
  str:='';
  for i:=0 to Self.ComponentCount-1 do
  begin
    cmp:= Components[i].GetParentComponent;
    if cmp = GroupBox1 then
      str:=str #10#13 Components[i].Name;
  end;
  ShowMessage(str);
end;
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-11 15:44:00 IP:210.64.xxx.xxx 未訂閱
你好 也可以試試看用跑controlcount的方式喔!!
var i : integer;
begin
  for i := 0 to GroupBox1.controlcount - 1 do
  begin
    if GroupBox1.controls[i] is TButton then
    begin
      if (GroupBox1.controls[i] as TButton).Name = 'Button1' then
        ShowMessage('HAHA');
    end;
  end;
end;
試試看吧!! Pillar Wang
------
Pillar Wang
系統時間:2024-06-16 14:31:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!