急问:如何在一个程序中使用一个DLL中的控件?(100分)

  • 主题发起人 主题发起人 gmwu
  • 开始时间 开始时间
G

gmwu

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题可能怪一点。不知哪位高手可以告知解决方法。

问题描述如下:
如何在一个可执行程序中使用一个DLL中的frame?
并把它嵌入调用程序的form中?

谢谢!
 
如果只是一个单纯的dll而没有任何其它附加文件, 在设计期是不可能达到你的要求的
(比如想在设计期将dll中的Frame放到form上).
运行期可行, 不过"放置"的工作要由dll来完成, 比如调用程序给出个坐标RECT, 由
dll中的过程或函数动态创建该frame的实例并放到这个Rect里.
 
当然是想在运行期放置,不过我不太明白你的意思,如何在DLL中将FRAME放到RECT中?
能不能给出个具体的例子?谢谢!
 
我作过类似的DLL,
DLL要用一个函数导出Frame,
注意的是 要将Frame的ParentWindow设为窗体
还有就是一个我遇到的毛病:
这样导出的窗体,不是很稳定,例如我作的东西,不能调OpenFileDialog,
会出莫名其妙的错误
 
如何用函数导出FRAME?
我曾试着在DLL中的一个函数中将FRAME的PARENTWINDOW设为一个PANEL的HANDLE,
但是有时什么也没发生,有时出错。
 
最好不要用ParentWindow来设置parent, 有很多功能无法实现, 你完全可以在调用
时将parent作为一个TWinControl传递给被调用过程, 然后在dll中可以直接设置你的
Frame.Parent := 这个传入的TWinControl
 
这种做法不可行,我已经试过了。
 
不知道是不是我不理解,我觉得跟平常的没有两样:
1。在Dll中 Application.Handle := (App的Application.Handle)
2。在Dll中输出函数创建并返回控件。
3。设置Dll返回的控件的Owner,Parent,...

希望能解决问题!
------------------------------

SNKoala = SiNianKoala
 
多人接受答案了。
 
后退
顶部