有没有消息指针??或者说把消息处理的过程象函数指针那样传递?(200分)

>>类似于Form1.ButtonCLick:= MyButtonClick;
>>Form1."MyMessage"(WM_User+1) := DoDoSomething
//如何表达??
>>Form2."MyMessage"(WM_User+1) := DoDoSomething;
这样做有什么意义吗?人家Delphi中Form1.ButtonCLick:= MyButtonClick;
是因为人家为了让编程人员简单,将消息处理的细节部分替我们做了,将消息处理封装后,
形成这样的所谓“事件句柄”。我们响应自定义消息,为什么要这样呢?方便吗?
 
>>人家为了让编程人员简单,将消息处理的细节部分替我们做了,将消息处理封装后,
>>形成这样的所谓“事件句柄”。我们响应自定义消息,为什么要这样呢?方便吗?

我不是讨论delphi如何把消息封装为具体的事件的,我是讨论如何实现,
以及在Object Pascal里的可行性,如果都要方便的话,那我们直接讨论那套控件更
好用算了。
 
看看有关组件制作的书不就行了吗?既然Delphi自己都实现了,肯定没问题了[:D]
 
我只好再次说明:我仅仅是想讨论可行性和如何实现,而不是为什么,解释这个问题占了
这篇贴子的大半篇幅,可能我没法让大家明白。希望没让你您误解。

 
可行,可行!
嘿嘿,你有点生气啦!我很笨的,所以叫小笨苯
 
我不知道大家看了我上面贴的函数指针的代码没有,如果您理解我想知道什么,那请您不要
再贴如何响应消息的代码了!!
 
to 小笨苯
讨论技术问题,也是大家交流的方式,来这里都是学习的(至少我是吧),生气就谈不上了,
只是看到好心的兄弟总是给我贴如何响应消息的代码,让我苦笑不得!

但不管怎么说,都谢谢兄弟们!
 
我突然觉得,把你的想法和http://www.delphibbs.com/delphibbs/dispq.asp?lid=1779210
联系起来,或许能在运行期,更进一步地动态实现呢
 
bluedog:
>>只是看到好心的兄弟总是给我贴如何响应消息的代码,让我苦笑不得!
我个人觉得你要是再题目中就将下面的代码贴出来,大家就会马上明白的。
>>类似于Form1.ButtonCLick:= MyButtonClick;
>>Form1."MyMessage"(WM_User+1) := DoDoSomething
//如何表达??
>>Form2."MyMessage"(WM_User+1) := DoDoSomething;
嘻嘻,是不是?[:D]
 
那篇帖子我看过,以前我也问过类似类似的问题,不过不是靠字符串来查找方法或者属性,而是
通过字符串找变量!可惜到现在都没解决,都说不可行!![:(!]
(当然不是if str = 'a' then showmessage(a) if str = 'b' 这种答案:)
 
有趣!
如果不通过Delphi的消息派发机制,我觉得这种想法可行。
 
我想可以的。
对你需要响应的消息,先写好消息处理句柄的。
在这个消息处理句柄中,要运行你自己设定的函数指针。
这个函数指针就是如下类型的。
procedure(var msg:Tmessage);
然后对各个窗体设定的函数指针进行赋值的。
 

Similar threads

S
回复
0
查看
950
SUNSTONE的Delphi笔记
S
S
回复
0
查看
774
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部