一个控件,引发一个事件,只能使用一个事件处理程序吗??例如:有一个Button1 程序A:Button1.OnClick:=xxx;
程序B:Button1.OnClick:=yyy;这样,OnClick事件只能运行yyy,而不能运行xxx.而在C#中.程序A: Button1.OnClick+=xxx;
程序B: Button1.OnClick+=yyy;
这样,OnClick事件发生时,先运行完xxx,再运行yyy.现在做控件时,发现大量这种问题,A控件引用B控件时,可能会处理B控件的某个事件,但在处理这个事件之前,B控件某事件已经有处理程序了.而且,在程序运行途中,B控件原来的事件很有可能又赋为nil或有其它改变,但又不能影响到A控件处理B控件某事件的处理程序.所以很需要类似.net的消息列表.
请教一下大虾们,应该如何办?
程序B:Button1.OnClick:=yyy;这样,OnClick事件只能运行yyy,而不能运行xxx.而在C#中.程序A: Button1.OnClick+=xxx;
程序B: Button1.OnClick+=yyy;
这样,OnClick事件发生时,先运行完xxx,再运行yyy.现在做控件时,发现大量这种问题,A控件引用B控件时,可能会处理B控件的某个事件,但在处理这个事件之前,B控件某事件已经有处理程序了.而且,在程序运行途中,B控件原来的事件很有可能又赋为nil或有其它改变,但又不能影响到A控件处理B控件某事件的处理程序.所以很需要类似.net的消息列表.
请教一下大虾们,应该如何办?
解决方案 »
- 怎么读取Powerbuilder的数据窗口列表中数据
- Graphics32组件的使用
- 急需解答,请各位高手进入帮忙解决?谢谢!!
- 求救啊!!!关于打开dataset的问题。——好急呵!!!!!!!!!
- advstringgrid 怎么合并单元格以后,再点击合并后的单元格
- 请教高手:Internal Error:URW2160 是怎么回事?
- 请问如何使listview中的columns中的Caption所显示的字居中?
- 除法怎莫用(在线等待)
- 今天有人问我 ERP 是什么东西,我不知道,被笑死!
- 多年不用Delphi,装了Delphi7/2010都没找到目录和文件的操作组件
- 做个Console式界面的组件
- 用ADO连接,更新数据库,是不是不用提交可以?
设一变量funcstat:integer,procedure TForm1.Button1Click(Sender: TObject);
begin
case funcstat of
0:exit; //什么都不做
1:xxx; //执行xxx;
2:yyy; //执行yyy;
3:
begin
xxx; //先执行xxx;
yyy; //再执行yyy;
end;
4:
begin
yyy; //先执行yyy;
xxx; //再先执行xxx;
end;
end;这样在程序A中,只要设funcstat:=1;
在在程序B中,只要设funcstat:=3;
就应该能满足你的要求
我刚从ACCESS的中走出来,怎会再进入ACCESS中呢?
to:keiy()
不行的,xxx和yyy只是特例,很可能会有aaa,bbb,ccc,ddd,eee,fff,ggg....更复杂更复杂的情况.
程序B:Button1.OnClick:=yyy;这样,OnClick事件只能运行yyy,而不能运行xxx.而在C#中.程序A: Button1.OnClick+=xxx;
程序B: Button1.OnClick+=yyy;
这样,OnClick事件发生时,先运行完xxx,再运行yyy.DELPHI好像不行。。
对象A产生事件E (调用)-》事件E的委托 (调用)——》【事件E的委托1、事件E的委托2..】委托是封装了一系列方法引用的特殊类,而DELPHI中好像没有提供这种机制。在DELPHI中,你只能变通的去做。做一个类,类中有的N个方法分别完成不同的功能,然后有一个数组,也就是这些方法的索引列表,然后根据这个索引列表来完成相应的操作。
对象A产生事件E (调用)-》事件E的委托 (调用)——》【事件E的委托1、事件E的委托2..】
////////////////
说到这个,好像可以使用接口来实现委托
比如有a,b两个类,a类中要调用b中的方法可以在b中生成一个a的实例进行调用的
1:(只有Button1一个控件,两方法 )程序A:Button1.OnClick:=xxx;
程序B:Button1.OnClick:=yyy;这样,OnClick事件只能运行yyy,而不能运行xxx.2。(A控件,B控件,两控件)现在做控件时,发现大量这种问题,A控件引用B控件时,可能会处理B控件的某个事件,但在处理这个事件之前,B控件某事件已经有处理程序了.而且,在程序运行途中,B控件原来的事件很有可能又赋为nil或有其它改变,但又不能影响到A控件处理B控件某事件的处理程序.不明白???
写一个底层的CLASS BASIC,A和B都继承CLASS BASIC,然后分别写A和B的ONCLICK事件,这样对于A和B两个不同实例应该可以实现不同的ONCLICK事件。