如何在Delphi 写的 DLL 中加入窗体,并用 Dll 中的过程调用并显示它?(50分)

  • 主题发起人 主题发起人 shineboy
  • 开始时间 开始时间
這和普通的調用方法一樣,你在dll程序添加一個窗體,和正常一樣設置它的功能<br>,然後在工程中寫一過程創建並顯示該窗體,<br>你的應用程序可以靜態調用該過程或者動態調用<br>&nbsp; 你是想問怎樣寫dll的程序吧?
 
uses forms;<br><br>var<br>&nbsp; f:TForm;<br>f:=TForm.Craete(nil);<br>f.Visible:=true;<br>就可以显示了
 
和在普通的时候一样,在写dll时候加入窗体,编写功能,然后调用
 
但我现在的问题是 DLL 中的过程一旦调用了 Form 就会出现非法操作 :(
 
我用 Pipi 的方法可以显示窗体<br>但如果我这样做:<br>File-&gt;New-&gt;Form &nbsp;Form 的 Name 为 Form1<br>在 Dll 的一个过程中,我用 Form1.Visible:=True;语句显示该窗体就会执行非法操作。<br>是我疏忽了什么吗?<br>不好意思,我刚开始学Delphi,有劳大家了 <br>
 
把代码贴出来再讨论看看
 
在DLL文件中写一个这个建立这个窗体类的实例的过程,如<br><br>procedure createwindows(aowner);<br>begin<br>&nbsp; Form1:=TForm1.create(aowner);<br>&nbsp; Form1.showmodal;<br>&nbsp; form1.free<br>end;<br><br>然后把这个过程在DLL文件中EXPORTS出来,再用调用程序直接调用这个过程就可以显示这个窗体了.
 
要将程序的application传进去<br>aowner := application<br>procedure createwindows(aowner);<br>begin<br>&nbsp; Form1:=TForm1.create(aowner);<br>&nbsp; Form1.showmodal;<br>&nbsp; form1.free<br>end;<br><br>
 
搞定了,谢谢大家
 
多人接受答案了。
 
后退
顶部