关于遍历控件的一个简单问题!八小时内在线

galiton 2003-01-23 09:50:51
大家知道,可以用下面的方法遍历当前form上的所有控件,

Components TCompont* 目前Form上指向所有控件的数组

原来的写法:
c:=components[i];
timage(components[i-1]).visible :=true;

我现在想只是遍历当前form上的image控件,请问应该怎样写代码?
...全文
37 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
windstrom 2003-01-23
  • 打赏
  • 举报
回复
c:=components[i];
if components[i-1] is timage then
timage(components[i-1]).visible :=true;
Billy_Chen28 2003-01-23
  • 打赏
  • 举报
回复
不可以!
galiton 2003-01-23
  • 打赏
  • 举报
回复
我知道类似的方法还有
ControlCount
Controls TControl

有没有其它的能够直接解决我提出的问题而不用循环语句?
谢谢!
galiton 2003-01-23
  • 打赏
  • 举报
回复
谢谢楼上几位!

多问一句,不用循环来判断可以吗?
LKJ99 2003-01-23
  • 打赏
  • 举报
回复
for iLoop := 0 to Form1.ControlCount - 1 do
if Form1.Controls[iLoop].ClassType = 'TImage' then
with (Form1.Controls[iLoop] as TImage) do
begin
....
end;
Billy_Chen28 2003-01-23
  • 打赏
  • 举报
回复
给你举个例子说,你在一个FORM上放了二个CHECKBOX控件,一个EDIT控件。
每个FORM都有一个COMPONENTCOUNT属性,它代表FORM上的控件数目,在我所举的这个例子里,
假设你在一个FORM上放了二个CHECKBOX控件,一个EDIT控件,所以现在FORM上有三个控件,
COMPONENTCOUNT的值为3。
每个FORM又都有一个COMPONENTS属性,它代表FORM上的控件。
请看下面的一段代码:
for icount:=0 to form1.ComponentCount-1 do
begin
if form1.Components[icount] is tcheckbox then
tcheckbox(form1.Components[icount]).checked:=true;
end;
这段代码的意思是循环扫描FORM上的控件,本例中你在一个
FORM上放了二个CHECKBOX控件,一个EDIT控件,所以COMPONENTS[0],
COMPONENTS[1],COMPONENTS[2]分别代表这三个控件。但到底是COMPONENTS[0]是
CHECKBOX呢还是COMPONENTS[1]是CHECKBOX呢,我们不得而知,所以我们用
if form1.Components[icount] is tcheckbox then来判断。
这段代码的意思是如果“COMPONENTS[ICOUNT]是CHECKBOX的话,那么”,下面再用
tcheckbox(form1.Components[icount]).checked:=true;把每个CHECKBOX的CHECKED属性
设置为TRUE。
你明白了吗?我是明白了,呵呵
fancier 2003-01-23
  • 打赏
  • 举报
回复
if Components[i] is TImage then
(Components[i] as TImage).visible:= true;
票票飞扬 2003-01-23
  • 打赏
  • 举报
回复
for ii := 0 to ComponentCount - 1 do
if Components[ii].ClassName = 'TImage' then
ShowMessage(Components[ii].Name);
CeleronII 2003-01-23
  • 打赏
  • 举报
回复
for i := 0 to componentCount - 1 do
begin
if Componets[i] is TImage then
TImage(Componets[i] ).Visible := true;
end;
bluemeteor 2003-01-23
  • 打赏
  • 举报
回复
只能用原来的方法,依次遍历然后判断组件是否是image类型

5,392

社区成员

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

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