如何得到控件个数。

oldearth 2002-10-24 10:08:56
我想得到 TabSheet1 包含的控件个数
TabSheet1.ComponentCount
结果=0 但里面有好几个控件
不知道我写的对不对。
...全文
97 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldearth 2002-10-24
  • 打赏
  • 举报
回复

for I :=0 to TabSheet1.ControlCount-1 do
begin
if TabSheet1.Components[I] is TEdit then
begin
TEdit(TabSheet1.Components[I]).Clear;
end;
end;

错误信息:list index out of bounds
xiatianyun 2002-10-24
  • 打赏
  • 举报
回复
借光,ComponentCount和ControlCount有什么不同?组件和控件有什么不一样的地方?
brallow 2002-10-24
  • 打赏
  • 举报
回复
来迟了。
macro_love 2002-10-24
  • 打赏
  • 举报
回复
控件非组件,componentcount当然不行呀
for i:=0 to ComponentCount-1 do 这样会把上面的非控件记上去
dupenf 2002-10-24
  • 打赏
  • 举报
回复
tabsheet1.componentcount,应该可以的阿
ihihonline 2002-10-24
  • 打赏
  • 举报
回复
for I := 0 to TabSheet1.ControlCount -1 /////不是ComponentCount
==================================================
招聘斑竹

如果您觉的您对Delphi感兴趣或是很想学的更好些或者是对Delphi有更深的认识,我们可以一起交流;
呵呵
www.nxrs.net/bbs
谢谢,别抛砖
论坛正在升级中,有时可能会出现连接错误,请见凉
lws0472 2002-10-24
  • 打赏
  • 举报
回复
TabSheet1.ControlCount
zsy_good 2002-10-24
  • 打赏
  • 举报
回复
所有从 TWinControl控件继承来的控件都有这个属性
forgot 2002-10-24
  • 打赏
  • 举报
回复
i,j:integer;
j:=0;
for i:=0 to ComponentCount-1 do
begin
if TControl(Components[i]).Parent is TabSheet1 then
j:=j+1;
end;
foreveryday007 2002-10-24
  • 打赏
  • 举报
回复
Sender.ControlCount;//Sender: TWinControl
zsy_good 2002-10-24
  • 打赏
  • 举报
回复
showmessage(inttostr( TabSheet1.ControlCount));
dyf2001 2002-10-24
  • 打赏
  • 举报
回复
controls是其子控件数组
Components是其拥有组件数组
组件的Owner都是窗体,所以tabsheet1的componentcount为0
如果form1.componentcount肯定不为0
dyf2001 2002-10-24
  • 打赏
  • 举报
回复
改用controlcount
ihihonline 2002-10-24
  • 打赏
  • 举报
回复
海天子说的好;是问题的关键;
呵呵
论坛正在升级中,有时可能会出现连接错误,请见凉 ,只要稍后再登录就可以解决
==================================================
招聘斑竹

如果您觉的您对Delphi感兴趣或是很想学的更好些或者是对Delphi有更深的认识,我们可以一起交流;
呵呵
www.nxrs.net/bbs
谢谢,别抛砖

huojiehai 2002-10-24
  • 打赏
  • 举报
回复
TabSheet1.ComponentCount得到的是组件的个数
TabSheet1.ControlCount 得到的是控件的个数
oldearth 2002-10-24
  • 打赏
  • 举报
回复
解决了。
for I := 0 to ComponentCount-1 do
begin
if Components[I] is TEdit then
begin
TEdit(Components[I]).Clear;
end;
end;
多谢各位大虾,但我不明白同样是容器form 就可已用,TabSheet就不行。

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧