变量转换成类?(100分)

  • 主题发起人 主题发起人 jeffsheng
  • 开始时间 开始时间
J

jeffsheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将FORM的名字放在数据库中,在需要的时候动态创建FORM并Show出来,请高手指导怎样可以达到这个目的??[brown][/brown][black][/black]
 
假设你从数据库中读出来的 Form 的名字存放在 FormName 变量中:
TForm(Application.FindComponent(FormName)).Show; // 显示出来了
当然,前提是那些窗口都要已经创建了。

 
如果先创建所有FORM会占用很多的内存,而且我的系统比较大,此方法可能不可行!
 
if s='TForm1' then
with TForm1.create(nil) do showmodal();
 
这样就可了
var
Formclass:TFormClass;
myForm:TForm;
begin
Formclass=TFormClass('T'+Formname);
myForm:= Fromclass.create(self)
end;
 
用动态链接库,在每个DLL中实现一个函数,函数的参数要相同,也就是说,
每个DLL用相同的接口,你可以把DLL的名字及函数名保存在数据库,动态调用
 
如果 Form 多,就动态创建,先把每个 Form 的 Class 用 RegisterClass 注册
(在单元的 initialization 部分)然后用 GetClass 返回类引用,然后通过该
类引用来创建并显示即可。

 
多人接受答案了。
 
后退
顶部