CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何通过窗体的Controls属性来控制窗体中的控件?

楼主zxp319(xiangtian)2002-04-18 18:12:24 在 Delphi / VCL组件开发及应用 提问

我的程序中,窗体上有许多Edit控件,我想把它们的Enabled属性置为False,  
  我知道窗体的Controls属性是窗体的子控件,所以我想通过该属性来实现  
  这个功能,但是“FormXiaoQuJJ.Controls[i].Enabled:=False”这样的  
  代码是错的,该怎么改呢? 问题点数:50、回复次数:7Top

1 楼Liusp(夜深千帐灯)回复于 2002-04-18 18:17:13 得分 20

for   iCount   :=   0   to   ComponentCount   -   1     do  
  begin  
          if   Components[iCount]   is   TEdit   then  
                TEdit(Components[iCount]).Enabled   :=   False;  
  end;  
  Top

2 楼xxmmmx(踢踏)回复于 2002-04-18 18:20:16 得分 15

var  
      Component:   TComponent;  
  ....  
          for   i   :=   0   to   self.ComponentCount-1   do  
          begin  
              Component   :=   self.Components[i]   as   TComponent;  
              if   Component.ClassNameIs('TEdit')   then  
                    (Component   as   TEdit).Enabled   :=   false;  
   
              //if   Component.ClassNameIs('TDBMemo')   then  
              //       (Component   as   TDBMemo).Width   :=   iWidth;  
          ......  
          end;  
  Top

3 楼agui(阿贵: 高级图形用户界面)回复于 2002-04-18 18:28:26 得分 0

哈哈,你们的方法都比较对。不过,我有两句话要说:  
   
  xxmmmx(踢踏)   的方法无疑是比较灵活而通用的,但是效率低了些,改成这个就好一点了:  
  Component   is   TEdit  
  Component   is   TDBMemo  
  。  
   
  还有一个办法是根本不用管控件是哪个具体的类,只管看它有没有“Enabled”这个属性,从而设置它的值。  
   
  要不要?  
  Top

4 楼eagle123(大丁)回复于 2002-04-18 18:37:07 得分 0

来晚了,   楼上所说的均可Top

5 楼inbud(清风侠)回复于 2002-04-18 18:39:59 得分 15

来晚了,提供一个更快的吧  
  for   i:=0   to   ControlCount-1   do  
      if   Controls[i].Classtype=TEdit   then  
            TEdit(Controls[i]).Enabled:=false;  
  这样将只遍历所有Control控件,而不是所有的Component!Top

6 楼xxmmmx(踢踏)回复于 2002-04-18 19:07:11 得分 0

to   agui(阿贵.Program(Life)):  
  你那个东西我要.我想在窗口出现的时候,每个有Repaint属性的控件重新画一遍,但不知道怎么做.Top

7 楼wind8bell(风之铃)回复于 2002-04-18 19:15:37 得分 0

标记一下Top

相关问题

  • 如何用B窗体的控件关闭A窗体及控制A窗体的控件的属性?
  • 如何修改其他窗体中控件的属性?
  • 请问 如何 汉化 DEV SpreadSheet 控件的 属性 窗体 ?????????????
  • 请问:如何改变父窗体的控件属性?
  • web窗体用户自定义控件中的属性问题
  • 窗体中如何访问UserControl中的控件的属性?
  • 如何由MDI子窗体向父窗体传递参数和更该父窗体控件的属性????
  • 如何获得Web窗体用户控件.ascx中控件的属性
  • 在MDI主窗体中改变(动态创建)子窗体的控件属性出错
  • ######请问,不创建窗体,怎么读出窗体中的控件的属性? 答对给500分!

关键词

  • 控件
  • 属性
  • component
  • 窗体
  • tedit
  • tdbmemo
  • icount
  • enabled
  • control
  • then

得分解答快速导航

  • 帖主:zxp319
  • Liusp
  • xxmmmx
  • inbud

相关链接

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

广告也精彩

反馈

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