我做了一个包,里面包含一个DATAMODULE
数据里面有一个ADOCONNECTION

我在程序里面是这样调用的:
Hmod:hmodule;
myclass:tpersistentclass;
DM:tdatamodule;
begin
  hmod:=loadpackage('datamod.bpl');//datamod.bpl是包的名称
  Myclass:=getclass('tdatamodule1');//tdatamodule1是包里注册的类
  dm:=tdatamodule(tcomponentclass(myclass).create(application));
  为什么一到这里就报错呢?
  我该如何解决?
  

解决方案 »

  1.   

    可以先分析一下哪里出错。
    将最后一句分为几步,看看到底哪里出错:
    compClass := myclass as TComponenentClass; // I think use as is better
    comp := compClass.Create(Application);
    dm := comp as TDataModule;
      

  2.   

    comp: TComponent;
    compClass: TComponenentClass;
    到底那行代码出错?
      

  3.   

    compClass := myclass as TComponenentClass;
    这行无法编译
    提示:operator not applicable to this operand type;
      

  4.   

    惨,居然不能这么用,算了,只能这样咯
    compClass := TComponenentClass(myClass);