自编控件中的事件处理问题.(50分)

  • 主题发起人 主题发起人 w8u
  • 开始时间 开始时间
W

w8u

Unregistered / Unconfirmed
GUEST, unregistred user!
自编控件中的事件处理问题.
我正在学习自编控件技术,看书看得糊里糊涂,理不清关系,
现我先列出我所知道的知识,然后请教我所不知道的问题:
要在组件里加入事件,应该:
1.先声明方法指针:
type
TNotifyEvent = Procedure (Sender:TObject) of Object
2.在类的Private部分声明字段.
Private
FOnClick:TNofifyEvent;
3.公布事件属性
Publishied
Property OnClick:TNotifyEvent read FOnClick write FonClick;

==================================================================
组件编译安装之后,拖一个到form上,这时,由Published 公布出来的事件属性
将会在对象观察器的事件面板里看到OnClick事件,双击之,delphi自动创建一
个过程:
procedure TForm1.MyButton1Click(Sender: TObject);
begin

end;
此过程的命名根据delphi的某一原则(什么原则?)自动进行的.此过程的参数
是因为公布中的OnClick是一个TNotifyEvent,所以自动配置这些参数出来.
然后,delphi把此过程的指针赋给FOnClick.

好象很清晰了.但是:
a.是通过一个什么机制将消息和FOnClick联系起来的?
b.我知道windwos的消息应该是一个记录,这个消息是怎么样被分成独立的
参数分发给事件处理函数中的每个参数?如:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StartX := X;
StartY := Y;
end;

c.如何自定义一个消息,又怎么样让windows处理,分发这个消息?
 
我写的一篇帖子,应该对你有所帮助
http://www.delphibbs.com/delphibbs/dispq.asp?lid=584889
 
w8u兄的问题问的不错,和我一样大家共同学习共同进步!
 
多人接受答案了。
 
后退
顶部