F firstboy Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-04 #1 如何把DLL中窗体上的控件移到调用程序的窗体上 []
H HeyTommy Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-05 #2 理论上很多东西都是可以的,,,, 但,,, 我的 技术还没达到,,, 我想,,,这至少和 DOCK 相关,,,,我也去找找资料,,关心关心,,呵呵,
晶 晶晶 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-05 #3 DLL中控件只是一个具有虚拟方法和数据的类而已(因为DLL中只有DS,没有SS)。要将DLL中 的控件放到主窗体上,你可以在主窗体上引出这个类(不过你的DLL要有这个接口)。 因为在DLL中只有虚拟方法,你必须向引用他的主窗体返回虚拟方法的指针表VTable,并在 你的主窗体上具体实现这些方法。这样你就可以在你的主窗体上拥有并操作这个控件了。 如果还有不明白的地方,建议看看COM编程方面的资料!
DLL中控件只是一个具有虚拟方法和数据的类而已(因为DLL中只有DS,没有SS)。要将DLL中 的控件放到主窗体上,你可以在主窗体上引出这个类(不过你的DLL要有这个接口)。 因为在DLL中只有虚拟方法,你必须向引用他的主窗体返回虚拟方法的指针表VTable,并在 你的主窗体上具体实现这些方法。这样你就可以在你的主窗体上拥有并操作这个控件了。 如果还有不明白的地方,建议看看COM编程方面的资料!
F firstboy Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-06 #5 我式过用改变控件parent属性 先将调用程序的窗体的类传给DLL 然后改变DLL窗体上的控件的.parent:=程序的窗体的类; 但是发生TFONT无法传递的错误!
Y ysai Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-06 #8 如果仅仅只是移动控件,用Windows.SetParent函数就可以了 但是具体操作控件的代码还是得在DLL中写
风 风中的沙粒 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-06 #9 例如我在dll中生成一个按钮, k-button:=tbutton.create(pp:tform); K-button.parentwindow:=pp.handle; k_button.onclik:=tj.pro; procedure tj.pro; begin messagebox('kk'); end; 只能生成按钮, 根本响应不了 若是pp.onclik:=tj.pro;//pp使我传过来的对象 就可以,怎么才能解决
例如我在dll中生成一个按钮, k-button:=tbutton.create(pp:tform); K-button.parentwindow:=pp.handle; k_button.onclik:=tj.pro; procedure tj.pro; begin messagebox('kk'); end; 只能生成按钮, 根本响应不了 若是pp.onclik:=tj.pro;//pp使我传过来的对象 就可以,怎么才能解决