关于封装dll的问题

linq 2000-12-29 04:44:00
将一个Delphi程序封装成dll文件后,

当该程序中有showmessage或者application.messagebox这类提示窗口时会报错,不知这样的问题如何解决?

另外在该dll中包含的窗口如果存在这样的情况,如何处理?有两个Form,其中一个Form调用并操作另外一个Form。
...全文
185 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linq 2001-02-12
  • 打赏
  • 举报
回复
终于找到答案了给大家分享一下,
通过Application创建就行了:
Application.CreateForm(TForm1,Form1);
Form1.Show;
linq 2001-01-03
  • 打赏
  • 举报
回复
抱歉,刚才没有说清楚。
主要是操作窗口中的控件,不只是针对窗口。
有没有Delphi内部的解决方法?如果再通过API来实现的话,好像绕远了。
whoo 2001-01-03
  • 打赏
  • 举报
回复
use FindWindow()
linq 2001-01-03
  • 打赏
  • 举报
回复
如果在新建的窗口中改变原来窗口某些属性怎么办?
原来窗口也是动态建立的,名称是什么呢?
dawen 2000-12-30
  • 打赏
  • 举报
回复
使用messagebox函数
whoo 2000-12-30
  • 打赏
  • 举报
回复
如果包含了Forms单元的话,ShowMessage应该可以使用.不过如果Dll中没有Form的话,包含Forms单元会使Dll太过于臃肿.建议使用Windows.MessageBox.

Dll中调用Forms和在程序中调用没有区别.唯一要做的是,你必须创建这些Form,而在程序中这一步是在Project中完成的.(Application.CreateForm(....)).Dll中可以在使用前创建.
如:
Form1 := TForm1.Create(nil);
Form1.ShowModal();
也可以在Dll的初始化时创建.
如:
Library test;
...
begin
form1 := TForm1.Create(nil);
end;
ether 2000-12-29
  • 打赏
  • 举报
回复
在调用DLL的其他函数前,先调用一函数,把Application.Handle传送给
DLL的Application.Handle看看。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧