讨论:在Dll中使用Mdi窗体存在的问题 (200分)

  • 主题发起人 主题发起人 redcony
  • 开始时间 开始时间
各位高高手 看了大家的讨论 我也想求教求教 怎么样调用DLL中的另一个窗体 问题很菜 大家见笑了~
能不能再给个例子参考参考
redcony,windbell 谢谢你们的例子 但是 redcony 你建的mid子窗体是一样的啊 要是dll
中的另一个窗体的调用呢? 谢谢大家
 
要把Application全局变量传人Dll并覆盖原有的Application,
在Dll退出时还原(跟踪代码发现还原后DLL的Application变量仍然是NULL)
才能创建MdiChild 窗体

你说application 为空 但是为什么mdi子窗体的图标确和主程序的图标一样了
 
to 青铜三代
你没明白我的意思,替换是可以的,但当 Dll接到进程的DLL_DEATTACH
通知撤销Dll时,你会发现这时的Application变量已经为NULL,还原后
还是NULL
to:UniVan:
 
一样啊!在Dll中声明函数创建并输出供主程序调用,别忘了一定在Dll中释放
 
学习,能发个例子给我吗?

zengrui163@163.net
 
琢磨中。。。。
如果在DLL中放置一个data Module的话,在调用DLL的程序窗口中怎么调用呢?
反之如何? 把Data Module 放到主程序中,在dll的窗体中调用?
拜托各位大大。。。。
to:UNiVAN@163.net
 
在Dll中需要手动创建和释放数据模块,调用是一样的。
如果DataModel在主程序里可就麻烦了
 
完全可以把Connection 从主程序中传入DLL
 
用BPL,做成控件的方式,太容易了!!
 
假如是普通的SDI窗口,那么做成DLL是没有问题的,但是,如果是MDI窗口风格,那么我建议你采用运行期包的形式去加载子窗口,包可以传递运行期信息(DLL不能),你可以在主窗口中通过GetClass去找到在包中通过RegisterClass注册的窗口类(可以在Initialization段中注册,最好在finalization段中再UnRegisterClass,注意加载包的函数会调用两个段,而加载动态库的函数是不会理会这两个段的),然后创建它的实例,非常方便,就想在一个工程里开发一样,就是要注意:要带包编译,公共的单元要放在公共包中以避免加载冲突
 
后退
顶部