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

可以动态建立控件吗?!

楼主vitamin_ok(水水|Eddie(vitamin_ok@mail.csdn.net))2002-09-27 20:54:34 在 Delphi / VCL组件开发及应用 提问

动态建立不定数量的同一控件,可以做吗?  
   
   
  如果可以做,那该怎么做?! 问题点数:50、回复次数:9Top

1 楼karl()回复于 2002-09-27 21:09:58 得分 0

先声明,然后CreateTop

2 楼chechy(www.qdocuments.net)回复于 2002-09-27 21:12:30 得分 5

for   i   :=   0   to   100   do  
      with   TLabel.Create(Application)   do  
      begin  
          Caption   :=   'Hello,   world';  
          Left   :=   0;  
          Top   :=   i   *   20;  
          Parent   :=   Self;  
      end;Top

3 楼dupenf(飞跃人生)回复于 2002-09-27 21:27:29 得分 10

var  
      Myedit:Tedit;  
  Begin  
      MyEdit:=TEdit.Create(Form1);  
      With   MyEdit   do  
      Begin  
        Name:=MyEdit;  
        Width;=200;  
        Left:=250;  
        Top:=120;  
      End;  
  End;  
  如果你想连续生成可以用一个循环语句,循环以上那些代码就可以了!!   注意没一次循环要把Left的值改一次,不然就都在一起了。   你只能看到一个。Top

4 楼dupenf(飞跃人生)回复于 2002-09-27 21:30:10 得分 0

刚才我写错了一个地方,不好意思:  
  Name:='MyEdit';Top

5 楼wjlsmail(小脖领)回复于 2002-09-27 21:34:07 得分 0

studyTop

6 楼santwy(易易)回复于 2002-09-27 21:41:15 得分 10

var  
      I         :   Integer;  
      itop   :   Integer;  
      ileft:   Integer;  
      MyBtn:   TButton;  
  Begin  
      itop:=2;  
      ileft:=2;  
      for   I:=1   to   1000   do  
      begin  
          MyBtn:=TButton.Create(nil);  
          MyBtn.Parent:=Panel1;  
          MyBtn.Name:='MyBtn'+   IntToStr(I);  
          MyBtn.Top:=itop;  
          MyBtn.Left:=ileft;  
          if   I   mod   20   =   0   then  
          begin  
              itop:=MyBtn.Height+2;  
              ileft:=0;  
          end  
              ileft:=MyBtn.width+2;  
          //位置自己定  
      end;  
  End;Top

7 楼lvluogang(司南)回复于 2002-09-28 00:43:30 得分 0

楼上的写得很清楚,别忘了用动态控件要Free;Top

8 楼cnsuyong(小可)回复于 2002-09-28 01:08:08 得分 25

<1>完全可以不声明:  
  with   TButton.Creare(Form1)   do   begin  
      Parent   :=   Form1;  
      //...  
  end;  
  <2>释放(Free)动态控件是好的习惯,但不是必须的:因为TComponent的所有后裔都继承了它的Destroy析构器,而在此析构器中调用了DestroyComponents方法用来销毁所有以其为Parent的控件(Controls)和组件(Components)。Top

9 楼cnsuyong(小可)回复于 2002-09-29 00:19:02 得分 0

更正:“销毁以其为Parent的...”应为“销毁以其为Owner的...”。Top

相关问题

  • 如何动态建立TNmudp控件?
  • 怎么动态建立控件呀/
  • 怎么动态建立控件数组?????
  • 怎样动态建立显示控件
  • 请问如何动态建立有3D边框的控件?
  • Delphi中可以动态建立控件吗?来的都有分
  • 动态建立控件的释放问题
  • 关于动态建立控件数组的问题!
  • 请教,请教,请教,如何动态建立控件?
  • 关于动态建立控件事件的响应及控件的释放的问题

关键词

  • 控件
  • top
  • mybtn
  • myedit
  • ileft
  • itop
  • 动态
  • 销毁
  • tbutton
  • parent

得分解答快速导航

  • 帖主:vitamin_ok
  • chechy
  • dupenf
  • santwy
  • cnsuyong

相关链接

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

广告也精彩

反馈

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