我在FHandle := LoadPackage('package1.bpl')后,实例化这个包中的一个DataModuleif FHandle <> 0 then
begin AClass := TComponentClass(GetClass('TDMDept'));
ADM := AClass.Create(nil) as TDataModule;
for i := 0 to ADM.ComponentCount - 1 do
begin
if UpperCase(ADM.Components[i].ClassName) = 'TADOQUERY' then
begin
TADOQuery(ADM.Components[i]).Connection := Con;
break;
end;
end;但在另处一个包package2中的form中引用package1的DataModule时,它仍是Nil,怪事吧
begin AClass := TComponentClass(GetClass('TDMDept'));
ADM := AClass.Create(nil) as TDataModule;
for i := 0 to ADM.ComponentCount - 1 do
begin
if UpperCase(ADM.Components[i].ClassName) = 'TADOQUERY' then
begin
TADOQuery(ADM.Components[i]).Connection := Con;
break;
end;
end;但在另处一个包package2中的form中引用package1的DataModule时,它仍是Nil,怪事吧
你创建的实例是赋给了变量ADM.
而PACKAGE1中的DataModule1这个全局变量并没有对象创建.