CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

delphi如何遍历窗体中的所有控件?

楼主aismin(中原)2002-04-04 11:21:30 在 Delphi / VCL组件开发及应用 提问

delphi如何遍历窗体中的所有控件?  
  如何遍历各个控件的各种属性?? 问题点数:60、回复次数:9Top

1 楼windindance(风舞轻扬·白首为功名)回复于 2002-04-04 11:27:51 得分 10

uses   typinfo;  
   
  for   i:=0   to   Form.ComponentCount-1   do  
      Form.Components[i].   ...  
   
  遍历各个控件的各种属性应该可以通过GetPropList和GetPropInfos函数实现  
  不过我没有用过。Top

2 楼ChinaOk(农村表哥)回复于 2002-04-04 11:35:41 得分 20

for   i:=0   to   ComponentCount-1   do   {   遍历Form组件   }  
          begin  
              frmComponent:=Components[i];  
              if   frmComponent   is   TLabel   then   {   如果组件为TLabel型则当作TLabel处理,以下同   }  
              begin  
                  (frmComponent   as   TLabel).Caption:=  
  ReadString(Translations,frmComponent.Name+'.Caption',(frmComponent   as   TLabel).Caption);  
              end;  
              if   frmComponent   is   TCheckBox   then  
              begin  
                  (frmComponent   as   TCheckBox).Caption:=  
  ReadString(Translations,frmComponent.Name+'.Caption',(frmComponent   as   TCheckBox).Caption);                  
              end;  
              if   frmComponent   is   TButton   then  
              begin  
                  (frmComponent   as   TButton).Caption:=  
  ReadString(Translations,frmComponent.Name+'.Caption',(frmComponent   as   TButton).Caption);  
                  (frmComponent   as   TButton).Hint:=  
  ReadString(Translations,frmComponent.Name+'.Hint',(frmComponent   as   TButton).Hint);  
              end;  
              if   frmComponent   is   TMenuItem   then  
              begin  
                  (frmComponent   as   TMenuItem).Caption:=  
  ReadString(Translations,frmComponent.Name+'.Caption',(frmComponent   as   TMenuItem).Caption);  
              end;  
          end;Top

3 楼quark(夸克)回复于 2002-04-04 11:37:19 得分 0

for   i:=0   to   Form.ComponentCount-1   do     Form.Components[i].    
   
  for   i:=0   to   Form.ControlCount-1   do     Form.Controls[i].Top

4 楼zx_wang(wzx)回复于 2002-04-04 11:44:02 得分 0

把你的EMail给我,我可以给你发员代码Top

5 楼hup(点化生命)回复于 2002-04-04 12:36:52 得分 10

var   i:integer;  
  begin  
      for   i:=0   to   componentcount[i]   do  
      begin  
          if   components[i]   is   Tedit   then...  
          if   components[i].tag=1   then   ...  
          //访问控件的属性  
          Tedit(components[i]).enabled:=false;    
      end;  
  end;Top

6 楼aismin(中原)回复于 2002-04-04 20:03:46 得分 0

我的EMAIL是  
  aismin@21cn.com  
  Thanks   you   !   (zx_wang)Top

7 楼syd111(赤蝎13)回复于 2002-04-18 11:09:11 得分 0

hup()   厉害!Top

8 楼wylove(阿刚)回复于 2002-04-18 19:08:55 得分 0

一般可以通过tag属性来判断来判断是哪个控件!Top

9 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2002-04-18 20:17:34 得分 20

一般通过.ComponentCount和.Components[i]来遍历窗体中的所有控件,  
  当然可以通过预定义.tag的值来区分具体的控件,比与.tag=1的是TLabel,.tag=2的是Tedit,.tag=3的是Tbutton,用is来判定控件,is进行类型转换:if   mainform.Components[2]   is   tlabel   then   (mainform.Components[2]   as   tlabel).caption:=....Top

相关问题

  • 还是窗体遍历问题:如何找到窗体下的MainMenu控件?
  • 如何遍历主窗体MainForm中所有的Button控件?
  • 在DILPHI中如何遍历窗体中所有的控件
  • 寻求遍历一个窗体所有控件的方法。
  • 如何遍历窗体上的所有控件!
  • 如何遍历窗体中的所有控件?
  • 如何遍历窗体上的radiobutton控件?
  • 求助如何遍历窗体中的checkbox控件
  • 如何遍历窗体上所有的控件
  • 遍历窗体控件,如果是按钮控件,就enable=false,怎么写?

关键词

  • 控件
  • tag
  • frmcomponent
  • 遍历
  • tlabel
  • caption
  • tbutton
  • readstring
  • componentcount
  • tcheckbox

得分解答快速导航

  • 帖主:aismin
  • windindance
  • ChinaOk
  • hup
  • ly_liuyang

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo