TForm我打开问题!!!!(100分)

  • 主题发起人 主题发起人 shenfeng_126
  • 开始时间 开始时间
S

shenfeng_126

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个Form,name=Form1

请问如果只知道Form的名字,能不能打开这个Form

比如说把Form的名字赋给str

str = 'Form1';
如何通过str这个字符串打开这个窗体呢?
 
这种应用的方法,通常是用脚本来实现的. 然后再做强制类型转换.

另外一种方法, 是比较合理的. 那就是自己写一个类工厂, 然后根据名称来创建类的实例.
否则没办法实现,因为类型是络还是要有定义的.
 
类工厂??
能否给我一简单的例子???

谢谢!!!!!!!!
 
为什么都要代码呢, :-/


TXForm = class(TForm)
...
end;

TAForm = class(TXForm)
...
end

TBForm = class(TXForm)
...
end

TFormFactory = class
function CreateForm(AFormName: string):TXForm;
end;

function CreateForm(AFormName: string):TXForm;
begin
if (AFormName = 'AForm') then
result := (TAForm.Create(nil) as TXForm);
end
else if (AFormName = 'BForm') then
result := (TBForm.Create(nil) as TXForm);
end
 
不要代码,不会啊
哈哈

我来试试看,多谢了
 
不好意思,我还是不会写,能不能帮我写在一个unit里面,
完整一点的,小弟实在是不会
麻烦了
 
不用了,我搞定了
谢谢
 

Similar threads

回复
0
查看
891
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部