如何在多个dll中共用一个数据模块dm?? 数据模块dm中是连接到中间层的,每个dll都需要一样的数据模块连接到中间层。怎样才能够共用一个数据模块?采用动态运行包是不是需要在dll的每个显示页面内创建数据模块dm?请高手帮忙!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 跟我现在做的方式完全一样.你的DLL应该返回一个对象(我现在返回的是Form),在这个对象的类的定义中加一个dm.示例数据模块TMyDataModule=class(TDataModule)end;DLLTMyForm=class(TForm) dm:TDataModule;end;function CreateAForm(AppHandle:THandel;DataModule:TDataModule):TForm;stdcall;begin Application.Handle:=AppHandle; Result:=TMyForm.Create(nil); (Result as TMyForm).dm:=DataModule;end;这样你先在主程序里把Dm生成好,再调用动态库创建对象时,把dm作为参数传进去.所有的DLL就可以共用这个dm了. To Cipherliu(孤鹰): 还有一个小问题,在DLL的主FORM的PUBLIC中声明了DM,在DLL的其余FORM中不能直接应用吗?是不是也要以DM作为参数传递? 建议你不要在DLLForm中直接用主Form的DM.最好是在一个地方创建,其它地方都是引用.这样才能达到共用效果 delphi+access问题 求救:Delphi与RS232串口通信的程序有谁做过?望高手指点.急!急!急! 一个管理系统局部设计的问题?大家帮忙看看 如何对word的菜单进行操作? 修改DBGrid1数据问题 执行EXE文件后提示“执行了非法操作“ 为什么我设了字间距后预览时有效果,可打印后没有效果?我用的是FastReport做报表 delphi7序列号!!! 如何用MemoryStream读入自定义的Record 如何将一个字符串分成几段显示? 求变量ascii的递增值 try...finally...end 语句可否实现如下功能
你的DLL应该返回一个对象(我现在返回的是Form),在这个对象的类的定义中加一个dm.示例
数据模块
TMyDataModule=class(TDataModule)
end;DLLTMyForm=class(TForm)
dm:TDataModule;
end;function CreateAForm(AppHandle:THandel;DataModule:TDataModule):TForm;stdcall;
begin
Application.Handle:=AppHandle;
Result:=TMyForm.Create(nil);
(Result as TMyForm).dm:=DataModule;
end;这样你先在主程序里把Dm生成好,再调用动态库创建对象时,把dm作为参数传进去.所有的DLL就可以共用这个dm了.
还有一个小问题,在DLL的主FORM的PUBLIC中声明了DM,在DLL的其余FORM中不能直接应用吗?是不是也要以DM作为参数传递?
最好是在一个地方创建,其它地方都是引用.这样才能达到共用效果