100分奉送!如何通过类的名字得到类的引用???(100分)

  • 主题发起人 主题发起人 fylzh
  • 开始时间 开始时间
引用是什么意思?
 
在程序的 unit的
initialization
registerclass(yourclass); //注册你的类

finalization
unregisterclass(yourclass);
要引用类时进行如下操作:
var
tmpvar : yourclass;
aclass : class of yourclass;
aclass := findclass(类名);
然后就可进行各种操作
如 yourclass 是个form,那么就可:
tmpvar := aclass.create(application);
tmpvar.show;

 
to yxyxyxyx:
谢谢你提供的方法,我正是要动态引用窗体类。可是上述方法还有一个问题,就是findclass
的返回值类型是TPersistentClass,这样我就不能使用aclass.create(application)的方式
建立对象,如果这样写编译时出错,因为Tpersistent类的构造函数没有参数。但是如果采用
aclass.create方式创建的话,创建出的窗体对象无法showmodal,怎样解决这个问题?
 
var
aform : tform;
aclass : class of tform; 或 aclass :tformclass;
begin
aclass := tformclass(findclass(类名));
aform := aclass.create(application);
aform.show;
end;
哈哈,这可是我潜心研究好长时间的结果,我在我在应用程序就是用的这种方法,把form
的类名放在数据库中,然后根据不同的登录者的不同执行权限,动态生成主菜单的,别
忘了给分哦
 
非常感谢!
 
后退
顶部