我在包A中定义了一个类'TdmDatabase',在包B中需要用到这个类;程序代码如下:
var
AClass: TPersistentClass;
begin
FPackageModule := LoadPackage('DatabaseLink.bpl');
if FPackageModule <> 0 then
begin
AClass := GetClass('TdmDatabase'); if AClass <> nil then begin
FDataModule := TComponentClass(AClass).Create(nil) as TdmDatabase; ADOQuery.Connection := FDataModule.
qryTemp.Connection := ADOCon;
MasterQry.Connection := ADOCon;
SubQry.Connection := ADOCon;
end;
end;
end;在上面的代码中,FDataModule := TComponentClass(AClass).Create(nil) as TdmDatabase;出错找不到TdmDatabase定义。
网上的例子都是显示窗体,showmodal,当然可以了,问题如果在包里定义了自己的类,那怎么创建自己的类呢,也就是怎么向下转型呢?
var
AClass: TPersistentClass;
begin
FPackageModule := LoadPackage('DatabaseLink.bpl');
if FPackageModule <> 0 then
begin
AClass := GetClass('TdmDatabase'); if AClass <> nil then begin
FDataModule := TComponentClass(AClass).Create(nil) as TdmDatabase; ADOQuery.Connection := FDataModule.
qryTemp.Connection := ADOCon;
MasterQry.Connection := ADOCon;
SubQry.Connection := ADOCon;
end;
end;
end;在上面的代码中,FDataModule := TComponentClass(AClass).Create(nil) as TdmDatabase;出错找不到TdmDatabase定义。
网上的例子都是显示窗体,showmodal,当然可以了,问题如果在包里定义了自己的类,那怎么创建自己的类呢,也就是怎么向下转型呢?
解决方案 »
- 升级到D2007后出现Operation not allowed on a unidirectional DataSet,怎么解决呀?
- 通讯方向案征集,高手请进
- 三层结构的方法只能写procedure吗? 怎么样写Function ?
- 一个退出键,为什么这样写?
- 请问SQL语句的执行顺序!谢谢
- 用ADO控件连接ACCESS(office2000、XP)数据库。若在数据库中设置了一个短日期型的字段(输入数据格式如:2003-10-8),假如用dbgrid控件
- 数据库备份的问题,给我一点提示吧?
- 怎样调用帮助文档
- 我也装吧
- 请教:如何利用数据库中的当前记录与当前记录的上一日记录计算出其他字段记录?
- 如何组装业务模块
- 登陆问题
另外,如果你用到TdmDatabase只是ADOCon,那你可以直接
if AClass <> nil then begin
AComp := TComponentClass(AClass).Create(nil); ADOQuery.Connection := AComp.FindComponent('ADOCon') as TADOConnection;
qryTemp.Connection := ADOCon;
MasterQry.Connection := ADOCon;
SubQry.Connection := ADOCon;