动态创建组件

bxcs 2004-11-04 06:19:00
在程序中动态的创建一个组件,并显示.
窗体中已经存在一个组件,现在需要创建一个同类型的组件,要求该创建的组件与已经存在的组件具有相同的属性,及事件
...全文
143 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bxcs 2004-11-05
  • 打赏
  • 举报
回复
我正在看原型模式
DunDao 2004-11-05
  • 打赏
  • 举报
回复
谢谢大家提供的方法,据说这是一个很前卫的技术,希望大家多多提供解体思想.
=========================================================================
不是告诉你了吗,采用Prototype模式,即原型模式。
bxcs 2004-11-05
  • 打赏
  • 举报
回复
谢谢大家提供的方法,据说这是一个很前卫的技术,希望大家多多提供解体思想.
cnhgj 2004-11-04
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('dd');
end;

procedure TForm1.FormCreate(Sender: TObject);
var
btn : TButton;
begin
btn := TButton.Create(self);
btn.Name := 'button2';
btn.Parent := self;
btn.Left := 0;
btn.Top := 10;
btn.OnClick := button1.OnClick;
end;

你不如做成控件。。
longtusoft 2004-11-04
  • 打赏
  • 举报
回复
UP
DunDao 2004-11-04
  • 打赏
  • 举报
回复
可采用Prototype模式,给个链接学习学习吧。
http://www.delphibbs.com/keylife/iblog_show.asp?xid=2547
关键词:深克隆
Jute 2004-11-04
  • 打赏
  • 举报
回复
我看了你的帖之后,我在实践中寻找答案,以下结果是可行的:
var
edit1:TEdit;
begin
edit1:=TEdit.Create(self);
edit1.Parent:=self;
edit1.Top:=0;
edit1.Width:=121;
edit1.Text:='Edit1';
end;
g961681 2004-11-04
  • 打赏
  • 举报
回复
Create后在Assign啊,这样就具有了相同的属性了。
但是,这个问题的关键是原来窗体中控件的类型是不确定的。
在动态创建控件以前要先知道类型才行啊!
bxcs 2004-11-04
  • 打赏
  • 举报
回复
这种方法能创建一个组件,但是不能创建一个与已经存在的组件一样的组件.
假如要创建一个Edit,
var
edit1 : TEdit;

Edit1 := TEdit.Create(Application);
不能和一个已经存在的Edit有相同的属性和事件呀
boatzm 2004-11-04
  • 打赏
  • 举报
回复
用copy!
tsst 2004-11-04
  • 打赏
  • 举报
回复
create后使用assign 或assignto
Nirvanaxumm 2004-11-04
  • 打赏
  • 举报
回复
比如edit
var
edit1 : TEdit;

Edit1 := TEdit.Create(Application);

5,392

社区成员

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

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