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

动态创建组件

楼主peter_xiong(pt)2001-12-14 10:06:06 在 Delphi / VCL组件开发及应用 提问

请问在Delphi中怎样动态创建一个组件,而在创建之前是不知道该组件的具体名称。  
  也就是说在之前没有定义变量。可以实现吗?  
  问题点数:66、回复次数:8Top

1 楼lizhenjia(暴雪)回复于 2001-12-14 10:12:27 得分 30

是这个意思吗?  
  procedure   TForm1.Button1Click(Sender:   TObject);  
    var  
        b:Tbutton;  
  begin  
        b:=Tbutton.Create(self);  
        b.name:='java';  
        b.parent:=form1;  
        b.Caption:='2';  
        b.top:=100;  
        b.left:=100;  
  end;Top

2 楼peter_xiong(pt)回复于 2001-12-14 10:12:46 得分 0

没有人吗?Top

3 楼cobi(我是小新)回复于 2001-12-14 10:13:37 得分 36

var  
      dd   :   TDbedit;  
      i   :   integer;  
  begin  
    for   i:=1   to   10   do  
    begin  
      dd:=tdbedit.Create(self);  
      dd.Name:='dbedit'+inttostr(i);     //以序号来命名控件    
      dd.Width:=170;  
      dd.DataSource:=dm1.datasource1;  
    end;  
  end;Top

4 楼peter_xiong(pt)回复于 2001-12-14 10:14:13 得分 0

to:lizhenjia  
  可以创建多个吗?  
  Top

5 楼cobi(我是小新)回复于 2001-12-14 10:15:54 得分 0

为了方便在程序中控制,动态创建的控件最好还是首先定义一个变量做标识,然后控制使用,象  
  dd   :   TDbedit这样。如果创建数量比较多的话,也可用控件数组实现,like:  
  ArrayDbedit   :   Array   of   TDBedit;Top

6 楼tuboo(阿文)回复于 2001-12-14 10:17:09 得分 0

  创建之前你连创建哪类组件都不知道,这岂不是踩西瓜皮溜到哪算哪,好像不是编程应有的风格吧,一般来说事先应该知道所要创建的是哪种组件的,创建个数倒是可以用动态数组设为不祥.Top

7 楼pathe(睡斛)回复于 2001-12-14 10:17:44 得分 0

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      compDy   :   TComponent;  
  begin  
      compDy   :=   TEdit.Create(nil);  
      (compDy   as   TEdit).Parent:=Form1;  
  end;  
  不太清楚你的意思,你可以定义一个Tcomponent的变量,如上;  
  你也可以:  
        TEdit.Create(nil).parent   :=   Form1;  
  但这样再操作该组件时,只能用FindComponet查找后再操作!Top

8 楼tuboo(阿文)回复于 2001-12-14 10:33:33 得分 0

  createbutton(yournum);  
    var  
      yourbutton:array   of   tbutton;  
      i:integer;  
    beging  
      setlength(yourbutton,yournum);  
      for   i:=1   to   yournum   do  
      begin  
      yourbutton[i]:=tbutton.create(self);  
      yourbutton.parent:=yourform;  
    .....  
      end;  
  end;  
      Top

相关问题

  • 如何动态创建组件?
  • 如何动态创建组件
  • 动态创建组件的问题。
  • 怎样动态创建组件?
  • 动态创建组件问题 急
  • 如何在报表中动态创建组件和使用组件
  • 如何对动态创建地组件进行操作???救命!!!!!
  • Query组件可否在程序中动态创建呢?
  • 怎样在QReport组件中动态创建QRLabel、QRDBText?
  • 简单问题,如何动态创建组件

关键词

  • 组件
  • 控件
  • yourbutton
  • compdy
  • yournum
  • 创建
  • tdbedit
  • 动态
  • 变量
  • tbutton

得分解答快速导航

  • 帖主:peter_xiong
  • lizhenjia
  • cobi

相关链接

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

广告也精彩

反馈

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