能不能将非可视组件封装到类中去?
能不能将一些非可视组件比方说socket控件封装到类中去,最后生成动态链接库,但是还要保留原有组件的事件,比如onDataArrival。 问题点数:50、回复次数:10Top
1 楼anbangs(大邦)回复于 2005-04-05 20:42:29 得分 0
顶一下Top
2 楼psp2003()回复于 2005-04-05 20:56:32 得分 5
帮你顶一把Top
3 楼newc_k(帕拉丁)回复于 2005-04-05 21:10:26 得分 10
当然可以了,不过不知道你什么要这样做,如果这个最后生成的东东是给DELPHI用的,你只不过是要包装一下,那就用PACKAGE,生成BPL。如果是要生成DLL就比较麻烦,需要将相关事件转写成可以通用的函数形式exports。Top
4 楼zhongjinting()回复于 2005-04-05 21:21:01 得分 0
能够说的更详细一些吗?或者来点儿例子就更好了。
因为程序很大,中间有些模块想做到DLL里去,减少程序的体积,而且以后维护也方便一些。Top
5 楼zhongjinting()回复于 2005-04-05 21:24:11 得分 0
还有一点,就是DLL自身能够响应组件本身的事件。比如把Socket封装进去,DLL能够响应OnDataArrival事件,经过处理后将处理结果返回给调用程序。
Top
6 楼zhongjinting()回复于 2005-04-06 15:06:47 得分 0
如何处理动态创建的组件的事件?
Top
7 楼ffwin()回复于 2005-04-06 15:23:08 得分 5
aa.click=bb.clickTop
8 楼ffwin()回复于 2005-04-06 15:25:22 得分 5
aa.onclick=bb.onclick
Top
9 楼zhongjinting()回复于 2005-04-06 15:50:46 得分 0
这些时候都是在可视组件之间互相交换。我现在是想将一个普通的过程赋给动态创建的组件的某个事件Top
10 楼gogogo(嘿嘿)回复于 2005-04-06 15:56:10 得分 25
凭记忆写的,可能有些细节不对
组件部分
type
TClickEvent=procedure of object;
Taa= class(Tobject)
private:
FOnClick: TClickEvent;
procedure UseEvent;
publiched:
property OnClick:TClickEvent read FOnClick write FOnClick;
implementation
procedure Taa.UseEvent;
begin
if Assign(FOnClick) then
FOnClick; ///这里实质上调用了Tbb.Click
end;
使用部分
一个类
Tbb=class(TForm)
aa:Taa;
public:
constructor create;
procedure Click;
implementation
constructor Tbb.Create;
begin
aa.OnClick=Click;
end;
procdure Tbb.Click;
begin
............
end;Top




