请问各位DFW,如何在不知道共有多少个对象的情况下创建,调用此对象 (100分)

  • 主题发起人 主题发起人 clever_boy_2000
  • 开始时间 开始时间
C

clever_boy_2000

Unregistered / Unconfirmed
GUEST, unregistred user!
各位DFW,可能上面说的不太清楚,是这样的
我在一个程序中有一个(Form派生)类,但要求在很多地方(可能)同时生成这个窗体(并不
明确在此之前有几个这个类的实体,也不明确在此之后有将产生几个这个类的实体)
并对其操作,不知如何动态生成其实体.
多谢!并加100分
 
如果Tyourform是这个派生类的话
with Tyourform.create(application) do
begin
caption:='新建';
onclick:=你定义的事件;
......
end;
 
用控件数组来管理...
 
to 张无忌:
愿闻其详
to 52free:
谢谢,但
在示例中类的实体是什么?
如果以后还创建几个类的实
体同时这个实体没有Free,
如何对其操纵??
 
控件数组完全可以解决,
把创建的对象都放在一个数组中就可以自己随时进行管理了
 
to hefeng:
谢谢,但有示例么?
并这个数组是应该不限制大小的,哎
 
用 TList 管理,插入删除会比较方便:
var
MyFormList: TList;

创建一个:
MyFormList.Add(TForm1.Create(nil)); // 把新窗口的实例指针保存到列表中
// 随便你创建多少个
// 创建之前还可以通过 MyFormList.Count 得到当前已经有多少个窗口实例了

使用一个:
var
TheForm: TForm1;
begin
TheForm := TForm(MyFormList[5]);
TheForm.Caption := Format('The %dnd Form.', [5]);
TheForm.Show;
end;

删除一个:
var
TheForm: TForm1;
begin
TheForm := TForm1(MyFormList[5]);
MyFormList.Delete(5);
TheForm.Free;
end;

 
谢谢beta,实验中......
 
多人接受答案了。
 
后退
顶部